diff --git a/external/jemalloc/CMakeLists.txt b/external/jemalloc/CMakeLists.txt index 7b96e6ee..6b1c8aeb 100644 --- a/external/jemalloc/CMakeLists.txt +++ b/external/jemalloc/CMakeLists.txt @@ -11,20 +11,30 @@ if (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") return() endif() +set(DESKTOP_APP_REQUIRE_JEMALLOC ON CACHE BOOL "Always prefer jemalloc by FreeBSD or use system memory allocator?") +if (DESKTOP_APP_REQUIRE_JEMALLOC) + target_compile_definitions(external_jemalloc INTERFACE DESKTOP_APP_REQUIRE_JEMALLOC) +endif() + if (DESKTOP_APP_USE_PACKAGED) find_package(PkgConfig REQUIRED) pkg_check_modules(JEMALLOC jemalloc) if (JEMALLOC_FOUND) - target_include_directories(external_jemalloc SYSTEM - INTERFACE - ${JEMALLOC_INCLUDE_DIRS} - ) - - target_link_options(external_jemalloc - INTERFACE - -Wl,--push-state,--no-as-needed,${JEMALLOC_LINK_LIBRARIES},--pop-state - ) + if (DESKTOP_APP_REQUIRE_JEMALLOC) + target_include_directories(external_jemalloc SYSTEM + INTERFACE + ${JEMALLOC_INCLUDE_DIRS} + ) + + target_link_options(external_jemalloc + INTERFACE + -Wl,--push-state,--no-as-needed,${JEMALLOC_LINK_LIBRARIES},--pop-state + ) + else() + target_compile_definitions(external_jemalloc INTERFACE _GNU_SOURCE) + target_compile_options(external_jemalloc INTERFACE ${JEMALLOC_CFLAGS}) + endif() return() endif() diff --git a/external/rnnoise/CMakeLists.txt b/external/rnnoise/CMakeLists.txt index 7d68d930..08b28db9 100644 --- a/external/rnnoise/CMakeLists.txt +++ b/external/rnnoise/CMakeLists.txt @@ -9,9 +9,18 @@ if (DESKTOP_APP_USE_PACKAGED) add_library(desktop-app::external_rnnoise ALIAS external_rnnoise) find_package(PkgConfig REQUIRED) - pkg_check_modules(RNNOISE REQUIRED IMPORTED_TARGET rnnoise) + if (NOT DEFINED DESKTOP_APP_USE_RNNOISE) + pkg_check_modules(RNNOISE IMPORTED_TARGET rnnoise) + elseif (DESKTOP_APP_USE_RNNOISE) + pkg_check_modules(RNNOISE REQUIRED IMPORTED_TARGET rnnoise) + endif() + set(DESKTOP_APP_USE_RNNOISE ${RNNOISE_FOUND} CACHE BOOL "Compile against RNNoise or not?") - target_link_libraries(external_rnnoise INTERFACE PkgConfig::RNNOISE) + if (RNNOISE_FOUND) + target_link_libraries(external_rnnoise INTERFACE PkgConfig::RNNOISE) + else() + target_compile_definitions(external_rnnoise INTERFACE USE_RNNOISE=0) + endif() return() endif()