diff options
Diffstat (limited to 'examples/CMakeLists.txt')
| -rw-r--r-- | examples/CMakeLists.txt | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 index 000000000..6dadb17af --- /dev/null +++ b/examples/CMakeLists.txt @@ -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) |
