mirror of https://github.com/fltk/fltk
CMake: add examples folder to build (optional)
- replace misnamed option 'OPTION_BUILD_EXAMPLES' with 'FLTK_BUILD_TEST' - add option 'FLTK_BUILD_EXAMPLES' to build apps in examples folder - move examples/fltk-versions.cxx to test/fltk-versions.cxx - [Travis-CI] enable option 'FLTK_BUILD_EXAMPLES' for automatic builds
This commit is contained in:
parent
d91160a9e0
commit
3b9a04ae2e
|
@ -38,10 +38,11 @@ before_script:
|
||||||
- |
|
- |
|
||||||
if [ $TRAVIS_OS_NAME == linux ]; then
|
if [ $TRAVIS_OS_NAME == linux ]; then
|
||||||
sudo apt-get update -q
|
sudo apt-get update -q
|
||||||
sudo apt-get install -y libxinerama-dev libxcursor-dev libasound2-dev
|
sudo apt-get install -y libxinerama-dev libxcursor-dev libasound2-dev libglew-dev
|
||||||
sudo apt-get install -y doxygen
|
sudo apt-get install -y doxygen
|
||||||
elif [ $TRAVIS_OS_NAME == osx ]; then
|
elif [ $TRAVIS_OS_NAME == osx ]; then
|
||||||
brew install ccache # need to install on OSX
|
brew install ccache # need to install on macOS
|
||||||
|
# brew install glew # libGLEW not needed on macOS
|
||||||
export PATH="/usr/local/opt/ccache/libexec:$PATH"
|
export PATH="/usr/local/opt/ccache/libexec:$PATH"
|
||||||
brew install doxygen
|
brew install doxygen
|
||||||
fi
|
fi
|
||||||
|
@ -54,12 +55,12 @@ script:
|
||||||
make
|
make
|
||||||
mkdir cmake-build
|
mkdir cmake-build
|
||||||
cd cmake-build
|
cd cmake-build
|
||||||
cmake -G "Unix Makefiles" ..
|
cmake -G "Unix Makefiles" -D FLTK_BUILD_EXAMPLES=ON ..
|
||||||
make
|
make
|
||||||
else
|
else
|
||||||
mkdir scan-build
|
mkdir scan-build
|
||||||
cd scan-build
|
cd scan-build
|
||||||
scan-build cmake -G "Unix Makefiles" ..
|
scan-build cmake -G "Unix Makefiles" -D FLTK_BUILD_EXAMPLES=ON ..
|
||||||
scan-build -v make
|
scan-build -v make
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -35,14 +35,14 @@ add_definitions (${OPTION_OPTIM})
|
||||||
set (OPTION_ARCHFLAGS ""
|
set (OPTION_ARCHFLAGS ""
|
||||||
CACHE STRING
|
CACHE STRING
|
||||||
"custom architecture flags"
|
"custom architecture flags"
|
||||||
)
|
)
|
||||||
add_definitions (${OPTION_ARCHFLAGS})
|
add_definitions (${OPTION_ARCHFLAGS})
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
set (OPTION_ABI_VERSION ""
|
set (OPTION_ABI_VERSION ""
|
||||||
CACHE STRING
|
CACHE STRING
|
||||||
"FLTK ABI Version FL_ABI_VERSION: 1xxyy for 1.x.y (xx,yy with leading zero)"
|
"FLTK ABI Version FL_ABI_VERSION: 1xxyy for 1.x.y (xx,yy with leading zero)"
|
||||||
)
|
)
|
||||||
set (FL_ABI_VERSION ${OPTION_ABI_VERSION})
|
set (FL_ABI_VERSION ${OPTION_ABI_VERSION})
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
@ -100,15 +100,24 @@ endif (OPTION_USE_POLL)
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
option (OPTION_BUILD_SHARED_LIBS
|
option (OPTION_BUILD_SHARED_LIBS
|
||||||
"Build shared libraries(in addition to static libraries)"
|
"Build shared libraries (in addition to static libraries)"
|
||||||
OFF
|
OFF
|
||||||
)
|
)
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
option (OPTION_BUILD_EXAMPLES "build example programs" ON)
|
|
||||||
option (OPTION_PRINT_SUPPORT "allow print support" ON)
|
option (OPTION_PRINT_SUPPORT "allow print support" ON)
|
||||||
option (OPTION_FILESYSTEM_SUPPORT "allow file system support" ON)
|
option (OPTION_FILESYSTEM_SUPPORT "allow file system support" ON)
|
||||||
|
|
||||||
|
option (FLTK_BUILD_TEST "Build test/demo programs" ON)
|
||||||
|
option (FLTK_BUILD_EXAMPLES "Build example programs" OFF)
|
||||||
|
|
||||||
|
if (DEFINED OPTION_BUILD_EXAMPLES)
|
||||||
|
message (WARNING
|
||||||
|
"'OPTION_BUILD_EXAMPLES' is obsolete, please use 'FLTK_BUILD_TEST' instead.")
|
||||||
|
message (STATUS
|
||||||
|
"To remove this warning, please delete 'OPTION_BUILD_EXAMPLES' from the CMake cache")
|
||||||
|
endif (DEFINED OPTION_BUILD_EXAMPLES)
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
if (DOXYGEN_FOUND)
|
if (DOXYGEN_FOUND)
|
||||||
option (OPTION_BUILD_HTML_DOCUMENTATION "build html docs" ON)
|
option (OPTION_BUILD_HTML_DOCUMENTATION "build html docs" ON)
|
||||||
|
@ -307,7 +316,7 @@ if (ZLIB_FOUND)
|
||||||
set (FLTK_BUILTIN_ZLIB_FOUND FALSE)
|
set (FLTK_BUILTIN_ZLIB_FOUND FALSE)
|
||||||
else()
|
else()
|
||||||
if (OPTION_USE_SYSTEM_ZLIB)
|
if (OPTION_USE_SYSTEM_ZLIB)
|
||||||
message (STATUS "\ncannot find system zlib library - using built-in\n")
|
message (STATUS "cannot find system zlib library - using built-in\n")
|
||||||
endif (OPTION_USE_SYSTEM_ZLIB)
|
endif (OPTION_USE_SYSTEM_ZLIB)
|
||||||
|
|
||||||
add_subdirectory (zlib)
|
add_subdirectory (zlib)
|
||||||
|
@ -336,7 +345,7 @@ if (JPEG_FOUND)
|
||||||
set (FLTK_BUILTIN_JPEG_FOUND FALSE)
|
set (FLTK_BUILTIN_JPEG_FOUND FALSE)
|
||||||
else ()
|
else ()
|
||||||
if (OPTION_USE_SYSTEM_LIBJPEG)
|
if (OPTION_USE_SYSTEM_LIBJPEG)
|
||||||
message (STATUS "\ncannot find system jpeg library - using built-in\n")
|
message (STATUS "cannot find system jpeg library - using built-in\n")
|
||||||
endif (OPTION_USE_SYSTEM_LIBJPEG)
|
endif (OPTION_USE_SYSTEM_LIBJPEG)
|
||||||
|
|
||||||
add_subdirectory (jpeg)
|
add_subdirectory (jpeg)
|
||||||
|
@ -365,7 +374,7 @@ if (PNG_FOUND)
|
||||||
set (FLTK_BUILTIN_PNG_FOUND FALSE)
|
set (FLTK_BUILTIN_PNG_FOUND FALSE)
|
||||||
else()
|
else()
|
||||||
if (OPTION_USE_SYSTEM_LIBPNG)
|
if (OPTION_USE_SYSTEM_LIBPNG)
|
||||||
message (STATUS "\ncannot find system png library - using built-in\n")
|
message (STATUS "cannot find system png library - using built-in\n")
|
||||||
endif (OPTION_USE_SYSTEM_LIBPNG)
|
endif (OPTION_USE_SYSTEM_LIBPNG)
|
||||||
|
|
||||||
add_subdirectory (png)
|
add_subdirectory (png)
|
||||||
|
|
|
@ -156,12 +156,13 @@ find_library (LIB_fontconfig fontconfig)
|
||||||
find_library (LIB_freetype freetype)
|
find_library (LIB_freetype freetype)
|
||||||
find_library (LIB_GL GL)
|
find_library (LIB_GL GL)
|
||||||
find_library (LIB_MesaGL MesaGL)
|
find_library (LIB_MesaGL MesaGL)
|
||||||
|
find_library (LIB_GLEW GLEW)
|
||||||
find_library (LIB_jpeg jpeg)
|
find_library (LIB_jpeg jpeg)
|
||||||
find_library (LIB_png png)
|
find_library (LIB_png png)
|
||||||
find_library (LIB_zlib z)
|
find_library (LIB_zlib z)
|
||||||
|
|
||||||
mark_as_advanced (LIB_CAIRO LIB_dl LIB_fontconfig LIB_freetype)
|
mark_as_advanced (LIB_CAIRO LIB_dl LIB_fontconfig LIB_freetype)
|
||||||
mark_as_advanced (LIB_GL LIB_MesaGL)
|
mark_as_advanced (LIB_GL LIB_MesaGL LIB_GLEW)
|
||||||
mark_as_advanced (LIB_jpeg LIB_png LIB_zlib)
|
mark_as_advanced (LIB_jpeg LIB_png LIB_zlib)
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
|
|
@ -118,11 +118,16 @@ configure_file (
|
||||||
)
|
)
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
# build examples - these have to be built after fluid is built/imported
|
# options to build test/demo and example programs
|
||||||
#######################################################################
|
#######################################################################
|
||||||
if (OPTION_BUILD_EXAMPLES)
|
|
||||||
add_subdirectory (test)
|
if (FLTK_BUILD_TEST)
|
||||||
endif (OPTION_BUILD_EXAMPLES)
|
add_subdirectory (test)
|
||||||
|
endif (FLTK_BUILD_TEST)
|
||||||
|
|
||||||
|
if (FLTK_BUILD_EXAMPLES)
|
||||||
|
add_subdirectory (examples)
|
||||||
|
endif (FLTK_BUILD_EXAMPLES)
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
# Android Studio wrapup
|
# Android Studio wrapup
|
||||||
|
|
|
@ -113,8 +113,11 @@ OPTION_BUILD_SHARED_LIBS - default OFF
|
||||||
Normally FLTK is built as static libraries which makes more portable
|
Normally FLTK is built as static libraries which makes more portable
|
||||||
binaries. If you want to use shared libraries, this will build them too.
|
binaries. If you want to use shared libraries, this will build them too.
|
||||||
|
|
||||||
OPTION_BUILD_EXAMPLES - default ON
|
FLTK_BUILD_TEST - default ON
|
||||||
Builds the many fine example programs.
|
Builds the test and demo programs in the 'test' directory.
|
||||||
|
|
||||||
|
FLTK_BUILD_EXAMPLES - default OFF
|
||||||
|
Builds the example programs in the 'examples' directory.
|
||||||
|
|
||||||
OPTION_CAIRO - default OFF
|
OPTION_CAIRO - default OFF
|
||||||
Enables libcairo support - see README.Cairo.txt.
|
Enables libcairo support - see README.Cairo.txt.
|
||||||
|
@ -138,16 +141,17 @@ OPTION_USE_SYSTEM_LIBPNG - default ON
|
||||||
use system libraries instead, unless CMake can't find them. If you set
|
use system libraries instead, unless CMake can't find them. If you set
|
||||||
any of these options to OFF, then the built in library will be used.
|
any of these options to OFF, then the built in library will be used.
|
||||||
|
|
||||||
OPTION_USE_NANOSVG - default ON
|
OPTION_USE_SVG - default ON
|
||||||
FLTK has a built in nano svg library. Turning this option off
|
FLTK has a built in SVG library and can create (write) SVG image files.
|
||||||
disables nano SVG support.
|
Turning this option off disables SVG (read and write) support.
|
||||||
|
|
||||||
OPTION_USE_XINERAMA - default ON
|
OPTION_USE_XINERAMA - default ON
|
||||||
OPTION_USE_XFT - default ON
|
OPTION_USE_XFT - default ON
|
||||||
OPTION_USE_XDBE - default ON
|
OPTION_USE_XDBE - default ON
|
||||||
OPTION_USE_XCURSOR - default ON
|
OPTION_USE_XCURSOR - default ON
|
||||||
OPTION_USE_XRENDER - default ON
|
OPTION_USE_XRENDER - default ON
|
||||||
These are X11 extended libraries.
|
These are X11 extended libraries. These libs are used if found on the
|
||||||
|
build system unless the respective option is turned off.
|
||||||
|
|
||||||
OPTION_USE_PANGO - default OFF
|
OPTION_USE_PANGO - default OFF
|
||||||
Enables use of the Pango library for drawing text. Pango supports all
|
Enables use of the Pango library for drawing text. Pango supports all
|
||||||
|
@ -173,8 +177,8 @@ OPTION_PRINT_SUPPORT - default ON
|
||||||
Documentation options: these options are only available if `doxygen' is
|
Documentation options: these options are only available if `doxygen' is
|
||||||
installed and found by CMake. PDF related options require also `latex'.
|
installed and found by CMake. PDF related options require also `latex'.
|
||||||
|
|
||||||
OPTION_BUILD_HTML_DOCUMENTATION - default OFF
|
OPTION_BUILD_HTML_DOCUMENTATION - default ON
|
||||||
OPTION_BUILD_PDF_DOCUMENTATION - default OFF
|
OPTION_BUILD_PDF_DOCUMENTATION - default ON
|
||||||
These options can be used to switch HTML documentation generation with
|
These options can be used to switch HTML documentation generation with
|
||||||
doxygen on. The build targets ('html', 'pdf', or 'docs') need still to
|
doxygen on. The build targets ('html', 'pdf', or 'docs') need still to
|
||||||
be executed explicitly.
|
be executed explicitly.
|
||||||
|
@ -185,7 +189,7 @@ OPTION_INCLUDE_DRIVER_DOCUMENTATION - default OFF
|
||||||
or advanced users.
|
or advanced users.
|
||||||
|
|
||||||
OPTION_INSTALL_HTML_DOCUMENTATION - default OFF
|
OPTION_INSTALL_HTML_DOCUMENTATION - default OFF
|
||||||
OPTION_INSTALL_PDF_DOCUMENTATION - default OFF
|
OPTION_INSTALL_PDF_DOCUMENTATION - default OFF
|
||||||
If these options are ON then the HTML and/or PDF docs get installed
|
If these options are ON then the HTML and/or PDF docs get installed
|
||||||
when the 'install' target is executed, e.g. with `make install'. You
|
when the 'install' target is executed, e.g. with `make install'. You
|
||||||
need to select above options OPTION_BUILD_*_DOCUMENTATION as well.
|
need to select above options OPTION_BUILD_*_DOCUMENTATION as well.
|
||||||
|
|
|
@ -0,0 +1,129 @@
|
||||||
|
#
|
||||||
|
# CMakeLists.txt used to build example apps by the CMake build system
|
||||||
|
#
|
||||||
|
# Copyright 2020 by Bill Spitzak and others.
|
||||||
|
#
|
||||||
|
# This library is free software. Distribution and use rights are outlined in
|
||||||
|
# the file "COPYING" which should have been included with this file. If this
|
||||||
|
# file is missing or damaged, see the license at:
|
||||||
|
#
|
||||||
|
# https://www.fltk.org/COPYING.php
|
||||||
|
#
|
||||||
|
# Please see the following page on how to report bugs and issues:
|
||||||
|
#
|
||||||
|
# https://www.fltk.org/bugs.php
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
include (../CMake/fl_create_example.cmake)
|
||||||
|
|
||||||
|
set (EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/../bin/examples)
|
||||||
|
file (MAKE_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# create separate lists of all source (.cxx) files
|
||||||
|
# depending on the required FLTK and system libraries
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# simple examples w/o extra libs
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
set (SIMPLE_SOURCES
|
||||||
|
browser-simple
|
||||||
|
draggable-group
|
||||||
|
howto-add_fd-and-popen
|
||||||
|
howto-browser-with-icons
|
||||||
|
howto-drag-and-drop
|
||||||
|
howto-draw-an-x
|
||||||
|
howto-menu-with-images
|
||||||
|
howto-parse-args
|
||||||
|
howto-remap-numpad-keyboard-keys
|
||||||
|
howto-text-over-image-button
|
||||||
|
menubar-add
|
||||||
|
nativefilechooser-simple-app
|
||||||
|
nativefilechooser-simple
|
||||||
|
progress-simple
|
||||||
|
shapedwindow
|
||||||
|
simple-terminal
|
||||||
|
table-as-container
|
||||||
|
table-simple
|
||||||
|
table-sort
|
||||||
|
table-spreadsheet
|
||||||
|
table-spreadsheet-with-keyboard-nav
|
||||||
|
table-with-keynav
|
||||||
|
table-with-right-column-stretch-fit
|
||||||
|
tabs-simple
|
||||||
|
textdisplay-with-colors
|
||||||
|
texteditor-simple
|
||||||
|
texteditor-with-dynamic-colors
|
||||||
|
tree-as-container
|
||||||
|
tree-custom-draw-items
|
||||||
|
tree-custom-sort
|
||||||
|
tree-of-tables
|
||||||
|
tree-simple
|
||||||
|
wizard-simple
|
||||||
|
)
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# examples requiring fltk_images
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
set (IMAGE_SOURCES
|
||||||
|
clipboard
|
||||||
|
howto-simple-svg
|
||||||
|
)
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# examples requiring OpenGL + libGLEW
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
set (OPENGL_SOURCES
|
||||||
|
OpenGL3-glut-test
|
||||||
|
OpenGL3test
|
||||||
|
)
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# create simple example programs
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
foreach (src ${SIMPLE_SOURCES})
|
||||||
|
CREATE_EXAMPLE (${src} ${src}.cxx fltk)
|
||||||
|
endforeach (src)
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# create example programs with fltk_images library
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
foreach (src ${IMAGE_SOURCES})
|
||||||
|
CREATE_EXAMPLE (${src} ${src}.cxx "fltk_images;fltk")
|
||||||
|
endforeach (src)
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# create example programs with OpenGL + libGLEW
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
# Note: macOS does not need libGLEW
|
||||||
|
|
||||||
|
if (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
||||||
|
if (NOT LIB_GLEW)
|
||||||
|
set (LIB_GLEW TRUE)
|
||||||
|
endif ()
|
||||||
|
set (REQUIRED_LIBS fltk_gl fltk ${OPENGL_LIBRARIES})
|
||||||
|
else ()
|
||||||
|
set (REQUIRED_LIBS fltk_gl fltk ${OPENGL_LIBRARIES} GLEW)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (OPENGL_FOUND AND LIB_GLEW)
|
||||||
|
foreach (src ${OPENGL_SOURCES})
|
||||||
|
CREATE_EXAMPLE (${src} ${src}.cxx "${REQUIRED_LIBS}")
|
||||||
|
endforeach (src)
|
||||||
|
else ()
|
||||||
|
message (STATUS
|
||||||
|
"OpenGL or libGLEW not present: OpenGL example programs will not be built.")
|
||||||
|
fl_debug_var (OPENGL_FOUND)
|
||||||
|
fl_debug_var (LIB_GLEW)
|
||||||
|
message ("")
|
||||||
|
endif (OPENGL_FOUND AND LIB_GLEW)
|
||||||
|
|
||||||
|
unset (REQUIRED_LIBS)
|
|
@ -37,6 +37,7 @@ elseif (HAVE_ALSA_ASOUNDLIB_H)
|
||||||
if (LIB_asound)
|
if (LIB_asound)
|
||||||
set (AUDIOLIBS ${LIB_asound})
|
set (AUDIOLIBS ${LIB_asound})
|
||||||
endif (LIB_asound)
|
endif (LIB_asound)
|
||||||
|
mark_as_advanced (LIB_asound)
|
||||||
endif (WIN32)
|
endif (WIN32)
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
@ -73,6 +74,7 @@ CREATE_EXAMPLE (doublebuffer doublebuffer.cxx fltk ANDROID_OK)
|
||||||
CREATE_EXAMPLE (editor "editor.cxx;editor-Info.plist" fltk ANDROID_OK)
|
CREATE_EXAMPLE (editor "editor.cxx;editor-Info.plist" fltk ANDROID_OK)
|
||||||
CREATE_EXAMPLE (fast_slow fast_slow.fl fltk ANDROID_OK)
|
CREATE_EXAMPLE (fast_slow fast_slow.fl fltk ANDROID_OK)
|
||||||
CREATE_EXAMPLE (file_chooser file_chooser.cxx "fltk_images;fltk")
|
CREATE_EXAMPLE (file_chooser file_chooser.cxx "fltk_images;fltk")
|
||||||
|
CREATE_EXAMPLE (fltk-versions fltk-versions.cxx fltk)
|
||||||
CREATE_EXAMPLE (fonts fonts.cxx fltk)
|
CREATE_EXAMPLE (fonts fonts.cxx fltk)
|
||||||
CREATE_EXAMPLE (forms forms.cxx "fltk_forms;fltk")
|
CREATE_EXAMPLE (forms forms.cxx "fltk_forms;fltk")
|
||||||
CREATE_EXAMPLE (hello hello.cxx fltk)
|
CREATE_EXAMPLE (hello hello.cxx fltk)
|
||||||
|
@ -127,8 +129,6 @@ CREATE_EXAMPLE (valuators valuators.fl fltk)
|
||||||
CREATE_EXAMPLE (unittests unittests.cxx fltk)
|
CREATE_EXAMPLE (unittests unittests.cxx fltk)
|
||||||
CREATE_EXAMPLE (windowfocus windowfocus.cxx fltk)
|
CREATE_EXAMPLE (windowfocus windowfocus.cxx fltk)
|
||||||
|
|
||||||
CREATE_EXAMPLE (fltk-versions ../examples/fltk-versions.cxx fltk)
|
|
||||||
|
|
||||||
# OpenGL demos...
|
# OpenGL demos...
|
||||||
if (OPENGL_FOUND)
|
if (OPENGL_FOUND)
|
||||||
CREATE_EXAMPLE (CubeView "CubeMain.cxx;CubeView.cxx;CubeViewUI.fl" "fltk_gl;fltk")
|
CREATE_EXAMPLE (CubeView "CubeMain.cxx;CubeView.cxx;CubeViewUI.fl" "fltk_gl;fltk")
|
||||||
|
|
Loading…
Reference in New Issue