diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2024-02-07 18:30:11 +0100 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2024-02-07 18:37:34 +0100 |
| commit | fd5cd809356dc73d2ede5bb2f0db25098771cb8e (patch) | |
| tree | 70c82946eb7d11eba910bb387dc3bcc20abfd42c /test | |
| parent | 1cf6fdfa8562fafa0566e1008f74ea94f71356e4 (diff) | |
Introduce "Modern CMake" in FLTK
This is a big commit and there are too many changes to list them all.
The main changes are:
- rename all CMake build options to 'FLTK_*'
- export library targets with namespace (prefix) 'fltk::'
- standardize shared library target names with suffix '-shared'
- set public build properties on libraries for consumers
- document library names and aliases in README.CMake.txt
- document changes in "Migrating Code from FLTK 1.3 to 1.4"
- partial backwards compatibility for old user projects
Included but not directly related changes:
- fix Windows (Visual Studio) DLL build
- add CMake function fl_debug_target() to show target properties
- don't build test programs if FLTK is a subproject
- internal: reformat CMake code: remove space before '('
Thanks to Matthias and Manolo for their help, testing, and feeback.
Diffstat (limited to 'test')
| -rw-r--r-- | test/CMakeLists.txt | 365 | ||||
| -rw-r--r-- | test/cairo_test.cxx | 6 |
2 files changed, 181 insertions, 190 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 7fea98adc..7f6f6a8bc 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,7 +1,7 @@ # # CMakeLists.txt used to build test and demo apps by the CMake build system # -# Copyright 2004-2021 by Bill Spitzak and others. +# Copyright 2004-2024 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 @@ -15,45 +15,39 @@ # ####################################################################### -include (../CMake/FLTK-Functions.cmake) -include (../CMake/fl_create_example.cmake) +include(../CMake/FLTK-Functions.cmake) +include(../CMake/fl_create_example.cmake) -set (EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/../bin/test) -set (TESTFILE_PATH ${CMAKE_CURRENT_BINARY_DIR}/../data) +set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/../bin/test) +set(TESTFILE_PATH ${CMAKE_CURRENT_BINARY_DIR}/../data) # create data and binary directory to copy scripts and data files -file (MAKE_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -file (MAKE_DIRECTORY ${TESTFILE_PATH}) - -####################################################################### -# audio libs for test apps -if (WIN32) - set (AUDIOLIBS winmm) -elseif (APPLE) - set (AUDIOLIBS "-framework CoreAudio") -elseif (HAVE_ALSA_ASOUNDLIB_H) - find_library(LIB_asound asound) - if (LIB_asound) - set (AUDIOLIBS ${LIB_asound}) - endif (LIB_asound) - mark_as_advanced (LIB_asound) -endif (WIN32) - -####################################################################### -include_directories( - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_BINARY_DIR} -) +file(MAKE_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) +file(MAKE_DIRECTORY ${TESTFILE_PATH}) ####################################################################### # Define additional example programs for testing, for instance: -# set (extra_tests issue-276 str-1895) +# set(extra_tests issue-276 str-1895) # Use the source file test/'name'.cxx for each additional program. # These test programs will be built with image and GL libraries. # Leave the variable 'extra_tests' empty to disable extra test programs. -set (extra_tests) +set(extra_tests) + +####################################################################### +# audio libs for test apps +if(WIN32) + set(AUDIOLIBS winmm) +elseif(APPLE) + set(AUDIOLIBS "-framework CoreAudio") +elseif(HAVE_ALSA_ASOUNDLIB_H) + find_library(LIB_asound asound) + if(LIB_asound) + set(AUDIOLIBS ${LIB_asound}) + endif(LIB_asound) + mark_as_advanced (LIB_asound) +endif(WIN32) ####################################################################### # Define standard libraries for those OpenGL demos that can be built @@ -63,119 +57,119 @@ set (extra_tests) # Note: use "${GLDEMO_LIBS}" for their library parameter # or "${GLDEMO_SHARED}" to build with shared FLTK libraries -if (OPENGL_FOUND) - set (GLDEMO_LIBS fltk_gl fltk ${OPENGL_LIBRARIES}) - if (MSVC) - set (GLDEMO_SHARED fltk_SHARED ${OPENGL_LIBRARIES}) - else () - set (GLDEMO_SHARED fltk_gl_SHARED fltk_SHARED ${OPENGL_LIBRARIES}) - endif () -else () - set (GLDEMO_LIBS fltk) - set (GLDEMO_SHARED fltk_SHARED) - endif () +if(OPENGL_FOUND) + set(GLDEMO_LIBS fltk::gl) + if(MSVC) + set(GLDEMO_SHARED fltk::fltk-shared) + else() + set(GLDEMO_SHARED fltk::gl-shared) + endif() +else() + set(GLDEMO_LIBS fltk::fltk) + set(GLDEMO_SHARED fltk::fltk-shared) +endif() # Similar approach for the 'forms' demo (shared lib not supported) -if (FLTK_BUILD_FORMS) - set (FORMS_LIBS fltk_forms) # implies 'fltk' as well -else () - set (FORMS_LIBS fltk) -endif () +if(FLTK_BUILD_FORMS) + set(FORMS_LIBS fltk::forms) +else() + set(FORMS_LIBS fltk::fltk) +endif() ####################################################################### -CREATE_EXAMPLE (adjuster adjuster.cxx fltk) -CREATE_EXAMPLE (arc arc.cxx fltk) -CREATE_EXAMPLE (animated animated.cxx fltk) -CREATE_EXAMPLE (ask ask.cxx fltk) -CREATE_EXAMPLE (bitmap bitmap.cxx fltk) -CREATE_EXAMPLE (blocks "blocks.cxx;blocks.plist;blocks.icns" "fltk;${AUDIOLIBS}") -CREATE_EXAMPLE (boxtype boxtype.cxx fltk) -CREATE_EXAMPLE (browser browser.cxx fltk) -CREATE_EXAMPLE (button button.cxx fltk) -CREATE_EXAMPLE (buttons buttons.cxx fltk) -CREATE_EXAMPLE (checkers "checkers.cxx;checkers_pieces.fl;checkers.icns" "fltk_images;fltk") -CREATE_EXAMPLE (clipboard clipboard.cxx "fltk_images;fltk") -CREATE_EXAMPLE (clock clock.cxx fltk) -CREATE_EXAMPLE (colbrowser colbrowser.cxx fltk) -CREATE_EXAMPLE (color_chooser color_chooser.cxx fltk) -CREATE_EXAMPLE (contrast contrast.cxx fltk) -CREATE_EXAMPLE (coordinates coordinates.cxx fltk) -CREATE_EXAMPLE (cursor cursor.cxx fltk) -CREATE_EXAMPLE (curve curve.cxx fltk) -CREATE_EXAMPLE (demo demo.cxx fltk) -CREATE_EXAMPLE (device device.cxx "fltk_images;fltk") -CREATE_EXAMPLE (doublebuffer doublebuffer.cxx fltk) -CREATE_EXAMPLE (editor "editor.cxx;editor.plist" fltk) -CREATE_EXAMPLE (fast_slow fast_slow.fl fltk) -CREATE_EXAMPLE (file_chooser file_chooser.cxx "fltk_images;fltk") -CREATE_EXAMPLE (flex_demo flex_demo.cxx fltk) -CREATE_EXAMPLE (flex_login flex_login.cxx fltk) -CREATE_EXAMPLE (fltk-versions fltk-versions.cxx fltk) -CREATE_EXAMPLE (fonts fonts.cxx fltk) -CREATE_EXAMPLE (forms forms.cxx "${FORMS_LIBS}") -CREATE_EXAMPLE (fullscreen fullscreen.cxx "${GLDEMO_LIBS}") -CREATE_EXAMPLE (grid_alignment grid_alignment.cxx fltk) -CREATE_EXAMPLE (grid_buttons grid_buttons.cxx fltk) -CREATE_EXAMPLE (grid_dialog grid_dialog.cxx fltk) -CREATE_EXAMPLE (grid_login grid_login.cxx fltk) -CREATE_EXAMPLE (handle_events handle_events.cxx "${GLDEMO_LIBS}") -CREATE_EXAMPLE (hello hello.cxx fltk) -CREATE_EXAMPLE (help_dialog help_dialog.cxx "fltk_images;fltk") -CREATE_EXAMPLE (icon icon.cxx fltk) -CREATE_EXAMPLE (iconize iconize.cxx fltk) -CREATE_EXAMPLE (image image.cxx fltk) -CREATE_EXAMPLE (inactive inactive.fl fltk) -CREATE_EXAMPLE (input input.cxx fltk) -CREATE_EXAMPLE (input_choice input_choice.cxx fltk) -CREATE_EXAMPLE (keyboard "keyboard.cxx;keyboard_ui.fl" fltk) -CREATE_EXAMPLE (label label.cxx fltk) -CREATE_EXAMPLE (line_style line_style.cxx fltk) -CREATE_EXAMPLE (list_visuals list_visuals.cxx fltk) -CREATE_EXAMPLE (mandelbrot "mandelbrot_ui.fl;mandelbrot.cxx" fltk) -CREATE_EXAMPLE (menubar menubar.cxx fltk) -CREATE_EXAMPLE (message message.cxx fltk) -CREATE_EXAMPLE (minimum minimum.cxx fltk) -CREATE_EXAMPLE (native-filechooser native-filechooser.cxx "fltk_images;fltk") -CREATE_EXAMPLE (navigation navigation.cxx fltk) -CREATE_EXAMPLE (output output.cxx fltk) -CREATE_EXAMPLE (overlay overlay.cxx fltk) -CREATE_EXAMPLE (pack pack.cxx fltk) -CREATE_EXAMPLE (pixmap pixmap.cxx "fltk_images;fltk") -CREATE_EXAMPLE (pixmap_browser pixmap_browser.cxx "fltk_images;fltk") -CREATE_EXAMPLE (preferences preferences.fl fltk) -CREATE_EXAMPLE (offscreen offscreen.cxx fltk) -CREATE_EXAMPLE (radio radio.fl fltk) -CREATE_EXAMPLE (resize resize.fl fltk) -CREATE_EXAMPLE (resizebox resizebox.cxx fltk) -CREATE_EXAMPLE (resize-example1 "resize-example1.cxx;resize-arrows.cxx" fltk) -CREATE_EXAMPLE (resize-example2 "resize-example2.cxx;resize-arrows.cxx" fltk) -CREATE_EXAMPLE (resize-example3a "resize-example3a.cxx;resize-arrows.cxx" fltk) -CREATE_EXAMPLE (resize-example3b "resize-example3b.cxx;resize-arrows.cxx" fltk) -CREATE_EXAMPLE (resize-example3c "resize-example3c.cxx;resize-arrows.cxx" fltk) -CREATE_EXAMPLE (resize-example4a "resize-example4a.cxx;resize-arrows.cxx" fltk) -CREATE_EXAMPLE (resize-example4b "resize-example4b.cxx;resize-arrows.cxx" fltk) -CREATE_EXAMPLE (resize-example5a "resize-example5a.cxx;resize-arrows.cxx" fltk) -CREATE_EXAMPLE (resize-example5b "resize-example5b.cxx;resize-arrows.cxx" fltk) -CREATE_EXAMPLE (resize-example5c "resize-example5c.cxx;resize-arrows.cxx" fltk) -CREATE_EXAMPLE (rotated_text rotated_text.cxx fltk) -CREATE_EXAMPLE (scroll scroll.cxx fltk) -CREATE_EXAMPLE (subwindow subwindow.cxx fltk) -CREATE_EXAMPLE (sudoku "sudoku.cxx;sudoku.plist;sudoku.icns;sudoku.rc" "fltk_images;fltk;${AUDIOLIBS}") -CREATE_EXAMPLE (symbols symbols.cxx fltk) -CREATE_EXAMPLE (tabs tabs.fl fltk) -CREATE_EXAMPLE (table table.cxx fltk) -CREATE_EXAMPLE (terminal terminal.fl fltk) -CREATE_EXAMPLE (threads threads.cxx fltk) -CREATE_EXAMPLE (tile tile.cxx fltk) -CREATE_EXAMPLE (tiled_image tiled_image.cxx fltk) -CREATE_EXAMPLE (tree tree.fl fltk) -CREATE_EXAMPLE (twowin twowin.cxx fltk) -CREATE_EXAMPLE (utf8 utf8.cxx fltk) -CREATE_EXAMPLE (valuators valuators.fl fltk) -CREATE_EXAMPLE (windowfocus windowfocus.cxx fltk) -CREATE_EXAMPLE (wizard wizard.cxx fltk) +fl_create_example(adjuster adjuster.cxx fltk::fltk) +fl_create_example(arc arc.cxx fltk::fltk) +fl_create_example(animated animated.cxx fltk::fltk) +fl_create_example(ask ask.cxx fltk::fltk) +fl_create_example(bitmap bitmap.cxx fltk::fltk) +fl_create_example(blocks "blocks.cxx;blocks.plist;blocks.icns" "fltk::fltk;${AUDIOLIBS}") +fl_create_example(boxtype boxtype.cxx fltk::fltk) +fl_create_example(browser browser.cxx fltk::fltk) +fl_create_example(button button.cxx fltk::fltk) +fl_create_example(buttons buttons.cxx fltk::fltk) +fl_create_example(checkers "checkers.cxx;checkers_pieces.fl;checkers.icns" fltk::images) +fl_create_example(clipboard clipboard.cxx fltk::images) +fl_create_example(clock clock.cxx fltk::fltk) +fl_create_example(colbrowser colbrowser.cxx fltk::fltk) +fl_create_example(color_chooser color_chooser.cxx fltk::fltk) +fl_create_example(contrast contrast.cxx fltk::fltk) +fl_create_example(coordinates coordinates.cxx fltk::fltk) +fl_create_example(cursor cursor.cxx fltk::fltk) +fl_create_example(curve curve.cxx fltk::fltk) +fl_create_example(demo demo.cxx fltk::fltk) +fl_create_example(device device.cxx fltk::images) +fl_create_example(doublebuffer doublebuffer.cxx fltk::fltk) +fl_create_example(editor "editor.cxx;editor.plist" fltk::fltk) +fl_create_example(fast_slow fast_slow.fl fltk::fltk) +fl_create_example(file_chooser file_chooser.cxx fltk::images) +fl_create_example(flex_demo flex_demo.cxx fltk::fltk) +fl_create_example(flex_login flex_login.cxx fltk::fltk) +fl_create_example(fltk-versions fltk-versions.cxx fltk::fltk) +fl_create_example(fonts fonts.cxx fltk::fltk) +fl_create_example(forms forms.cxx "${FORMS_LIBS}") +fl_create_example(fullscreen fullscreen.cxx "${GLDEMO_LIBS}") +fl_create_example(grid_alignment grid_alignment.cxx fltk::fltk) +fl_create_example(grid_buttons grid_buttons.cxx fltk::fltk) +fl_create_example(grid_dialog grid_dialog.cxx fltk::fltk) +fl_create_example(grid_login grid_login.cxx fltk::fltk) +fl_create_example(handle_events handle_events.cxx "${GLDEMO_LIBS}") +fl_create_example(hello hello.cxx fltk::fltk) +fl_create_example(help_dialog help_dialog.cxx fltk::images) +fl_create_example(icon icon.cxx fltk::fltk) +fl_create_example(iconize iconize.cxx fltk::fltk) +fl_create_example(image image.cxx fltk::fltk) +fl_create_example(inactive inactive.fl fltk::fltk) +fl_create_example(input input.cxx fltk::fltk) +fl_create_example(input_choice input_choice.cxx fltk::fltk) +fl_create_example(keyboard "keyboard.cxx;keyboard_ui.fl" fltk::fltk) +fl_create_example(label label.cxx fltk::fltk) +fl_create_example(line_style line_style.cxx fltk::fltk) +fl_create_example(list_visuals list_visuals.cxx fltk::fltk) +fl_create_example(mandelbrot "mandelbrot_ui.fl;mandelbrot.cxx" fltk::fltk) +fl_create_example(menubar menubar.cxx fltk::fltk) +fl_create_example(message message.cxx fltk::fltk) +fl_create_example(minimum minimum.cxx fltk::fltk) +fl_create_example(native-filechooser native-filechooser.cxx fltk::images) +fl_create_example(navigation navigation.cxx fltk::fltk) +fl_create_example(output output.cxx fltk::fltk) +fl_create_example(overlay overlay.cxx fltk::fltk) +fl_create_example(pack pack.cxx fltk::fltk) +fl_create_example(pixmap pixmap.cxx fltk::images) +fl_create_example(pixmap_browser pixmap_browser.cxx fltk::images) +fl_create_example(preferences preferences.fl fltk::fltk) +fl_create_example(offscreen offscreen.cxx fltk::fltk) +fl_create_example(radio radio.fl fltk::fltk) +fl_create_example(resize resize.fl fltk::fltk) +fl_create_example(resizebox resizebox.cxx fltk::fltk) +fl_create_example(resize-example1 "resize-example1.cxx;resize-arrows.cxx" fltk::fltk) +fl_create_example(resize-example2 "resize-example2.cxx;resize-arrows.cxx" fltk::fltk) +fl_create_example(resize-example3a "resize-example3a.cxx;resize-arrows.cxx" fltk::fltk) +fl_create_example(resize-example3b "resize-example3b.cxx;resize-arrows.cxx" fltk::fltk) +fl_create_example(resize-example3c "resize-example3c.cxx;resize-arrows.cxx" fltk::fltk) +fl_create_example(resize-example4a "resize-example4a.cxx;resize-arrows.cxx" fltk::fltk) +fl_create_example(resize-example4b "resize-example4b.cxx;resize-arrows.cxx" fltk::fltk) +fl_create_example(resize-example5a "resize-example5a.cxx;resize-arrows.cxx" fltk::fltk) +fl_create_example(resize-example5b "resize-example5b.cxx;resize-arrows.cxx" fltk::fltk) +fl_create_example(resize-example5c "resize-example5c.cxx;resize-arrows.cxx" fltk::fltk) +fl_create_example(rotated_text rotated_text.cxx fltk::fltk) +fl_create_example(scroll scroll.cxx fltk::fltk) +fl_create_example(subwindow subwindow.cxx fltk::fltk) +fl_create_example(sudoku "sudoku.cxx;sudoku.plist;sudoku.icns;sudoku.rc" "fltk::images;${AUDIOLIBS}") +fl_create_example(symbols symbols.cxx fltk::fltk) +fl_create_example(tabs tabs.fl fltk::fltk) +fl_create_example(table table.cxx fltk::fltk) +fl_create_example(terminal terminal.fl fltk::fltk) +fl_create_example(threads threads.cxx fltk::fltk) +fl_create_example(tile tile.cxx fltk::fltk) +fl_create_example(tiled_image tiled_image.cxx fltk::fltk) +fl_create_example(tree tree.fl fltk::fltk) +fl_create_example(twowin twowin.cxx fltk::fltk) +fl_create_example(utf8 utf8.cxx fltk::fltk) +fl_create_example(valuators valuators.fl fltk::fltk) +fl_create_example(windowfocus windowfocus.cxx fltk::fltk) +fl_create_example(wizard wizard.cxx fltk::fltk) # unittests uses multiple source files and can be built with or w/o OpenGL and "shared" @@ -197,43 +191,43 @@ SET (UNITTEST_SRCS unittest_schemes.cxx unittest_terminal.cxx ) -CREATE_EXAMPLE (unittests "${UNITTEST_SRCS}" "${GLDEMO_LIBS}") +fl_create_example(unittests "${UNITTEST_SRCS}" "${GLDEMO_LIBS}") # Create additional test programs (used by developers for testing) -if (extra_tests) - foreach (name ${extra_tests}) - create_example (${name} ${name}.cxx "fltk_images;${GLDEMO_LIBS}") - endforeach () -endif () +if(extra_tests) + foreach(name ${extra_tests}) + fl_create_example(${name} ${name}.cxx "fltk::images;${GLDEMO_LIBS}") + endforeach() +endif() # OpenGL demos. These programs can't be built w/o OpenGL -if (OPENGL_FOUND) - CREATE_EXAMPLE (CubeView "CubeMain.cxx;CubeView.cxx;CubeViewUI.fl" "${GLDEMO_LIBS}") - CREATE_EXAMPLE (cube cube.cxx "${GLDEMO_LIBS}") - CREATE_EXAMPLE (fractals "fractals.cxx;fracviewer.cxx" "${GLDEMO_LIBS}") - CREATE_EXAMPLE (glut_test glut_test.cxx "${GLDEMO_LIBS}") - CREATE_EXAMPLE (glpuzzle glpuzzle.cxx "${GLDEMO_LIBS}") - CREATE_EXAMPLE (gl_overlay gl_overlay.cxx "${GLDEMO_LIBS}") - CREATE_EXAMPLE (shape shape.cxx "${GLDEMO_LIBS}") -endif (OPENGL_FOUND) +if(OPENGL_FOUND) + fl_create_example(CubeView "CubeMain.cxx;CubeView.cxx;CubeViewUI.fl" "${GLDEMO_LIBS}") + fl_create_example(cube cube.cxx "${GLDEMO_LIBS}") + fl_create_example(fractals "fractals.cxx;fracviewer.cxx" "${GLDEMO_LIBS}") + fl_create_example(glut_test glut_test.cxx "${GLDEMO_LIBS}") + fl_create_example(glpuzzle glpuzzle.cxx "${GLDEMO_LIBS}") + fl_create_example(gl_overlay gl_overlay.cxx "${GLDEMO_LIBS}") + fl_create_example(shape shape.cxx "${GLDEMO_LIBS}") +endif(OPENGL_FOUND) # Cairo demo - must also be built w/o Cairo (displays a message box) -if (FLTK_HAVE_CAIRO) - CREATE_EXAMPLE (cairo_test cairo_test.cxx "fltk;cairo") -else () - CREATE_EXAMPLE (cairo_test cairo_test.cxx fltk) -endif (FLTK_HAVE_CAIRO) +# ### if(FLTK_HAVE_CAIRO) +# ### fl_create_example(cairo_test cairo_test.cxx "fltk;cairo") +# ### else() + fl_create_example(cairo_test cairo_test.cxx fltk::fltk) +# ### endif(FLTK_HAVE_CAIRO) # *** EXPERIMENTAL *** # Build some of the demo programs linked against the shared FLTK lib(s). # This is currently pretty complicated and should be improved. # It will be simplified significantly when we use more "modern CMake". -if (OPTION_BUILD_SHARED_LIBS) +if(FLTK_BUILD_SHARED_LIBS) - if (MSVC) # MS Visual C++ aka. Visual Studio + if(MSVC) # MS Visual C++ aka. Visual Studio # We need to link with fl_call_main.c, but this must not be compiled with # macro FL_DLL, whereas the other source file(s) must be compiled with FL_DLL @@ -251,44 +245,41 @@ if (OPTION_BUILD_SHARED_LIBS) add_library (CALL_MAIN OBJECT EXCLUDE_FROM_ALL ../src/fl_call_main.c) # define a list of shared targets so we can set COMPILE_DEFINITIONS in a loop - set (SHARED_TARGETS "") + set(SHARED_TARGETS "") + + fl_create_example(hello-shared hello.cxx "CALL_MAIN;fltk::fltk-shared") + fl_create_example(pixmap_browser-shared pixmap_browser.cxx "CALL_MAIN;fltk::fltk-shared") + fl_create_example(unittests-shared "${UNITTEST_SRCS}" "CALL_MAIN;${GLDEMO_SHARED}") - CREATE_EXAMPLE (hello-shared hello.cxx "fltk_SHARED;CALL_MAIN") - CREATE_EXAMPLE (pixmap_browser-shared pixmap_browser.cxx "fltk_SHARED;CALL_MAIN") - CREATE_EXAMPLE (unittests-shared "${UNITTEST_SRCS}" "${GLDEMO_SHARED};CALL_MAIN") - list (APPEND SHARED_TARGETS hello pixmap_browser unittests) + list(APPEND SHARED_TARGETS hello pixmap_browser unittests) - if (OPENGL_FOUND) - CREATE_EXAMPLE (glpuzzle-shared glpuzzle.cxx "fltk_SHARED;CALL_MAIN;${OPENGL_LIBRARIES}") - CREATE_EXAMPLE (shape-shared shape.cxx "fltk_SHARED;CALL_MAIN;${OPENGL_LIBRARIES}") - list (APPEND SHARED_TARGETS glpuzzle shape) - endif (OPENGL_FOUND) + if(OPENGL_FOUND) + fl_create_example(glpuzzle-shared glpuzzle.cxx "CALL_MAIN;${GLDEMO_SHARED}") + fl_create_example(shape-shared shape.cxx "CALL_MAIN;${GLDEMO_SHARED}") + list(APPEND SHARED_TARGETS glpuzzle shape) + endif(OPENGL_FOUND) # apply property COMPILE_DEFINITIONS "-D FL_DLL" in a loop for all necessary source files - foreach (tgt ${SHARED_TARGETS}) + foreach(tgt ${SHARED_TARGETS}) target_compile_definitions (${tgt}-shared PRIVATE "FL_DLL") - endforeach () + endforeach() - else () # not MSVC + else() # not MSVC - CREATE_EXAMPLE (hello-shared hello.cxx fltk_SHARED) - CREATE_EXAMPLE (pixmap_browser-shared pixmap_browser.cxx "fltk_images_SHARED") - CREATE_EXAMPLE (unittests-shared "${UNITTEST_SRCS}" "${GLDEMO_SHARED}") + fl_create_example(hello-shared hello.cxx fltk::fltk-shared) + fl_create_example(pixmap_browser-shared pixmap_browser.cxx "fltk::images-shared") + fl_create_example(unittests-shared "${UNITTEST_SRCS}" "${GLDEMO_SHARED}") - if (OPENGL_FOUND) - CREATE_EXAMPLE (glpuzzle-shared glpuzzle.cxx "${GLDEMO_SHARED}") - CREATE_EXAMPLE (shape-shared shape.cxx "${GLDEMO_SHARED}") - endif (OPENGL_FOUND) + if(OPENGL_FOUND) + fl_create_example(glpuzzle-shared glpuzzle.cxx "${GLDEMO_SHARED}") + fl_create_example(shape-shared shape.cxx "${GLDEMO_SHARED}") + endif(OPENGL_FOUND) - if (FLTK_HAVE_CAIRO) - CREATE_EXAMPLE (cairo_test-shared cairo_test.cxx "fltk_SHARED;cairo") - else () - CREATE_EXAMPLE (cairo_test-shared cairo_test.cxx "fltk_SHARED") - endif () + fl_create_example(cairo_test-shared cairo_test.cxx "fltk::fltk-shared") - endif (MSVC) # (not MSVC) + endif(MSVC) # (not MSVC) -endif (OPTION_BUILD_SHARED_LIBS) +endif(FLTK_BUILD_SHARED_LIBS) ##################################################### # We need some support files for the demo programs @@ -296,7 +287,7 @@ endif (OPTION_BUILD_SHARED_LIBS) # copy the required test files -file (COPY +file(COPY demo.menu rgb.txt browser.cxx editor.cxx valuators.fl help_dialog.html DESTINATION ${TESTFILE_PATH} @@ -304,7 +295,7 @@ file (COPY # copy the image directory for help_dialog.html -file (COPY +file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/images DESTINATION ${TESTFILE_PATH} ) diff --git a/test/cairo_test.cxx b/test/cairo_test.cxx index ae3d9d736..545e636a2 100644 --- a/test/cairo_test.cxx +++ b/test/cairo_test.cxx @@ -27,7 +27,7 @@ #define DEF_WIDTH 0.03 // This demo program can be used in 3 modes. All 3 modes require configure -// option --enable-cairo or CMake OPTION_CAIRO. +// option --enable-cairo or CMake FLTK_OPTION_CAIRO_WINDOW. // // 1) using class Fl_Cairo_Window useful when all the content of a window // is drawn with Cairo. @@ -39,7 +39,7 @@ // or // 3) showing how to use "cairo extended use". // This is achieved when FLTK was built with one more option -// (configure --enable-cairoext or CMake OPTION_CAIROEXT) +// (configure --enable-cairoext or CMake FLTK_OPTION_CAIRO_EXT) // which defines the preprocessor variable FLTK_HAVE_CAIROEXT. // If Fl::cairo_autolink_context(true); is called at the beginning // of main(), any overridden draw() function gets access to an adequate @@ -212,7 +212,7 @@ int main(int argc, char **argv) { fl_message_title("This program needs a Cairo enabled FLTK library"); fl_message( "Please configure FLTK with Cairo enabled (--enable-cairo or --enable-cairoext)\n" - "or one of the CMake options OPTION_CAIRO or OPTION_CAIROEXT, respectively."); + "or one of the CMake options FLTK_OPTION_CAIRO_WINDOW or FLTK_OPTION_CAIRO_EXT, respectively."); return 0; } #endif // (FLTK_HAVE_CAIRO) |
