96 lines
2.7 KiB
CMake
96 lines
2.7 KiB
CMake
cmake_minimum_required(VERSION 3.14...3.24 FATAL_ERROR)
|
|
|
|
include(FetchContent)
|
|
|
|
if (
|
|
NOT TARGET libsodium AND
|
|
NOT TARGET unofficial-sodium::sodium AND
|
|
NOT TARGET unofficial-sodium::sodium_config_public AND
|
|
NOT TARGET sodium
|
|
)
|
|
# for find sodium
|
|
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
|
|
|
find_package(unofficial-sodium CONFIG QUIET)
|
|
find_package(sodium QUIET)
|
|
if(unofficial-sodium_FOUND) # vcpkg
|
|
if(TARGET unofficial-sodium::sodium)
|
|
#TODO: alias can not target another alias
|
|
#target_link_libraries(toxcore unofficial-sodium::sodium)
|
|
#add_library(libsodium ALIAS unofficial-sodium::sodium)
|
|
|
|
add_library(libsodium INTERFACE)
|
|
target_link_libraries(libsodium INTERFACE unofficial-sodium::sodium)
|
|
endif()
|
|
if(TARGET unofficial-sodium::sodium_config_public)
|
|
#TODO: alias can not target another alias
|
|
#target_link_libraries(toxcore unofficial-sodium::sodium_config_public)
|
|
#add_library(libsodium ALIAS unofficial-sodium::sodium_config_public)
|
|
|
|
add_library(libsodium INTERFACE)
|
|
target_link_libraries(libsodium INTERFACE unofficial-sodium::sodium_config_public)
|
|
endif()
|
|
elseif(sodium_FOUND)
|
|
#add_library(libsodium ALIAS sodium)
|
|
add_library(libsodium INTERFACE)
|
|
target_link_libraries(libsodium INTERFACE sodium)
|
|
else()
|
|
message(SEND_ERROR "missing libsodium")
|
|
endif()
|
|
endif()
|
|
|
|
if (NOT TARGET solanaceae_util)
|
|
FetchContent_Declare(solanaceae_util
|
|
GIT_REPOSITORY https://github.com/Green-Sky/solanaceae_util.git
|
|
GIT_TAG master
|
|
EXCLUDE_FROM_ALL
|
|
)
|
|
FetchContent_MakeAvailable(solanaceae_util)
|
|
endif()
|
|
|
|
if (NOT TARGET solanaceae_contact)
|
|
FetchContent_Declare(solanaceae_contact
|
|
GIT_REPOSITORY https://github.com/Green-Sky/solanaceae_contact.git
|
|
GIT_TAG master
|
|
EXCLUDE_FROM_ALL
|
|
)
|
|
FetchContent_MakeAvailable(solanaceae_contact)
|
|
endif()
|
|
|
|
if (NOT TARGET solanaceae_message3)
|
|
FetchContent_Declare(solanaceae_message3
|
|
GIT_REPOSITORY https://github.com/Green-Sky/solanaceae_message3.git
|
|
GIT_TAG master
|
|
EXCLUDE_FROM_ALL
|
|
)
|
|
FetchContent_MakeAvailable(solanaceae_message3)
|
|
endif()
|
|
|
|
if (NOT TARGET solanaceae_plugin)
|
|
FetchContent_Declare(solanaceae_plugin
|
|
GIT_REPOSITORY https://github.com/Green-Sky/solanaceae_plugin.git
|
|
GIT_TAG master
|
|
EXCLUDE_FROM_ALL
|
|
)
|
|
FetchContent_MakeAvailable(solanaceae_plugin)
|
|
endif()
|
|
|
|
if (NOT TARGET httplib::httplib)
|
|
FetchContent_Declare(httplib
|
|
GIT_REPOSITORY https://github.com/yhirose/cpp-httplib.git
|
|
GIT_TAG v0.15.3
|
|
EXCLUDE_FROM_ALL
|
|
)
|
|
FetchContent_MakeAvailable(httplib)
|
|
endif()
|
|
|
|
if (NOT TARGET nlohmann_json::nlohmann_json)
|
|
FetchContent_Declare(json
|
|
URL https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz
|
|
URL_HASH SHA256=d6c65aca6b1ed68e7a182f4757257b107ae403032760ed6ef121c9d55e81757d
|
|
EXCLUDE_FROM_ALL
|
|
)
|
|
FetchContent_MakeAvailable(json)
|
|
endif()
|
|
|