diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2010-04-05 22:39:43 +0000 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2010-04-05 22:39:43 +0000 |
| commit | f44190d356137367367aeb5ac00fd48c133f0a60 (patch) | |
| tree | 593de75b32e0cd3a98d13546b4c8ab1b9752b60f /README.CMake_build | |
| parent | a0d26b634afd9234234f3343c25961b7ffdb7be0 (diff) | |
New CMake README files. May need some updates or to be moved elsewhere later.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7452 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'README.CMake_build')
| -rw-r--r-- | README.CMake_build | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/README.CMake_build b/README.CMake_build new file mode 100644 index 000000000..d68fc60c6 --- /dev/null +++ b/README.CMake_build @@ -0,0 +1,137 @@ +Using CMake to build FLTK. + +PREREQUISITES + +The prerequisites for building FLTK with CMake are staightforward: +CMake 2.6 or later and a recent FLTK 1.3 snapshot. Installation of +CMake is covered on its web site. + +This howto will cover building FLTK with the default options using cmake +under Linux with both the default Unix Makefiles and a MinGW cross compiling +toolchain. Other platforms are just as easy to use. + +OPTIONS + +All options have sensible defaults so you won't usually need to touch these. +There are only two CMake options that you may want to specify. + +CMAKE_BUILD_TYPE + This specifies what kind of build this is i.e. Release, Debug... +Platform specific compile/link flags/options are automatically selected +by CMake depending on this value. + +CMAKE_INSTALL_PREFIX + Where everything will go on install. Defaults are /usr/local for unix +and C:\Program Files\FLTK for Windows. + +These are the FLTK specific options. Platform specific options are ignored +on other platforms. + +OPTION_OPTIM + Extra optimization flags. +OPTION_ARCHFLAGS + Extra architecture flags. + + The OPTION_PREFIX_* flags are for fine-tuning where everything goes +on the install. +OPTION_PREFIX_BIN +OPTION_PREFIX_LIB +OPTION_PREFIX_INCLUDE +OPTION_PREFIX_DATA +OPTION_PREFIX_DOC +OPTION_PREFIX_CONFIG +OPTION_PREFIX_MAN + +OPTION_APPLE_X11 - default OFF + In case you want to use X11 on OSX. Not currently supported. +OPTION_USE_POLL - default OFF + Don't use this one either. + +OPTION_BUILD_SHARED_LIBS - default OFF + Normally FLTK is built as static libraries which makes more portable +binaries. If you want to use shared libraries, this will build them too. +OPTION_BUILD_EXAMPLES - default ON + Builds the many fine example programs. + +OPTION_CAIRO - default OFF + Enables libcairo support +OPTION_CAIROEXT - default OFF + Enables extended libcairo support + +OPTION_USE_GL - default ON + Enables OpenGL support + +OPTION_USE_THREADS - default ON + Enables multithreaded support + +OPTION_LARGE_FILE - default ON + Enables large file (>2G) support + + FLTK has built in jpeg zlib and png libraries. These let you use +system libraries instead, unless CMake can't find them. +OPTION_USE_SYSTEM_LIBJPEG - default ON +OPTION_USE_SYSTEM_ZLIB - default ON +OPTION_USE_SYSTEM_LIBPNG - default ON + + X11 extended libraries. +OPTION_USE_XINERAMA - default ON +OPTION_USE_XFT - default ON +OPTION_USE_XDBE - default ON + +BUILDING UNDER LINUX WITH UNIX MAKEFILES + +After untaring the FLTK source, go to the root of the FLTK tree and type +the following. + +mkdir build +cd build +cmake .. +make +sudo make install + +This will build and install a default configuration FLTK. + +CROSSCOMPILING + +Once you have a crosscompiler going, to use CMAke to build FLTK you need +two more things. You need a toolchain file which tells CMake where your +build tools are. The CMake website is a good source of information on +this file. Here's mine for MinGW under Linux. +---- + +# the name of the target operating system +set(CMAKE_SYSTEM_NAME Windows) + +# which tools to use +set(CMAKE_C_COMPILER /usr/bin/i486-mingw32-gcc) +set(CMAKE_CXX_COMPILER /usr/bin/i486-mingw32-g++) + +# here is where the target environment located +set(CMAKE_FIND_ROOT_PATH /usr/i486-mingw32) + +# adjust the default behaviour of the FIND_XXX() commands: +# search programs in the host environment +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +# search headers and libraries in the target environment, +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) + +set(CMAKE_INSTALL_PREFIX ${CMAKE_FIND_ROOT_PATH}/usr CACHE FILEPATH + "install path prefix") + +---- + +Not too tough. The other thing you need is a native installation of FLTK +on your build platform. This is to supply the fluid executable which will +compile the *.fl into C++ source and header files. + +So, again from the FLTK tree root. + +mkdir mingw +cd mingw +cmake -DCMAKE_TOOLCHAIN_FILE=~/projects/toolchain/Toolchain-mingw32.cmake .. +make +sudo make install + +This will create a default configuration FLTK suitable for mingw/msys and +install it in the /usr/i486-mingw32/usr tree. |
