File: CMakeLists.txt

package info (click to toggle)
fltk1.3 1.3.11-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 25,224 kB
  • sloc: cpp: 105,017; ansic: 91,383; sh: 6,825; makefile: 1,948; perl: 24; xml: 7
file content (213 lines) | stat: -rw-r--r-- 7,196 bytes parent folder | download
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
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
#
# Main CMakeLists.txt to build the FLTK project using CMake (www.cmake.org)
# Originally written by Michael Surette
#
# Copyright 1998-2025 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
#

#######################################################################
# Set CMake minimum version first: must be before `project()`
#######################################################################

# Note: previous (1.3.5) minimum version
# cmake_minimum_required (VERSION 2.6.3)

# Note: minimum CMake version required by GNUInstallDirs
# cmake_minimum_required (VERSION 2.8.4)

# Minimum CMake version required by FLTK 1.3.7 (since 07/2021)
# cmake_minimum_required (VERSION 3.2.3 FATAL_ERROR)

# Minimum CMake version required by FLTK 1.3.9 (since 12/2023)
cmake_minimum_required (VERSION 3.15.0 FATAL_ERROR)

#######################################################################
# define the FLTK project and version
#######################################################################

project (FLTK VERSION 1.3.11)

#######################################################################
# include macro and function definitions for general usage
#######################################################################

include (CMake/fl_debug_var.cmake)
include (CMake/fl_add_library.cmake)

if (0)
  fl_debug_var (FLTK_VERSION_MAJOR)
  fl_debug_var (FLTK_VERSION_MINOR)
  fl_debug_var (FLTK_VERSION_PATCH)
  fl_debug_var (FLTK_VERSION)
  fl_debug_var (CMAKE_VERSION)
endif ()

#######################################################################
# basic setup
#######################################################################
include (CMake/setup.cmake)

#######################################################################
# check for headers, libraries and functions
#######################################################################
include (CMake/resources.cmake)

#######################################################################
# options
#######################################################################
include (CMake/options.cmake)

#######################################################################
# print (debug) several build variables and options
#######################################################################

set (debug_build 0) # set to 1 to show debug info

if (debug_build)
  message ("")
  message (STATUS "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt: set 'debug_build' to 0 to disable the following info:")
  fl_debug_var (WIN32)
  fl_debug_var (MINGW)
  fl_debug_var (CYGWIN)
  fl_debug_var (MSVC)
  fl_debug_var (UNIX)
  fl_debug_var (APPLE)
  fl_debug_var (CMAKE_BUILD_TYPE)
  fl_debug_var (CMAKE_SIZEOF_VOID_P)
  fl_debug_var (OPTION_OPTIM)
  fl_debug_var (CMAKE_C_FLAGS)
  fl_debug_var (CMAKE_CXX_FLAGS)
  fl_debug_var (CMAKE_EXE_LINKER_FLAGS)
  message (STATUS "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt: end of debug_build info.")
endif (debug_build)

unset (debug_build)

#######################################################################
# variables shared by export and install
# export.cmake creates configuration files for direct use in a built but uninstalled FLTK
# install.cmake creates these files for an installed FLTK
# these two would only differ in paths, so common variables are set here
#######################################################################
include (CMake/variables.cmake)

#######################################################################
# final config and export
#######################################################################
include (CMake/export.cmake)

configure_file (
  ${CMAKE_CURRENT_SOURCE_DIR}/abi-version.cmake.in
  ${CMAKE_CURRENT_BINARY_DIR}/FL/abi-version.h
  @ONLY
)

#######################################################################
# options to build test/demo and example programs
#######################################################################

if (FLTK_BUILD_TEST)
  add_subdirectory (test)
endif (FLTK_BUILD_TEST)

if (FLTK_BUILD_EXAMPLES)
  add_subdirectory (examples)
endif (FLTK_BUILD_EXAMPLES)

#######################################################################
# create and install version config file 'FLTKConfigVersion.cmake'
#######################################################################

include(CMakePackageConfigHelpers)

write_basic_package_version_file(FLTKConfigVersion.cmake
  # [VERSION requiredVersion]       # defaults to project version
  COMPATIBILITY SameMinorVersion
)

install(FILES
  ${CMAKE_CURRENT_BINARY_DIR}/FLTKConfigVersion.cmake
  DESTINATION ${FLTK_CONFIG_PATH}
)

#######################################################################
# installation
#######################################################################
include (CMake/install.cmake)

#######################################################################
# Output Configuration Summary
#######################################################################

include (FeatureSummary)

message ("")
set (_descr "${PROJECT_NAME} ${FLTK_VERSION} generated by CMake ${CMAKE_VERSION}")
feature_summary (WHAT ALL DESCRIPTION "Configuration Summary for ${_descr} --\n")

message (STATUS "Static libraries will be built in ${CMAKE_CURRENT_BINARY_DIR}/lib")

if (OPTION_BUILD_SHARED_LIBS)
  message (STATUS "Shared libraries will be built in ${CMAKE_CURRENT_BINARY_DIR}/lib")
else ()
  message (STATUS "Shared libraries will not be built (set OPTION_BUILD_SHARED_LIBS=ON to build)")
endif ()

if (FLTK_BUILD_TEST)
  message (STATUS "Test programs    will be built in ${CMAKE_CURRENT_BINARY_DIR}/bin/test")
endif ()

if (FLTK_BUILD_EXAMPLES)
  message (STATUS "Example programs will be built in ${CMAKE_CURRENT_BINARY_DIR}/bin/examples")
else ()
  message (STATUS "Example programs will not be built (set FLTK_BUILD_EXAMPLES=ON to build)")
endif ()

message (STATUS "")

if (CMAKE_BUILD_TYPE STREQUAL "")
  message (STATUS "Build configuration     : <unspecified>")
else ()
  message (STATUS "Build configuration     : ${CMAKE_BUILD_TYPE}")
endif ()

message (STATUS "")

if (FLTK_USE_BUILTIN_JPEG)
  message (STATUS "Image Libraries         : JPEG = Builtin")
else ()
  message (STATUS "Image Libraries         : JPEG = System")
endif ()

if (FLTK_USE_BUILTIN_PNG)
  message (STATUS "                        : PNG  = Builtin")
else ()
  message (STATUS "                        : PNG  = System")
endif ()

if (FLTK_USE_BUILTIN_ZLIB)
  message (STATUS "                        : ZLIB = Builtin")
else ()
  message (STATUS "                        : ZLIB = System")
endif ()

if (FLTK_HAVE_CAIROEXT)
  message (STATUS "Fl_Cairo_Window support : Yes (extended)")
elseif (FLTK_HAVE_CAIRO)
  message (STATUS "Fl_Cairo_Window support : Yes (standard)")
else ()
  message (STATUS "Fl_Cairo_Window support : No")
endif ()

message ("")
message (STATUS "End of Configuration Summary --\n")