diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2023-03-09 13:21:49 +0200 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2023-03-09 17:34:05 +0100 |
| commit | 5175192755e57d1d7016253d48f34f9d0c2c0832 (patch) | |
| tree | 6262a13668d6ea56067910b024516c60305e374e /CMake/fl_create_example.cmake | |
| parent | e32d4bcab990c2648bbcf550d115a5393c3f50e2 (diff) | |
CMake: build shared libs with OPTION_CAIROEXT (issue #250)
- remove separate libfltk_cairo to avoid cyclic dependencies, but
- keep a dummy libfltk_cairo in 1.4.0 for backwards compatibility
- move cairo/Fl_Cairo.cxx to src/Fl_Cairo.cxx
- add preliminary Cairo support for Visual Studio (MSVC)
Static linking is not affected by this change, but users building
with hand-made Makefiles will have to remove libfltk_cairo starting
with FLTK 1.4.0. The dummy library can be linked for backwards
compatibility but it will be removed later (in 1.4.x or 1.5.0).
The shared FLTK library libfltk.{so|dylib|dll|..} depends on libcairo
if and only if FLTK is built with one of the Cairo options. This has
always been the case for OPTION_CAIROEXT but is now also true if only
OPTION_CAIRO is selected, i.e. FLTK programs linked with a Cairo
enabled shared FLTK library will also be linked with libcairo. The same
is true for configure options --enable-cairo and --enable-cairoext,
respectively.
Preliminary Cairo support for MSVC now detects a Cairo installation
using the CMake variable FLTK_CAIRO_DIR which must be set by the user.
Note that this feature is temporary and may be changed in the future
for a better and more comfortable version.
Diffstat (limited to 'CMake/fl_create_example.cmake')
| -rw-r--r-- | CMake/fl_create_example.cmake | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/CMake/fl_create_example.cmake b/CMake/fl_create_example.cmake index 303b5ea41..77fb24d0b 100644 --- a/CMake/fl_create_example.cmake +++ b/CMake/fl_create_example.cmake @@ -1,8 +1,8 @@ # -# A macro used by the CMake build system for the Fast Light Tool Kit (FLTK). -# Written by Michael Surette +# A function used by the CMake build system for the Fast Light Tool Kit (FLTK). +# Originally written by Michael Surette # -# Copyright 1998-2020 by Bill Spitzak and others. +# Copyright 1998-2023 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,7 +17,7 @@ ################################################################################ # -# macro CREATE_EXAMPLE - Create a test/demo (example) program +# function CREATE_EXAMPLE - Create a test/demo (example) program # # Input: # @@ -119,13 +119,13 @@ function (CREATE_EXAMPLE NAME SOURCES LIBRARIES) set_target_properties (${TARGET_NAME} PROPERTIES OUTPUT_NAME ${NAME}) target_link_libraries (${TARGET_NAME} ${LIBRARIES}) - # we must link all programs with fltk_cairo if option CAIROEXT is enabled + # we must link all programs with cairo if option CAIROEXT is enabled if (FLTK_HAVE_CAIROEXT) - target_link_libraries (${TARGET_NAME} fltk_cairo cairo) + target_link_libraries (${TARGET_NAME} ${PKG_CAIRO_LIBRARIES}) endif () - if (FLTK_HAVE_CAIRO) - fl_target_link_directories (${TARGET_NAME} PRIVATE "${PKG_CAIRO_LIBRARY_DIRS}") + if (FLTK_HAVE_CAIRO AND PKG_CAIRO_LIBRARY_DIRS) + fl_target_link_directories (${TARGET_NAME} PUBLIC ${PKG_CAIRO_LIBRARY_DIRS}) endif () if (USE_GDIPLUS) # can only be true on Windows |
