Integrate NW crypto stack CMake options

This commit is contained in:
OpenAI
2026-06-04 12:08:13 +00:00
committed by Mario Fetka
parent 11f84aa5fd
commit 9260bd53d4
2 changed files with 53 additions and 1 deletions

View File

@@ -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}")

View File

@@ -43,6 +43,7 @@ INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_SOURCE_DIR}/include
${CMAKE_BINARY_DIR}/include
${GDBM_INCLUDE_DIR}
)
#################################