138 lines
4.0 KiB
Plaintext
138 lines
4.0 KiB
Plaintext
|
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.
|