Integrate NW crypto stack CMake options
This commit is contained in:
@@ -77,6 +77,8 @@ option(ENABLE_XATTR "Should we build Mars Nwe with extended attribute support?"
|
||||
option(MARS_NWE_INSTALL_DOSUTILS "Install DOS client utilities" ON)
|
||||
option(MARS_NWE_INSTALL_NEW_DOSUTILS "Install the new/experimental DOS client utilities instead of legacy netold.exe" OFF)
|
||||
option(MARS_NWE_BUILD_TESTS "Build optional mars_nwe integration tests" OFF)
|
||||
option(ENABLE_DIRECTORY "Build the optional nwdirectory/TinyLDAP subsystem" OFF)
|
||||
option(MARS_NWE_BUILD_MATRIXSSL_PROGRAMS "Build MatrixSSL example apps, tests and helper tools" OFF)
|
||||
|
||||
# Maintainer builds rebuild the DOS tools from source. In that mode install
|
||||
# the freshly built/new DOS utility set automatically so developers do not have
|
||||
@@ -174,7 +176,6 @@ ENDIF (NOT MAX_FILES)
|
||||
find_package(Crypt REQUIRED)
|
||||
find_package(GDBM REQUIRED)
|
||||
|
||||
find_package(OpenSSL REQUIRED)
|
||||
find_package(PAM REQUIRED)
|
||||
find_package(DL REQUIRED)
|
||||
|
||||
@@ -236,7 +237,55 @@ set(BUILD_SHARED_LIBS ${MARS_NWE_SAVED_BUILD_SHARED_LIBS})
|
||||
|
||||
message(STATUS "Salvage JSON backend: bundled static yyjson")
|
||||
|
||||
# mars-nwe private third-party stack. These are built with the nw namespace so
|
||||
# they can be installed next to system libraries and headers without collisions.
|
||||
set(LIBOWFAT_LIBRARY_PREFIX nw CACHE STRING "" FORCE)
|
||||
set(LIBOWFAT_BUILD_SHARED ON CACHE BOOL "" FORCE)
|
||||
set(LIBOWFAT_BUILD_STATIC OFF CACHE BOOL "" FORCE)
|
||||
set(LIBOWFAT_BUILD_TEST_PROGRAMS OFF CACHE BOOL "" FORCE)
|
||||
set(LIBOWFAT_RUN_SELF_TESTS OFF CACHE BOOL "" FORCE)
|
||||
|
||||
set(SODIUM_LIBRARY_PREFIX nw CACHE STRING "" FORCE)
|
||||
set(SODIUM_DISABLE_TESTS ON CACHE BOOL "" FORCE)
|
||||
set(SODIUM_INSTALL ON CACHE BOOL "" FORCE)
|
||||
|
||||
set(MATRIXSSL_LIBRARY_PREFIX nw CACHE STRING "" FORCE)
|
||||
set(MATRIXSSL_BUILD_SHARED ON CACHE BOOL "" FORCE)
|
||||
set(MATRIXSSL_BUILD_STATIC OFF CACHE BOOL "" FORCE)
|
||||
set(MATRIXSSL_BUILD_OPENSSL_COMPAT ON CACHE BOOL "" FORCE)
|
||||
set(MATRIXSSL_USE_SODIUM ON CACHE BOOL "" FORCE)
|
||||
set(MATRIXSSL_BUILD_TESTS ${MARS_NWE_BUILD_MATRIXSSL_PROGRAMS} CACHE BOOL "" FORCE)
|
||||
set(MATRIXSSL_BUILD_APPS ${MARS_NWE_BUILD_MATRIXSSL_PROGRAMS} CACHE BOOL "" FORCE)
|
||||
set(MATRIXSSL_BUILD_TOOLS ${MARS_NWE_BUILD_MATRIXSSL_PROGRAMS} CACHE BOOL "" FORCE)
|
||||
|
||||
foreach(_mars_nwe_third_party IN ITEMS
|
||||
third_party/libowfat
|
||||
third_party/libsodium
|
||||
third_party/matrixssl)
|
||||
if(NOT EXISTS "${CMAKE_SOURCE_DIR}/${_mars_nwe_third_party}/CMakeLists.txt")
|
||||
message(FATAL_ERROR "Missing ${_mars_nwe_third_party}; run git submodule update --init --recursive")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_subdirectory(third_party/libowfat)
|
||||
set(_MARS_NWE_SAVED_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
|
||||
set(BUILD_SHARED_LIBS ON)
|
||||
add_subdirectory(third_party/libsodium)
|
||||
set(BUILD_SHARED_LIBS ${_MARS_NWE_SAVED_BUILD_SHARED_LIBS})
|
||||
add_subdirectory(third_party/matrixssl)
|
||||
|
||||
if(ENABLE_DIRECTORY)
|
||||
set(TINYLDAP_OUTPUT_NAME nwdirectory CACHE STRING "" FORCE)
|
||||
set(TINYLDAP_BUILD_SHARED ON CACHE BOOL "" FORCE)
|
||||
set(TINYLDAP_BUILD_STATIC OFF CACHE BOOL "" FORCE)
|
||||
set(TINYLDAP_LIBOWFAT_INCLUDE_SUBDIR nwlibowfat CACHE STRING "" FORCE)
|
||||
set(TINYLDAP_MATRIXSSL_INCLUDE_SUBDIR nwmatrixssl CACHE STRING "" FORCE)
|
||||
set(TINYLDAP_ALLOW_SYSTEM_OPENSSL OFF CACHE BOOL "" FORCE)
|
||||
add_subdirectory(directory)
|
||||
endif()
|
||||
|
||||
# we want to use systemd, if possible
|
||||
find_package(PkgConfig QUIET)
|
||||
set(SYSTEMD_SERVICES_INSTALL_DIR "" CACHE PATH "Directory for systemd service files")
|
||||
INCLUDE(${CMAKE_MODULE_PATH}/systemdservice.cmake)
|
||||
INCLUDE(${CMAKE_MODULE_PATH}/cupsutils.cmake)
|
||||
@@ -259,6 +308,8 @@ message(STATUS "SMArT admin group: ${MARS_NWE_SMART_ADMIN_GROUP}")
|
||||
message(STATUS "Install DOS utilities: ${MARS_NWE_INSTALL_DOSUTILS}")
|
||||
message(STATUS "Install new DOS utilities: ${MARS_NWE_INSTALL_NEW_DOSUTILS}")
|
||||
message(STATUS "Build DOS utilities: ${MAINTAINER_BUILD} (maintainer build)")
|
||||
message(STATUS "Build nwdirectory: ${ENABLE_DIRECTORY}")
|
||||
message(STATUS "Build MatrixSSL programs: ${MARS_NWE_BUILD_MATRIXSSL_PROGRAMS}")
|
||||
message(STATUS "Maintainer build: ${MAINTAINER_BUILD}")
|
||||
message(STATUS "Packet Burst support: ${ENABLE_BURSTMODE}")
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@ INCLUDE_DIRECTORIES(
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_SOURCE_DIR}/include
|
||||
${CMAKE_BINARY_DIR}/include
|
||||
${GDBM_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
#################################
|
||||
|
||||
Reference in New Issue
Block a user