From dbc60068ef59bde21518d6268949ff70d955c13e Mon Sep 17 00:00:00 2001 From: Davide Cavalca Date: Wed, 9 Apr 2025 09:17:04 -0700 Subject: [PATCH] Only include externals when actually needed This adds an option to use the system library for HIDAPI if enabled, and gates the misc and regex external libraries to only the platforms where they're actually needed. --- CMakeLists.txt | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 58fcb09b..187ed198 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,7 @@ option(FORCE_SSE "Compile with SSE instruction only" ON) option(FORCE_SSSE3 "Compile with SSSE3 instruction only" OFF) option(FORCE_SSE41 "Compile with SSE4.1 instruction only" OFF) option(OPTIONAL_TEST "Compile optional test (might be broken)" OFF) +option(USE_SYSTEM_HIDAPI "Use the system library for hidapi" OFF) # UNITTEST option must be after CMAKE_BUILT_TYPE # where cmake find custom modules @@ -72,7 +73,11 @@ set(CUSTOM_SRC_DIR "${CMAKE_SOURCE_DIR}/src") set(CUSTOM_EXTERNAL_DIR "${CMAKE_SOURCE_DIR}/external") set(CUSTOM_MISC_DIR "${CUSTOM_EXTERNAL_DIR}/misc") set(CUSTOM_REGEX_DIR "${CUSTOM_EXTERNAL_DIR}/regex") -set(CUSTOM_HIDAPI_DIR "${CUSTOM_EXTERNAL_DIR}/hidapi") +if(USE_SYSTEM_HIDAPI) + find_package(hidapi REQUIRED) +else() + set(CUSTOM_HIDAPI_DIR "${CUSTOM_EXTERNAL_DIR}/hidapi") +endif() set(CUSTOM_GEOTRANZ_DIR "${CUSTOM_EXTERNAL_DIR}/geotranz") set(CUSTOM_DATA_DIR "${CMAKE_SOURCE_DIR}/data") set(CUSTOM_SCRIPTS_DIR "${CMAKE_SOURCE_DIR}/scripts") @@ -374,9 +379,15 @@ add_subdirectory(data) # external libraries add_subdirectory(${CUSTOM_GEOTRANZ_DIR}) -add_subdirectory(${CUSTOM_REGEX_DIR}) -add_subdirectory(${CUSTOM_HIDAPI_DIR}) -add_subdirectory(${CUSTOM_MISC_DIR}) +if(WIN32) + add_subdirectory(${CUSTOM_REGEX_DIR}) +endif() +if(NOT USE_SYSTEM_HIDAPI) + add_subdirectory(${CUSTOM_HIDAPI_DIR}) +endif() +if(NOT LINUX) + add_subdirectory(${CUSTOM_MISC_DIR}) +endif() # direwolf source code and utilities add_subdirectory(src)