blob: 6e996a5a3ecea51da357e1c5eb096e949c80476d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
#
# "$Id$"
#
# CMakeLists.txt used to build test and demo apps by the CMake build system
#
# Copyright 2004-2019 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:
#
# http://www.fltk.org/COPYING.php
#
# Please report all bugs and problems on the following page:
#
# http://www.fltk.org/str.php
#
#######################################################################
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/../bin/examples)
#######################################################################
# 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)
endif(WIN32)
#######################################################################
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
#######################################################################
# Add the ANDROID_OK option if the example can be compiled for Android
# as well as for other platforms.
if(NOT ANDROID)
CREATE_EXAMPLE(adjuster adjuster.cxx fltk ANDROID_OK)
CREATE_EXAMPLE(arc arc.cxx fltk ANDROID_OK)
CREATE_EXAMPLE(animated animated.cxx fltk ANDROID_OK)
CREATE_EXAMPLE(ask ask.cxx fltk ANDROID_OK)
CREATE_EXAMPLE(bitmap bitmap.cxx fltk ANDROID_OK)
CREATE_EXAMPLE(blocks blocks.cxx "fltk;${AUDIOLIBS}")
CREATE_EXAMPLE(boxtype boxtype.cxx fltk ANDROID_OK)
CREATE_EXAMPLE(browser browser.cxx fltk ANDROID_OK)
CREATE_EXAMPLE(button button.cxx fltk ANDROID_OK)
CREATE_EXAMPLE(buttons buttons.cxx fltk ANDROID_OK)
CREATE_EXAMPLE(checkers "checkers.cxx;checkers_pieces.fl" "fltk_images;fltk" ANDROID_OK)
CREATE_EXAMPLE(clock clock.cxx fltk ANDROID_OK)
CREATE_EXAMPLE(colbrowser colbrowser.cxx fltk)
CREATE_EXAMPLE(color_chooser color_chooser.cxx fltk ANDROID_OK)
CREATE_EXAMPLE(cursor cursor.cxx fltk ANDROID_OK)
CREATE_EXAMPLE(curve curve.cxx fltk ANDROID_OK)
CREATE_EXAMPLE(demo demo.cxx fltk)
CREATE_EXAMPLE(device device.cxx "fltk;fltk_images")
CREATE_EXAMPLE(doublebuffer doublebuffer.cxx fltk ANDROID_OK)
CREATE_EXAMPLE(editor editor.cxx 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(fonts fonts.cxx fltk)
CREATE_EXAMPLE(forms forms.cxx "fltk_forms;fltk")
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)
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(rotated_text rotated_text.cxx fltk)
CREATE_EXAMPLE(scroll scroll.cxx fltk)
CREATE_EXAMPLE(subwindow subwindow.cxx fltk)
CREATE_EXAMPLE(sudoku sudoku.cxx "fltk_images;fltk;${AUDIOLIBS}")
CREATE_EXAMPLE(symbols symbols.cxx fltk)
CREATE_EXAMPLE(tabs tabs.fl fltk)
CREATE_EXAMPLE(table table.cxx 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(unittests unittests.cxx fltk)
CREATE_EXAMPLE(windowfocus windowfocus.cxx fltk)
CREATE_EXAMPLE(fltk-versions ../examples/fltk-versions.cxx fltk)
# OpenGL demos...
if(OPENGL_FOUND)
CREATE_EXAMPLE(CubeView "CubeMain.cxx;CubeView.cxx;CubeViewUI.fl" "fltk_gl;fltk")
CREATE_EXAMPLE(cube cube.cxx "fltk_gl;fltk;${OPENGL_LIBRARIES}")
CREATE_EXAMPLE(fractals "fractals.cxx;fracviewer.cxx" "fltk_gl;fltk")
CREATE_EXAMPLE(fullscreen fullscreen.cxx "fltk_gl;fltk")
CREATE_EXAMPLE(glpuzzle glpuzzle.cxx "fltk_gl;fltk;${OPENGL_LIBRARIES}")
CREATE_EXAMPLE(gl_overlay gl_overlay.cxx "fltk_gl;fltk;${OPENGL_LIBRARIES}")
CREATE_EXAMPLE(shape shape.cxx "fltk_gl;fltk;${OPENGL_LIBRARIES}")
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;fltk")
else ()
CREATE_EXAMPLE(cairo_test cairo_test.cxx fltk)
endif (FLTK_HAVE_CAIRO)
endif(NOT ANDROID)
# We need some support files for the demo programs:
# Note: this is incomplete as of 11 Feb 2015
# Todo: currently all files are copied, but some of them need configuration:
# - demo.menu: fluid can't be started (wrong path)
# - demo.menu: help_dialog (help_dialog.html) can't find its images (not copied)
# - maybe more ...
# prepare for a "better" test file installation path
set (TESTFILE_PATH ${EXECUTABLE_OUTPUT_PATH})
# *FIXME* *DEBUG*
# message ("test/CMakeLists.txt: EXECUTABLE_OUTPUT_PATH = '${EXECUTABLE_OUTPUT_PATH}'")
# message ("test/CMakeLists.txt: TESTFILE_PATH = '${TESTFILE_PATH}'")
# use a target filename to make sure the target directory gets created
configure_file(demo.menu ${TESTFILE_PATH}/demo.menu COPYONLY)
# use target directory only to avoid redundancy
configure_file(rgb.txt ${TESTFILE_PATH} COPYONLY)
configure_file(help_dialog.html ${TESTFILE_PATH} COPYONLY)
configure_file(browser.cxx ${TESTFILE_PATH} COPYONLY)
configure_file(editor.cxx ${TESTFILE_PATH} COPYONLY)
# Apple macOS creates bundles instead of executables and needs a little bit
# more help for demos to run correctly
if(APPLE AND NOT OPTION_APPLE_X11)
# make the menu structure part of the app
target_sources(demo PRIVATE demo.menu)
set_target_properties(demo PROPERTIES MACOSX_BUNDLE TRUE RESOURCE demo.menu )
# add a sample RGB file that otherwise only exists under X11
target_sources(colbrowser PRIVATE rgb.txt)
set_target_properties(colbrowser PROPERTIES MACOSX_BUNDLE TRUE RESOURCE rgb.txt )
# help_dialog displays an html file as an example
target_sources(help_dialog PRIVATE help_dialog.html)
set_target_properties(help_dialog PROPERTIES MACOSX_BUNDLE TRUE RESOURCE help_dialog.html )
endif(APPLE AND NOT OPTION_APPLE_X11)
|