1 add_library(libsodium INTERFACE)
2 target_compile_definitions(libsodium INTERFACE -DHAVE_LIBSODIUM=1)
4 option(FORCE_BUNDLED_LIBSODIUM "Always build libsodium, instead of using the system version" OFF)
6 if (NOT FORCE_BUNDLED_LIBSODIUM)
7 find_package(LibSodium 1.0.9)
9 if (LIBSODIUM_INCLUDE_DIRS AND LIBSODIUM_LIBRARIES)
10 message(STATUS "Using system libsodium ${LIBSODIUM_VERSION}")
11 target_include_directories(libsodium INTERFACE ${LIBSODIUM_INCLUDE_DIRS})
12 target_link_libraries(libsodium INTERFACE ${LIBSODIUM_LIBRARIES})
17 message(STATUS "Using third-party bundled libsodium")
19 include(ExternalProject)
20 include(HPHPFunctions)
22 SET_HHVM_THIRD_PARTY_SOURCE_ARGS(
23 LIBSODIUM_DOWNLOAD_ARGS
25 "https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libsodium-1.0.18.tar.gz"
27 "SHA512=17e8638e46d8f6f7d024fe5559eccf2b8baf23e143fadd472a7d29d228b186d86686a5e6920385fe2020729119a5f12f989c3a782afbd05a8db4819bb18666ef"
30 if (CMAKE_OSX_SYSROOT)
31 set(ISYSROOT_FLAG -isysroot${CMAKE_OSX_SYSROOT})
36 ${LIBSODIUM_DOWNLOAD_ARGS}
39 CC=${CMAKE_C_COMPILER}
40 CXX=${CMAKE_CXX_COMPILER}
41 SDK=${CMAKE_OSX_SYSROOT}
42 CFLAGS=${ISYSROOT_FLAG}
43 CXXFLAGS=${ISYSROOT_FLAG}
44 LDFLAGS=${ISYSROOT_FLAG}
45 <SOURCE_DIR>/configure
46 "--prefix=<INSTALL_DIR>"
47 "--libdir=<INSTALL_DIR>/lib"
48 "--includedir=<INSTALL_DIR>/include"
50 --disable-dependency-tracking
54 ExternalProject_Get_Property(bundled_libsodium INSTALL_DIR)
55 target_include_directories(libsodium INTERFACE "${INSTALL_DIR}/include")
56 add_dependencies(libsodium bundled_libsodium)
57 target_link_libraries(
60 "${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}sodium${CMAKE_STATIC_LIBRARY_SUFFIX}"