summaryrefslogtreecommitdiff
path: root/examples/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'examples/CMakeLists.txt')
-rw-r--r--examples/CMakeLists.txt129
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)