38871c5b31
- FL/Fl_Grid.H: header file - src/Fl_Grid.cxx: implementation - examples/grid-simple.cxx: simple example program - test/cube.cxx: use Fl_Grid for layout - test/grid_alignment.cxx: test cell alignment and other functions - test/grid_buttons.cxx: demo program as discussed in fltk.general - test/grid_login.cxx: like test/flex_login.cxx but with Fl_Grid - test/flex_login.cxx: modified to match test/grid_login.cxx
179 lines
4.7 KiB
CMake
179 lines
4.7 KiB
CMake
#
|
|
# CMakeLists.txt used to build example apps by the CMake build system
|
|
#
|
|
# Copyright 2020-2023 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)
|
|
include (../CMake/FLTK-Functions.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
|
|
callbacks
|
|
chart-simple
|
|
draggable-group
|
|
grid-simple
|
|
howto-add_fd-and-popen
|
|
howto-browser-with-icons
|
|
howto-drag-and-drop
|
|
howto-draw-an-x
|
|
howto-flex-simple
|
|
howto-menu-with-images
|
|
howto-parse-args
|
|
howto-remap-numpad-keyboard-keys
|
|
howto-text-over-image-button
|
|
menubar-add
|
|
nativefilechooser-simple
|
|
nativefilechooser-simple-app
|
|
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
|
|
)
|
|
|
|
############################################################
|
|
# simple FLUID examples w/o extra libs
|
|
############################################################
|
|
|
|
set (FLUID_SOURCES
|
|
fluid-callback
|
|
)
|
|
|
|
############################################################
|
|
# examples requiring fltk_images
|
|
############################################################
|
|
|
|
set (IMAGE_SOURCES
|
|
animgifimage
|
|
animgifimage-play
|
|
animgifimage-resize
|
|
animgifimage-simple
|
|
howto-simple-svg
|
|
)
|
|
|
|
############################################################
|
|
# examples requiring cairo
|
|
############################################################
|
|
|
|
set (CAIRO_SOURCES
|
|
cairo-draw-x
|
|
)
|
|
|
|
############################################################
|
|
# 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 FLUID example programs
|
|
############################################################
|
|
|
|
foreach (src ${FLUID_SOURCES})
|
|
CREATE_EXAMPLE (${src} ${src}.fl 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 requiring cairo
|
|
############################################################
|
|
|
|
if (FLTK_HAVE_CAIRO)
|
|
set (cairo_libs "fltk;cairo")
|
|
if (TARGET fltk_cairo)
|
|
set (cairo_libs fltk_cairo ${cairo_libs})
|
|
endif ()
|
|
else ()
|
|
set(cairo_libs "fltk")
|
|
endif ()
|
|
|
|
foreach (src ${CAIRO_SOURCES})
|
|
CREATE_EXAMPLE (${src} ${src}.cxx "${cairo_libs}")
|
|
endforeach (src)
|
|
|
|
############################################################
|
|
# create example programs with OpenGL + libGLEW
|
|
############################################################
|
|
|
|
# Note: macOS does not need libGLEW
|
|
|
|
if (APPLE AND (NOT OPTION_APPLE_X11))
|
|
if (NOT LIB_GLEW)
|
|
set (LIB_GLEW TRUE)
|
|
endif ()
|
|
set (REQUIRED_LIBS fltk_gl fltk ${OPENGL_LIBRARIES})
|
|
else ()
|
|
set (REQUIRED_LIBS fltk_gl fltk ${LIB_GLEW} ${OPENGL_LIBRARIES})
|
|
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)
|