From a1237bdbc1ea88407a330e86aa574d7178ba8293 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Mon, 16 Jun 2025 21:11:03 +0100 Subject: [PATCH] Allow building against the system FLTK library `USE_INTERNAL_FLTK` defaults to true and ignores `USE_INTERNAL_LIBS` because users are unlikely to have it installed. Tested against FLTK 1.4.3 on Gentoo Linux. --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,6 +48,7 @@ option(USE_LTO "Build Release builds with Link Time Optimization" 1) cmake_dependent_option( USE_INTERNAL_ZLIB "Use internal zlib" ${USE_INTERNAL_LIBS} BUILD_CLIENT 0 ) cmake_dependent_option( USE_INTERNAL_PNG "Use internal libpng" ${USE_INTERNAL_LIBS} BUILD_CLIENT 0 ) cmake_dependent_option( USE_INTERNAL_CURL "Use internal libcurl" ${USE_INTERNAL_LIBS} BUILD_CLIENT 0 ) +cmake_dependent_option( USE_INTERNAL_FLTK "Use internal FLTK" 1 BUILD_CLIENT 0 ) cmake_dependent_option( USE_INTERNAL_JSONCPP "Use internal JsonCpp" 1 BUILD_SERVER 0 ) cmake_dependent_option( USE_INTERNAL_WXWIDGETS "Use internal wxWidgets" ${USE_INTERNAL_LIBS} BUILD_LAUNCHER 0 ) cmake_dependent_option( ENABLE_PORTMIDI "Enable portmidi support" 1 BUILD_CLIENT 0 ) --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -208,7 +208,12 @@ if(TARGET SDL2::SDL2 OR TARGET SDL::SDL) target_link_libraries(odamex ${PNG_LIBRARY} ${ZLIB_LIBRARY} CURL::libcurl) if(NOT GCONSOLE) target_include_directories(odamex PRIVATE gui) - target_link_libraries(odamex fltk::fltk fltk::images) + if(USE_INTERNAL_FLTK) + target_link_libraries(odamex fltk::fltk fltk::images) + else() + find_package(FLTK 1.4 CONFIG REQUIRED) + target_link_libraries(odamex fltk::fltk-shared fltk::images-shared) + endif() endif() if(USE_INTERNAL_JSONCPP) --- a/libraries/fltk-lib.cmake +++ b/libraries/fltk-lib.cmake @@ -1,6 +1,6 @@ ### FLTK (dep: libpng) ### -if(BUILD_CLIENT) +if(BUILD_CLIENT AND USE_INTERNAL_FLTK) set(_FLTK_BUILDGEN_PARAMS "-DOPTION_USE_SYSTEM_LIBJPEG=OFF" "-DOPTION_USE_SYSTEM_LIBPNG=OFF" -- 2.49.0