1if ("${CMAKE_SYSTEM_NAME}" STREQUAL "iOS" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "tvOS") 2 set(IOS ON) 3else () 4 set(IOS OFF) 5endif () 6 7# Setting library suffix for linking 8if (STATIC_LINK) 9 if (UNIX) 10 set(CMAKE_FIND_LIBRARY_SUFFIXES .a) 11 else () 12 set(CMAKE_FIND_LIBRARY_SUFFIXES .lib) 13 endif () 14 set(Boost_USE_STATIC_LIBS ON) 15 add_compile_definitions(SODIUM_STATIC) 16else () 17 add_compile_definitions(BOOST_ALL_DYN_LINK) 18endif () 19 20# Using rpath for dynamic linking 21if (UNIX AND NOT STATIC_LINK) 22 set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") 23 set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) 24endif () 25 26set(BOOST_COMPONENTS context system) 27if (WIN32 AND NOT STATIC_LINK) 28 set(BOOST_COMPONENTS ${BOOST_COMPONENTS} date_time) 29endif () 30if (BUILD_SERVER) 31 set(BOOST_COMPONENTS ${BOOST_COMPONENTS} filesystem program_options) 32endif () 33if (BUILD_TEST) 34 set(BOOST_COMPONENTS ${BOOST_COMPONENTS} unit_test_framework) 35endif () 36 37# C++ standard options 38set(CMAKE_CXX_STANDARD 17) 39set(CMAKE_CXX_STANDARD_REQUIRED ON) 40set(CMAKE_CXX_EXTENSIONS OFF) 41 42# CMake bug, please refer to https://gitlab.kitware.com/cmake/cmake/issues/16695 43if (IOS) 44 set(CMAKE_THREAD_LIBS_INIT "-lpthread") 45 set(CMAKE_USE_PTHREADS_INIT "YES") 46endif () 47