This carries include directories and the required link flags. Several libraries brought in through pkg_check_modules aren't linked correctly using the _LDFLAGS variables. Instead, they link the libraries directly with `-l`. This is problematic because it doesn't properly pull in the actual directory of the library being linked when it is not in a system library directory. Likewise, the necessary include directories for several of these targets aren't properly set either. Linking against the imported targets automatically pulls in the necessary include directories.
169 lines
4.9 KiB
CMake
169 lines
4.9 KiB
CMake
#
|
|
# This file sets variables for common use in export.cmake and install.cmake
|
|
# Originally written by Michael Surette
|
|
#
|
|
# 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
|
|
# 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(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 FLTK_BACKEND_X11)
|
|
list(APPEND FLTK_LDLIBS ${FLTK_COCOA_FRAMEWORKS})
|
|
elseif(FLTK_BACKEND_WAYLAND)
|
|
list(APPEND FLTK_LDLIBS PkgConfig::WLDCURSOR PkgConfig::WLDCLIENT PkgConfig::XKBCOMMON PkgConfig::DBUS)
|
|
if(USE_SYSTEM_LIBDECOR)
|
|
list(APPEND FLTK_LDLIBS PkgConfig::SYSTEM_LIBDECOR)
|
|
endif(USE_SYSTEM_LIBDECOR)
|
|
else()
|
|
list(APPEND FLTK_LDLIBS -lm)
|
|
endif(WIN32)
|
|
|
|
if(LIB_fontconfig)
|
|
list(APPEND FLTK_LDLIBS -lfontconfig)
|
|
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)
|
|
|
|
#######################################################################
|
|
# Set variables for fltk-config (generated from fltk-config.in)
|
|
#######################################################################
|
|
|
|
# Variables in fltk-config.in (@VAR@) are used in configure(.ac)
|
|
# and in CMake so their names and usage must be synchronized.
|
|
# CMake generates two instances of fltk-config, one that can be used
|
|
# directly in the build tree (see export.cmake) and one that is copied
|
|
# to the installation directory (see install.cmake). Common variables
|
|
# 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_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(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 "${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)
|