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()