Use per-library FLAIM versions

This commit is contained in:
OpenAI Build Bot
2026-06-05 14:10:51 +00:00
committed by Mario Fetka
parent b807512c72
commit 0a408aed46

View File

@@ -12,8 +12,17 @@ option(NWFLAIM_USE_NICI "Build FLAIM NICI/CCS encrypted-storage path" OFF)
set(NWFLAIM_SSL_TARGET "" CACHE STRING "Optional SSL/Crypto target, for example mars_nwe::ssl")
set(NWFLAIM_NICI_INCLUDE_DIR "" CACHE PATH "Optional private NICI/CCS compatibility include directory")
set(NWFLAIM_LIBRARY_PREFIX nw CACHE STRING "Library output prefix used to avoid system FLAIM collisions")
set(NWFLAIM_LIBRARY_VERSION 1.0 CACHE STRING "Hard-coded FLAIM library version from configure.ac")
set(NWFLAIM_LIBRARY_SOVERSION 1 CACHE STRING "Hard-coded FLAIM ABI version")
# Hard-coded from the individual upstream configure.ac files. FLAIM is
# effectively frozen, so keep this simple and explicit instead of parsing
# autotools metadata during the CMake configure step.
set(NWFLAIM_FTK_LIBRARY_VERSION 1.2 CACHE STRING "FTK library version from ftk/configure.ac")
set(NWFLAIM_FTK_LIBRARY_SOVERSION 1 CACHE STRING "FTK ABI version")
set(NWFLAIM_FLAIM_LIBRARY_VERSION 4.10 CACHE STRING "FLAIM library version from flaim/configure.ac")
set(NWFLAIM_FLAIM_LIBRARY_SOVERSION 4 CACHE STRING "FLAIM ABI version")
set(NWFLAIM_SQL_LIBRARY_VERSION 6.0 CACHE STRING "SQL FLAIM library version from sql/configure.ac")
set(NWFLAIM_SQL_LIBRARY_SOVERSION 6 CACHE STRING "SQL FLAIM ABI version")
set(NWFLAIM_XFLAIM_LIBRARY_VERSION 5.2 CACHE STRING "XFLAIM library version from xflaim/configure.ac")
set(NWFLAIM_XFLAIM_LIBRARY_SOVERSION 5 CACHE STRING "XFLAIM ABI version")
if(NOT NWFLAIM_BUILD_SHARED AND NOT NWFLAIM_BUILD_STATIC)
message(FATAL_ERROR "Enable at least one of NWFLAIM_BUILD_SHARED or NWFLAIM_BUILD_STATIC")
@@ -358,14 +367,14 @@ function(nwflaim_common_target target_name public_include_dir)
endif()
endfunction()
function(nwflaim_add_library logical_name output_base public_include_dir)
function(nwflaim_add_library logical_name output_base public_include_dir library_version library_soversion)
if(NWFLAIM_BUILD_SHARED)
add_library(${logical_name} SHARED ${ARGN})
add_library(NWFlaim::${logical_name} ALIAS ${logical_name})
set_target_properties(${logical_name} PROPERTIES
OUTPUT_NAME "${NWFLAIM_LIBRARY_PREFIX}${output_base}"
VERSION "${NWFLAIM_LIBRARY_VERSION}"
SOVERSION "${NWFLAIM_LIBRARY_SOVERSION}")
VERSION "${library_version}"
SOVERSION "${library_soversion}")
nwflaim_common_target(${logical_name} ${public_include_dir})
endif()
if(NWFLAIM_BUILD_STATIC)
@@ -376,7 +385,7 @@ function(nwflaim_add_library logical_name output_base public_include_dir)
endif()
endfunction()
nwflaim_add_library(flaimtk flaimtk ftk/src ${NWFLAIM_FTK_SOURCES})
nwflaim_add_library(flaimtk flaimtk ftk/src "${NWFLAIM_FTK_LIBRARY_VERSION}" "${NWFLAIM_FTK_LIBRARY_SOVERSION}" ${NWFLAIM_FTK_SOURCES})
if(TARGET flaimtk AND NWFLAIM_WITH_OPENSSL)
target_link_libraries(flaimtk PUBLIC ${_nwflaim_ssl_target})
endif()
@@ -384,7 +393,7 @@ if(TARGET flaimtk_static AND NWFLAIM_WITH_OPENSSL)
target_link_libraries(flaimtk_static PUBLIC ${_nwflaim_ssl_target})
endif()
nwflaim_add_library(flaim flaim flaim/src ${NWFLAIM_FLAIM_SOURCES})
nwflaim_add_library(flaim flaim flaim/src "${NWFLAIM_FLAIM_LIBRARY_VERSION}" "${NWFLAIM_FLAIM_LIBRARY_SOVERSION}" ${NWFLAIM_FLAIM_SOURCES})
if(TARGET flaim)
target_link_libraries(flaim PUBLIC flaimtk)
endif()
@@ -393,7 +402,7 @@ if(TARGET flaim_static)
endif()
if(NWFLAIM_BUILD_SQL)
nwflaim_add_library(flaimsql flaimsql sql/src ${NWFLAIM_SQL_SOURCES})
nwflaim_add_library(flaimsql flaimsql sql/src "${NWFLAIM_SQL_LIBRARY_VERSION}" "${NWFLAIM_SQL_LIBRARY_SOVERSION}" ${NWFLAIM_SQL_SOURCES})
if(TARGET flaimsql)
target_link_libraries(flaimsql PUBLIC flaimtk)
endif()
@@ -403,7 +412,7 @@ if(NWFLAIM_BUILD_SQL)
endif()
if(NWFLAIM_BUILD_XFLAIM)
nwflaim_add_library(xflaim xflaim xflaim/src ${NWFLAIM_XFLAIM_SOURCES})
nwflaim_add_library(xflaim xflaim xflaim/src "${NWFLAIM_XFLAIM_LIBRARY_VERSION}" "${NWFLAIM_XFLAIM_LIBRARY_SOVERSION}" ${NWFLAIM_XFLAIM_SOURCES})
if(TARGET xflaim)
target_link_libraries(xflaim PUBLIC flaimtk)
endif()