|
|
@ -3,13 +3,27 @@ |
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules) |
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules) |
|
|
include(DownloadExternals) |
|
|
include(DownloadExternals) |
|
|
|
|
|
|
|
|
|
|
|
# pkgconfig -- it is used to find shared libraries without cmake modules on linux systems |
|
|
|
|
|
find_package(PkgConfig) |
|
|
|
|
|
if (NOT PkgConfig_FOUND) |
|
|
|
|
|
function(pkg_check_modules) |
|
|
|
|
|
# STUB |
|
|
|
|
|
endfunction() |
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
# Catch |
|
|
# Catch |
|
|
add_library(catch-single-include INTERFACE) |
|
|
add_library(catch-single-include INTERFACE) |
|
|
target_include_directories(catch-single-include INTERFACE catch/single_include) |
|
|
target_include_directories(catch-single-include INTERFACE catch/single_include) |
|
|
|
|
|
|
|
|
# libfmt |
|
|
# libfmt |
|
|
add_subdirectory(fmt) |
|
|
|
|
|
add_library(fmt::fmt ALIAS fmt) |
|
|
|
|
|
|
|
|
pkg_check_modules(FMT IMPORTED_TARGET GLOBAL fmt>=6.1.0) |
|
|
|
|
|
if (FMT_FOUND) |
|
|
|
|
|
add_library(fmt::fmt ALIAS PkgConfig::FMT) |
|
|
|
|
|
else() |
|
|
|
|
|
message(STATUS "fmt 6.1.0 or newer not found, falling back to externals") |
|
|
|
|
|
add_subdirectory(fmt) |
|
|
|
|
|
add_library(fmt::fmt ALIAS fmt) |
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
# Dynarmic |
|
|
# Dynarmic |
|
|
if (ARCHITECTURE_x86_64) |
|
|
if (ARCHITECTURE_x86_64) |
|
|
@ -30,9 +44,15 @@ add_subdirectory(glad) |
|
|
add_subdirectory(inih) |
|
|
add_subdirectory(inih) |
|
|
|
|
|
|
|
|
# lz4 |
|
|
# lz4 |
|
|
set(LZ4_BUNDLED_MODE ON) |
|
|
|
|
|
add_subdirectory(lz4/contrib/cmake_unofficial EXCLUDE_FROM_ALL) |
|
|
|
|
|
target_include_directories(lz4_static INTERFACE ./lz4/lib) |
|
|
|
|
|
|
|
|
pkg_check_modules(LIBLZ4 IMPORTED_TARGET GLOBAL liblz4>=1.8.0) |
|
|
|
|
|
if (LIBLZ4_FOUND) |
|
|
|
|
|
add_library(lz4_static ALIAS PkgConfig::LIBLZ4) |
|
|
|
|
|
else() |
|
|
|
|
|
message(STATUS "liblz4 1.8.0 or newer not found, falling back to externals") |
|
|
|
|
|
set(LZ4_BUNDLED_MODE ON) |
|
|
|
|
|
add_subdirectory(lz4/contrib/cmake_unofficial EXCLUDE_FROM_ALL) |
|
|
|
|
|
target_include_directories(lz4_static INTERFACE ./lz4/lib) |
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
# mbedtls |
|
|
# mbedtls |
|
|
add_subdirectory(mbedtls EXCLUDE_FROM_ALL) |
|
|
add_subdirectory(mbedtls EXCLUDE_FROM_ALL) |
|
|
@ -47,15 +67,27 @@ add_library(unicorn-headers INTERFACE) |
|
|
target_include_directories(unicorn-headers INTERFACE ./unicorn/include) |
|
|
target_include_directories(unicorn-headers INTERFACE ./unicorn/include) |
|
|
|
|
|
|
|
|
# Zstandard |
|
|
# Zstandard |
|
|
add_subdirectory(zstd/build/cmake EXCLUDE_FROM_ALL) |
|
|
|
|
|
target_include_directories(libzstd_static INTERFACE ./zstd/lib) |
|
|
|
|
|
|
|
|
pkg_check_modules(LIBZSTD IMPORTED_TARGET GLOBAL libzstd>=1.3.8) |
|
|
|
|
|
if (LIBZSTD_FOUND) |
|
|
|
|
|
add_library(libzstd_static ALIAS PkgConfig::LIBZSTD) |
|
|
|
|
|
else() |
|
|
|
|
|
message(STATUS "libzstd 1.3.8 or newer not found, falling back to externals") |
|
|
|
|
|
add_subdirectory(zstd/build/cmake EXCLUDE_FROM_ALL) |
|
|
|
|
|
target_include_directories(libzstd_static INTERFACE ./zstd/lib) |
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
# SoundTouch |
|
|
# SoundTouch |
|
|
add_subdirectory(soundtouch) |
|
|
add_subdirectory(soundtouch) |
|
|
|
|
|
|
|
|
# Opus |
|
|
# Opus |
|
|
add_subdirectory(opus) |
|
|
|
|
|
target_include_directories(opus INTERFACE ./opus/include) |
|
|
|
|
|
|
|
|
pkg_check_modules(OPUS IMPORTED_TARGET GLOBAL opus>=1.3.1) |
|
|
|
|
|
if (OPUS_FOUND) |
|
|
|
|
|
add_library(opus ALIAS PkgConfig::OPUS) |
|
|
|
|
|
else() |
|
|
|
|
|
message(STATUS "opus 1.3.1 or newer not found, falling back to externals") |
|
|
|
|
|
add_subdirectory(opus) |
|
|
|
|
|
target_include_directories(opus INTERFACE ./opus/include) |
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
# Cubeb |
|
|
# Cubeb |
|
|
if(ENABLE_CUBEB) |
|
|
if(ENABLE_CUBEB) |
|
|
@ -75,21 +107,35 @@ if (ENABLE_VULKAN) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
# zlib |
|
|
# zlib |
|
|
add_subdirectory(zlib EXCLUDE_FROM_ALL) |
|
|
|
|
|
set(ZLIB_LIBRARIES z) |
|
|
|
|
|
|
|
|
find_package(ZLIB 1.2.11) |
|
|
|
|
|
if (NOT ZLIB_FOUND) |
|
|
|
|
|
message(STATUS "zlib 1.2.11 or newer not found, falling back to externals") |
|
|
|
|
|
add_subdirectory(zlib EXCLUDE_FROM_ALL) |
|
|
|
|
|
set(ZLIB_LIBRARIES z) |
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
# libzip |
|
|
# libzip |
|
|
add_subdirectory(libzip EXCLUDE_FROM_ALL) |
|
|
|
|
|
|
|
|
pkg_check_modules(LIBZIP IMPORTED_TARGET GLOBAL libzip>=1.5.3) |
|
|
|
|
|
if (LIBZIP_FOUND) |
|
|
|
|
|
add_library(zip ALIAS PkgConfig::LIBZIP) |
|
|
|
|
|
else() |
|
|
|
|
|
message(STATUS "libzip 1.5.3 or newer not found, falling back to externals") |
|
|
|
|
|
add_subdirectory(libzip EXCLUDE_FROM_ALL) |
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
if (ENABLE_WEB_SERVICE) |
|
|
if (ENABLE_WEB_SERVICE) |
|
|
# LibreSSL |
|
|
# LibreSSL |
|
|
set(LIBRESSL_SKIP_INSTALL ON CACHE BOOL "") |
|
|
|
|
|
add_subdirectory(libressl EXCLUDE_FROM_ALL) |
|
|
|
|
|
target_include_directories(ssl INTERFACE ./libressl/include) |
|
|
|
|
|
target_compile_definitions(ssl PRIVATE -DHAVE_INET_NTOP) |
|
|
|
|
|
get_directory_property(OPENSSL_LIBRARIES |
|
|
|
|
|
DIRECTORY libressl |
|
|
|
|
|
DEFINITION OPENSSL_LIBS) |
|
|
|
|
|
|
|
|
find_package(OpenSSL COMPONENTS Crypto SSL) |
|
|
|
|
|
if (NOT OpenSSL_FOUND) |
|
|
|
|
|
message(STATUS "OpenSSL not found, falling back to externals") |
|
|
|
|
|
set(LIBRESSL_SKIP_INSTALL ON CACHE BOOL "") |
|
|
|
|
|
add_subdirectory(libressl EXCLUDE_FROM_ALL) |
|
|
|
|
|
target_include_directories(ssl INTERFACE ./libressl/include) |
|
|
|
|
|
target_compile_definitions(ssl PRIVATE -DHAVE_INET_NTOP) |
|
|
|
|
|
get_directory_property(OPENSSL_LIBRARIES |
|
|
|
|
|
DIRECTORY libressl |
|
|
|
|
|
DEFINITION OPENSSL_LIBS) |
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
# lurlparser |
|
|
# lurlparser |
|
|
add_subdirectory(lurlparser EXCLUDE_FROM_ALL) |
|
|
add_subdirectory(lurlparser EXCLUDE_FROM_ALL) |
|
|
|