From a1237bdbc1ea88407a330e86aa574d7178ba8293 Mon Sep 17 00:00:00 2001
From: James Le Cuirot <chewi@gentoo.org>
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

