summaryrefslogtreecommitdiff
path: root/README.CMake_build
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2010-04-05 22:39:43 +0000
committerAlbrecht Schlosser <albrechts.fltk@online.de>2010-04-05 22:39:43 +0000
commitf44190d356137367367aeb5ac00fd48c133f0a60 (patch)
tree593de75b32e0cd3a98d13546b4c8ab1b9752b60f /README.CMake_build
parenta0d26b634afd9234234f3343c25961b7ffdb7be0 (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_build137
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.