mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-06-22 18:17:11 +02:00
Add D++ library.
This commit is contained in:
131
vendor/DPP/library-vcpkg/CMakeLists.txt
vendored
Normal file
131
vendor/DPP/library-vcpkg/CMakeLists.txt
vendored
Normal file
@ -0,0 +1,131 @@
|
||||
file(GLOB THE_SOURCES "${CMAKE_SOURCE_DIR}/src/dpp/events/*.cpp" "${CMAKE_SOURCE_DIR}/src/dpp/cluster/*.cpp" "${CMAKE_SOURCE_DIR}/src/dpp/*.cpp" "${CMAKE_SOURCE_DIR}/src/dpp/*.rc")
|
||||
|
||||
set(LIB_NAME "${PROJECT_NAME}")
|
||||
|
||||
if(WIN32)
|
||||
add_library("${LIB_NAME}" SHARED "${THE_SOURCES}")
|
||||
else()
|
||||
add_library("${LIB_NAME}" STATIC "${THE_SOURCES}")
|
||||
find_package(Threads REQUIRED)
|
||||
endif()
|
||||
|
||||
add_library("${PROJECT_NAME}::${LIB_NAME}" ALIAS "${LIB_NAME}")
|
||||
|
||||
target_compile_definitions(
|
||||
"${LIB_NAME}" PUBLIC
|
||||
"DPP_BUILD"
|
||||
"$<$<PLATFORM_ID:Windows>:$<$<CONFIG:Debug>:/sdl;/std:c++17;/Od;/DEBUG;/sdl;/MP;/DFD_SETSIZE=1024;/Zc:preprocessor>>"
|
||||
"$<$<PLATFORM_ID:Windows>:$<$<CONFIG:Release>:/std:c++17;/O2;/Oi;/Oy;/GL;/Gy;/sdl;/MP;/DFD_SETSIZE=1024;/Zc:preprocessor>>"
|
||||
)
|
||||
|
||||
target_compile_options(
|
||||
"${LIB_NAME}" PUBLIC
|
||||
"$<$<PLATFORM_ID:Windows>:/bigobj>"
|
||||
"$<$<PLATFORM_ID:Linux>:$<$<CONFIG:Debug>:-std=c++17;-Wall;-Wempty-body;-Wno-psabi;-Wunknown-pragmas;-Wignored-qualifiers;-Wimplicit-fallthrough;-Wmissing-field-initializers;-Wsign-compare;-Wtype-limits;-Wuninitialized;-Wshift-negative-value;-pthread;-g;-Og;-fPIC>>"
|
||||
"$<$<PLATFORM_ID:Linux>:$<$<CONFIG:Release>:-std=c++17;-Wall;-Wempty-body;-Wno-psabi;-Wunknown-pragmas;-Wignored-qualifiers;-Wimplicit-fallthrough;-Wmissing-field-initializers;-Wsign-compare;-Wtype-limits;-Wuninitialized;-Wshift-negative-value;-pthread;-O3;-fPIC>>"
|
||||
)
|
||||
|
||||
target_compile_features(
|
||||
"${LIB_NAME}" PUBLIC
|
||||
"cxx_std_17" "cxx_constexpr" "cxx_auto_type"
|
||||
"cxx_defaulted_functions" "cxx_deleted_functions"
|
||||
"cxx_final" "cxx_lambdas" "cxx_override" "cxx_thread_local"
|
||||
"cxx_variadic_templates" "cxx_attribute_deprecated"
|
||||
"cxx_enum_forward_declarations"
|
||||
)
|
||||
|
||||
target_include_directories(
|
||||
"${LIB_NAME}" PRIVATE
|
||||
"$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include>"
|
||||
)
|
||||
|
||||
set_target_properties(
|
||||
"${LIB_NAME}" PROPERTIES
|
||||
OUTPUT_NAME "dpp"
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
)
|
||||
|
||||
target_link_options(
|
||||
"${LIB_NAME}" PUBLIC
|
||||
"$<$<PLATFORM_ID:Windows>:/DEBUG>"
|
||||
)
|
||||
|
||||
add_compile_definitions(HAVE_VOICE)
|
||||
|
||||
find_package(nlohmann_json CONFIG REQUIRED)
|
||||
find_package(OpenSSL REQUIRED)
|
||||
find_package(Opus CONFIG REQUIRED)
|
||||
find_package(unofficial-sodium CONFIG REQUIRED)
|
||||
find_package(ZLIB REQUIRED)
|
||||
|
||||
target_link_libraries(
|
||||
"${LIB_NAME}" PUBLIC
|
||||
$<$<TARGET_EXISTS:nlohmann_json::nlohmann_json>:nlohmann_json::nlohmann_json>
|
||||
$<$<TARGET_EXISTS:OpenSSL::SSL>:OpenSSL::SSL>
|
||||
$<$<TARGET_EXISTS:OpenSSL::Crypto>:OpenSSL::Crypto>
|
||||
$<$<TARGET_EXISTS:Opus::opus>:Opus::opus>
|
||||
$<$<TARGET_EXISTS:unofficial-sodium::sodium>:unofficial-sodium::sodium>
|
||||
$<$<TARGET_EXISTS:ZLIB::ZLIB>:ZLIB::ZLIB>
|
||||
$<$<TARGET_EXISTS:Threads::Threads>:Threads::Threads>
|
||||
)
|
||||
|
||||
set(CONFIG_FILE_NAME "${PROJECT_NAME}Config.cmake")
|
||||
set(EXPORTED_TARGETS_NAME "${PROJECT_NAME}Targets")
|
||||
set(EXPORTED_TARGETS_FILE_NAME "${EXPORTED_TARGETS_NAME}.cmake")
|
||||
set(EXPORTED_TARGETS_FILE_PATH "share/dpp/${EXPORTED_TARGETS_FILE_NAME}")
|
||||
set(RELEASE_PDB_FILE_PATH "bin/dpp.pdb")
|
||||
set(DEBUG_PDB_FILE_PATH "debug/bin/dpp.pdb")
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
configure_package_config_file(
|
||||
"${CMAKE_SOURCE_DIR}/cmake/${CONFIG_FILE_NAME}.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_FILE_NAME}"
|
||||
INSTALL_DESTINATION "share/dpp"
|
||||
PATH_VARS
|
||||
EXPORTED_TARGETS_FILE_PATH
|
||||
RELEASE_PDB_FILE_PATH
|
||||
DEBUG_PDB_FILE_PATH
|
||||
)
|
||||
|
||||
set(VERSION_FILE_NAME "${PROJECT_NAME}ConfigVersion.cmake")
|
||||
|
||||
write_basic_package_version_file(
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${VERSION_FILE_NAME}"
|
||||
VERSION "${PRODUCT_VERSION}"
|
||||
COMPATIBILITY AnyNewerVersion
|
||||
)
|
||||
|
||||
install(
|
||||
DIRECTORY "${CMAKE_SOURCE_DIR}/include/"
|
||||
DESTINATION "include"
|
||||
)
|
||||
|
||||
install(
|
||||
FILES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_FILE_NAME}"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${VERSION_FILE_NAME}"
|
||||
DESTINATION "share/dpp"
|
||||
)
|
||||
|
||||
install(
|
||||
TARGETS "${LIB_NAME}"
|
||||
EXPORT "${EXPORTED_TARGETS_NAME}"
|
||||
RUNTIME DESTINATION "$<$<NOT:$<PLATFORM_ID:Linux>>:$<IF:$<CONFIG:Debug>,${DEBUG_PREFIX}bin,bin>>"
|
||||
ARCHIVE DESTINATION "$<IF:$<CONFIG:Debug>,${DEBUG_PREFIX}lib,lib>"
|
||||
)
|
||||
|
||||
install(
|
||||
EXPORT "${EXPORTED_TARGETS_NAME}"
|
||||
FILE "${EXPORTED_TARGETS_FILE_NAME}"
|
||||
NAMESPACE "${PROJECT_NAME}::"
|
||||
DESTINATION "share/dpp"
|
||||
)
|
||||
|
||||
if (WIN32)
|
||||
install(
|
||||
FILES
|
||||
"$<TARGET_PDB_FILE:${LIB_NAME}>"
|
||||
DESTINATION "$<IF:$<CONFIG:Debug>,${DEBUG_PREFIX}bin,bin>"
|
||||
OPTIONAL
|
||||
)
|
||||
endif()
|
Reference in New Issue
Block a user