mirror of
https://github.com/Lime3DS/Lime3DS.git
synced 2026-04-07 09:01:29 -06:00
Add options to build with additional system libraries in place of bundled modules
This commit is contained in:
parent
3066887ff4
commit
f43bd7eb80
@ -105,7 +105,10 @@ foreach(_opt IN LISTS _LIBRETRO_INCOMPATIBLE_OPTIONS)
|
||||
endforeach()
|
||||
|
||||
option(ENABLE_SDL2 "Enable using SDL2" ON)
|
||||
option(USE_SYSTEM_FAAD "Use the system faad2 lib (instead of the bundled one)" OFF)
|
||||
option(USE_SYSTEM_SDL2 "Use the system SDL2 lib (instead of the bundled one)" OFF)
|
||||
option(USE_SYSTEM_SPIRV_TOOLS "Use the system SPIRV-Tools lib (instead of the bundled one)" OFF)
|
||||
option(USE_SYSTEM_XXHASH "Use the system xxHash lib (instead of the bundled one)" OFF)
|
||||
|
||||
# Set bundled qt as dependent options.
|
||||
option(ENABLE_QT "Enable the Qt frontend" ON)
|
||||
@ -541,6 +544,20 @@ if (USE_SYSTEM_SOUNDTOUCH)
|
||||
target_include_directories(SoundTouch INTERFACE "${SOUNDTOUCH_INCLUDE_DIRS}")
|
||||
endif()
|
||||
|
||||
if (USE_SYSTEM_XXHASH)
|
||||
find_package(PkgConfig)
|
||||
if(PkgConfig_FOUND)
|
||||
pkg_check_modules(libxxhash_PKGCONFIG IMPORTED_TARGET xxhash)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (USE_SYSTEM_FAAD)
|
||||
find_package(PkgConfig)
|
||||
if(PkgConfig_FOUND)
|
||||
pkg_check_modules(libfaad_PKGCONFIG IMPORTED_TARGET faad)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_subdirectory(src)
|
||||
|
||||
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT citra_meta)
|
||||
|
||||
41
externals/CMakeLists.txt
vendored
41
externals/CMakeLists.txt
vendored
@ -176,7 +176,9 @@ endif()
|
||||
add_subdirectory(open_source_archives)
|
||||
|
||||
# faad2
|
||||
add_subdirectory(faad2 EXCLUDE_FROM_ALL)
|
||||
if(NOT USE_SYSTEM_FAAD)
|
||||
add_subdirectory(faad2 EXCLUDE_FROM_ALL)
|
||||
endif()
|
||||
|
||||
# Dynamic library headers
|
||||
add_library(library-headers INTERFACE)
|
||||
@ -447,9 +449,12 @@ if (ENABLE_VULKAN)
|
||||
endif()
|
||||
|
||||
# spirv-tools
|
||||
# TODO: Implement USE_SYSTEM_SPIRV_TOOLS -OS
|
||||
set(SPIRV_SKIP_EXECUTABLES ON)
|
||||
add_subdirectory(spirv-tools EXCLUDE_FROM_ALL)
|
||||
if(USE_SYSTEM_SPIRV_TOOLS)
|
||||
find_package(SPIRV-Tools REQUIRED)
|
||||
else()
|
||||
set(SPIRV_SKIP_EXECUTABLES ON)
|
||||
add_subdirectory(spirv-tools EXCLUDE_FROM_ALL)
|
||||
endif()
|
||||
|
||||
# glslang
|
||||
if(USE_SYSTEM_GLSLANG)
|
||||
@ -507,16 +512,18 @@ if (ENABLE_VULKAN)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(XXHASH_BUILD_XXHSUM OFF)
|
||||
add_subdirectory(xxHash/cmake_unofficial EXCLUDE_FROM_ALL)
|
||||
target_compile_definitions(xxhash PRIVATE XXH_FORCE_MEMORY_ACCESS=2)
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64")
|
||||
target_compile_definitions(xxhash PRIVATE XXH_VECTOR=XXH_SSE2)
|
||||
message(STATUS "Enabling SSE2 for xxHash")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|ARM64|armv8")
|
||||
target_compile_definitions(xxhash PRIVATE XXH_VECTOR=XXH_NEON)
|
||||
message(STATUS "Enabling NEON for xxHash")
|
||||
else()
|
||||
target_compile_definitions(xxhash PRIVATE XXH_VECTOR=XXH_SCALAR)
|
||||
message(STATUS "Disabling SIMD for xxHash")
|
||||
endif()
|
||||
if(NOT USE_SYSTEM_XXHASH)
|
||||
set(XXHASH_BUILD_XXHSUM OFF)
|
||||
add_subdirectory(xxHash/cmake_unofficial EXCLUDE_FROM_ALL)
|
||||
target_compile_definitions(xxhash PRIVATE XXH_FORCE_MEMORY_ACCESS=2)
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64")
|
||||
target_compile_definitions(xxhash PRIVATE XXH_VECTOR=XXH_SSE2)
|
||||
message(STATUS "Enabling SSE2 for xxHash")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|ARM64|armv8")
|
||||
target_compile_definitions(xxhash PRIVATE XXH_VECTOR=XXH_NEON)
|
||||
message(STATUS "Enabling NEON for xxHash")
|
||||
else()
|
||||
target_compile_definitions(xxhash PRIVATE XXH_VECTOR=XXH_SCALAR)
|
||||
message(STATUS "Disabling SIMD for xxHash")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@ -45,7 +45,11 @@ add_library(audio_core STATIC
|
||||
create_target_directory_groups(audio_core)
|
||||
|
||||
target_link_libraries(audio_core PUBLIC citra_common citra_core)
|
||||
target_link_libraries(audio_core PRIVATE faad2 SoundTouch teakra)
|
||||
if(USE_SYSTEM_FAAD)
|
||||
target_link_libraries(audio_core PRIVATE faad SoundTouch teakra)
|
||||
else()
|
||||
target_link_libraries(audio_core PRIVATE faad2 SoundTouch teakra)
|
||||
endif()
|
||||
|
||||
if(ENABLE_SDL2)
|
||||
target_link_libraries(audio_core PRIVATE SDL2::SDL2)
|
||||
|
||||
@ -176,4 +176,8 @@ if (SSE42_COMPILE_OPTION)
|
||||
target_compile_options(citra_common PRIVATE ${SSE42_COMPILE_OPTION})
|
||||
endif()
|
||||
|
||||
target_link_libraries(citra_common PUBLIC xxHash::xxhash)
|
||||
if (USE_SYSTEM_XXHASH)
|
||||
target_link_libraries(citra_common PUBLIC xxhash)
|
||||
else()
|
||||
target_link_libraries(citra_common PUBLIC xxHash::xxhash)
|
||||
endif()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user