summaryrefslogtreecommitdiff
path: root/CMake/variables.cmake
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2024-02-07 18:30:11 +0100
committerAlbrecht Schlosser <albrechts.fltk@online.de>2024-02-07 18:37:34 +0100
commitfd5cd809356dc73d2ede5bb2f0db25098771cb8e (patch)
tree70c82946eb7d11eba910bb387dc3bcc20abfd42c /CMake/variables.cmake
parent1cf6fdfa8562fafa0566e1008f74ea94f71356e4 (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 'CMake/variables.cmake')
-rw-r--r--CMake/variables.cmake244
1 files changed, 124 insertions, 120 deletions
diff --git a/CMake/variables.cmake b/CMake/variables.cmake
index 25bbefaeb..3d37aecad 100644
--- a/CMake/variables.cmake
+++ b/CMake/variables.cmake
@@ -1,8 +1,8 @@
#
# This file sets variables for common use in export.cmake and install.cmake
-# Written by Michael Surette
+# Originally written by Michael Surette
#
-# Copyright 1998-2020 by Bill Spitzak and others.
+# Copyright 1998-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
@@ -17,51 +17,52 @@
#######################################################################
-set (DEBUG_VARIABLES_CMAKE 0)
-if (DEBUG_VARIABLES_CMAKE)
- message (STATUS "[** variables.cmake **]")
- fl_debug_var (HAVE_DLSYM)
- fl_debug_var (CMAKE_DL_LIBS)
- fl_debug_var (CMAKE_EXE_LINKER_FLAGS)
- fl_debug_var (LDFLAGS)
- fl_debug_var (LIBS)
- fl_debug_var (GLLIBS)
- fl_debug_var (IMAGELIBS)
- fl_debug_var (STATICIMAGELIBS)
- fl_debug_var (FLTK_LDLIBS)
- fl_debug_var (LIB_jpeg)
- fl_debug_var (LIB_png)
- fl_debug_var (LIB_zlib)
-endif (DEBUG_VARIABLES_CMAKE)
+set(DEBUG_VARIABLES_CMAKE 0)
+if(DEBUG_VARIABLES_CMAKE)
+ message(STATUS "[** variables.cmake **]")
+ fl_debug_var(HAVE_DLSYM)
+ fl_debug_var(CMAKE_DL_LIBS)
+ fl_debug_var(CMAKE_EXE_LINKER_FLAGS)
+ fl_debug_var(LDFLAGS)
+ fl_debug_var(LIBS)
+ fl_debug_var(GLLIBS)
+ fl_debug_var(IMAGELIBS)
+ fl_debug_var(STATICIMAGELIBS)
+ fl_debug_var(FLTK_LDLIBS)
+ fl_debug_var(LIB_jpeg)
+ fl_debug_var(LIB_png)
+ fl_debug_var(LIB_zlib)
+ fl_debug_var(FLTK_LIBRARIES)
+endif(DEBUG_VARIABLES_CMAKE)
#######################################################################
# add several libraries
# FIXME: libraries may need reordering.
# FIXME: check fontconfig conditions (only if Xft is used or ...)
-if (WIN32)
- list (APPEND FLTK_LDLIBS -lole32 -luuid -lcomctl32 -lws2_32)
-elseif (APPLE AND NOT OPTION_APPLE_X11)
- list (APPEND FLTK_LDLIBS "-framework Cocoa")
-elseif (OPTION_USE_WAYLAND)
- list (APPEND FLTK_LDLIBS "-lwayland-cursor -lwayland-client -lxkbcommon -ldbus-1")
- if (OPTION_USE_SYSTEM_LIBDECOR)
- list (APPEND FLTK_LDLIBS "-ldecor-0")
- endif (OPTION_USE_SYSTEM_LIBDECOR)
-else ()
- list (APPEND FLTK_LDLIBS -lm)
-endif (WIN32)
-
-if (LIB_fontconfig)
+if(WIN32)
+ list(APPEND FLTK_LDLIBS -lole32 -luuid -lcomctl32 -lws2_32)
+elseif(APPLE AND NOT FLTK_BACKEND_X11)
+ list(APPEND FLTK_LDLIBS "-framework Cocoa")
+elseif(FLTK_BACKEND_WAYLAND)
+ list(APPEND FLTK_LDLIBS "-lwayland-cursor -lwayland-client -lxkbcommon -ldbus-1")
+ if(USE_SYSTEM_LIBDECOR)
+ list(APPEND FLTK_LDLIBS "-ldecor-0")
+ endif(USE_SYSTEM_LIBDECOR)
+else()
+ list(APPEND FLTK_LDLIBS -lm)
+endif(WIN32)
+
+if(LIB_fontconfig)
list(APPEND FLTK_LDLIBS -lfontconfig)
-endif (LIB_fontconfig)
+endif(LIB_fontconfig)
# add "-ldl" or whatever is necessary according to CMake (CMAKE_DL_LIBS)
-if (HAVE_DLSYM)
- foreach (LIB ${CMAKE_DL_LIBS})
- list (APPEND FLTK_LDLIBS "-l${LIB}")
- endforeach ()
-endif (HAVE_DLSYM)
+if(HAVE_DLSYM)
+ foreach(LIB ${CMAKE_DL_LIBS})
+ list(APPEND FLTK_LDLIBS "-l${LIB}")
+ endforeach()
+endif(HAVE_DLSYM)
#######################################################################
# Set variables for fltk-config (generated from fltk-config.in)
@@ -75,90 +76,93 @@ endif (HAVE_DLSYM)
# should be set here, whereas variables with different values should
# be set in install.cmake or export.cmake, respectively.
-if (WIN32)
- set (LDFLAGS "${CMAKE_EXE_LINKER_FLAGS} -mwindows")
-endif ()
-
-set (IMAGELIBS)
-set (STATICIMAGELIBS)
-
-if (FLTK_USE_BUILTIN_JPEG)
- list (APPEND IMAGELIBS -lfltk_jpeg)
- list (APPEND STATICIMAGELIBS \$libdir/libfltk_jpeg.a)
-else ()
- if (LIB_jpeg)
- list (APPEND IMAGELIBS -ljpeg)
- list (APPEND STATICIMAGELIBS -ljpeg)
- endif (LIB_jpeg)
-endif (FLTK_USE_BUILTIN_JPEG)
-
-if (FLTK_USE_BUILTIN_PNG)
- list (APPEND IMAGELIBS -lfltk_png)
- list (APPEND STATICIMAGELIBS \$libdir/libfltk_png.a)
-else ()
- if (LIB_png)
- list (APPEND IMAGELIBS -lpng)
- list (APPEND STATICIMAGELIBS -lpng)
- endif (LIB_png)
-endif (FLTK_USE_BUILTIN_PNG)
-
-if (FLTK_USE_BUILTIN_ZLIB)
- list (APPEND IMAGELIBS -lfltk_z)
- list (APPEND STATICIMAGELIBS \$libdir/libfltk_z.a)
-else ()
- if (LIB_zlib)
- list (APPEND IMAGELIBS -lz)
- list (APPEND STATICIMAGELIBS -lz)
- endif (LIB_zlib)
-endif (FLTK_USE_BUILTIN_ZLIB)
-
-string (REPLACE ";" " " IMAGELIBS "${IMAGELIBS}")
-string (REPLACE ";" " " STATICIMAGELIBS "${STATICIMAGELIBS}")
+if(WIN32)
+ set(LDFLAGS "${CMAKE_EXE_LINKER_FLAGS} -mwindows")
+endif()
+
+set(IMAGELIBS)
+set(STATICIMAGELIBS)
+
+if(FLTK_USE_BUNDLED_JPEG)
+ list(APPEND IMAGELIBS -lfltk_jpeg)
+ list(APPEND STATICIMAGELIBS \$libdir/libfltk_jpeg.a)
+else()
+ if(LIB_jpeg)
+ # fl_debug_var(LIB_jpeg)
+ list(APPEND IMAGELIBS ${LIB_jpeg})
+ list(APPEND STATICIMAGELIBS ${LIB_jpeg})
+ endif(LIB_jpeg)
+endif(FLTK_USE_BUNDLED_JPEG)
+
+if(FLTK_USE_BUNDLED_PNG)
+ list(APPEND IMAGELIBS -lfltk_png)
+ list(APPEND STATICIMAGELIBS \$libdir/libfltk_png.a)
+else()
+ if(LIB_png)
+ # fl_debug_var(LIB_png)
+ list(APPEND IMAGELIBS ${LIB_png})
+ list(APPEND STATICIMAGELIBS ${LIB_png})
+ endif(LIB_png)
+endif(FLTK_USE_BUNDLED_PNG)
+
+if(FLTK_USE_BUNDLED_ZLIB)
+ list(APPEND IMAGELIBS -lfltk_z)
+ list(APPEND STATICIMAGELIBS \$libdir/libfltk_z.a)
+else()
+ if(LIB_zlib)
+ list(APPEND IMAGELIBS ${LIB_zlib})
+ list(APPEND STATICIMAGELIBS ${LIB_zlib})
+ endif(LIB_zlib)
+endif(FLTK_USE_BUNDLED_ZLIB)
+
+string(REPLACE ";" " " IMAGELIBS "${IMAGELIBS}")
+string(REPLACE ";" " " STATICIMAGELIBS "${STATICIMAGELIBS}")
#######################################################################
-set (CC ${CMAKE_C_COMPILER})
-set (CXX ${CMAKE_CXX_COMPILER})
+set(CC ${CMAKE_C_COMPILER})
+set(CXX ${CMAKE_CXX_COMPILER})
-set (ARCHFLAGS ${OPTION_ARCHFLAGS})
+set(ARCHFLAGS ${FLTK_ARCHFLAGS})
string(TOUPPER "${CMAKE_BUILD_TYPE}" BUILD_UPPER)
-if (${BUILD_UPPER})
- set (CFLAGS "${CMAKE_C_FLAGS_${BUILD_UPPER}} ${CFLAGS}")
-endif (${BUILD_UPPER})
-
-set (CFLAGS "${OPTION_OPTIM} ${CMAKE_C_FLAGS} ${CFLAGS}")
-foreach (arg ${FLTK_CFLAGS})
- set (CFLAGS "${CFLAGS} ${arg}")
-endforeach (arg ${FLTK_CFLAGS})
-
-set (CXXFLAGS "${CFLAGS}")
-
-foreach (arg ${FLTK_LDLIBS})
- set (LINK_LIBS "${LINK_LIBS} ${arg}")
-endforeach (arg ${FLTK_LDLIBS})
-
-set (LIBS "${LINK_LIBS}")
-
-if (${CMAKE_SYSTEM_NAME} STREQUAL "AIX")
- set (SHAREDSUFFIX "_s")
-else ()
- set (SHAREDSUFFIX "")
-endif (${CMAKE_SYSTEM_NAME} STREQUAL "AIX")
-
-if (DEBUG_VARIABLES_CMAKE)
- message (STATUS "") # empty line
- fl_debug_var (HAVE_DLSYM)
- fl_debug_var (CMAKE_DL_LIBS)
- fl_debug_var (CMAKE_EXE_LINKER_FLAGS)
- fl_debug_var (LDFLAGS)
- fl_debug_var (LIBS)
- fl_debug_var (GLLIBS)
- fl_debug_var (IMAGELIBS)
- fl_debug_var (STATICIMAGELIBS)
- fl_debug_var (FLTK_LDLIBS)
- fl_debug_var (LIB_jpeg)
- fl_debug_var (LIB_png)
- fl_debug_var (LIB_zlib)
- message (STATUS "[** end of variables.cmake **]")
-endif (DEBUG_VARIABLES_CMAKE)
-unset (DEBUG_VARIABLES_CMAKE)
+if(${BUILD_UPPER})
+ set(CFLAGS "${CMAKE_C_FLAGS_${BUILD_UPPER}} ${CFLAGS}")
+endif(${BUILD_UPPER})
+
+set(CFLAGS "${FLTK_OPTION_OPTIM} ${CMAKE_C_FLAGS} ${CFLAGS}")
+foreach(arg ${FLTK_CFLAGS})
+ set(CFLAGS "${CFLAGS} ${arg}")
+endforeach(arg ${FLTK_CFLAGS})
+
+set(CXXFLAGS "${CFLAGS}")
+
+foreach(arg ${FLTK_LDLIBS})
+ set(LINK_LIBS "${LINK_LIBS} ${arg}")
+endforeach(arg ${FLTK_LDLIBS})
+
+set(LIBS "${LINK_LIBS}")
+
+if(${CMAKE_SYSTEM_NAME} STREQUAL "AIX")
+ set(SHAREDSUFFIX "_s")
+else()
+ set(SHAREDSUFFIX "")
+endif(${CMAKE_SYSTEM_NAME} STREQUAL "AIX")
+
+if(DEBUG_VARIABLES_CMAKE)
+ message(STATUS "") # empty line
+ fl_debug_var(HAVE_DLSYM)
+ fl_debug_var(CMAKE_DL_LIBS)
+ fl_debug_var(CMAKE_EXE_LINKER_FLAGS)
+ fl_debug_var(LDFLAGS)
+ fl_debug_var(LIBS)
+ fl_debug_var(GLLIBS)
+ fl_debug_var(IMAGELIBS)
+ fl_debug_var(STATICIMAGELIBS)
+ fl_debug_var(FLTK_LDLIBS)
+ fl_debug_var(LIB_jpeg)
+ fl_debug_var(LIB_png)
+ fl_debug_var(LIB_zlib)
+ fl_debug_var(FLTK_LIBRARIES)
+ message(STATUS "[** end of variables.cmake **]")
+endif(DEBUG_VARIABLES_CMAKE)
+unset(DEBUG_VARIABLES_CMAKE)