Scope NICI support to classic FLAIM targets

This commit is contained in:
Mario Fetka
2026-06-05 19:16:38 +00:00
parent 4ddfe31a5a
commit 4c3f2afecf

View File

@@ -38,9 +38,12 @@ set(_nwflaim_common_defs
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
list(APPEND _nwflaim_common_defs FLM_64BIT)
endif()
if(NWFLAIM_USE_NICI)
list(APPEND _nwflaim_common_defs FLM_USE_NICI)
endif()
# FLM_USE_NICI is intentionally not part of the global/default define set.
# Classic FLAIM and its own tools use the NICI/CCS encrypted-storage path,
# but XFLAIM has a separate NICI implementation with a different historical
# API surface. Enabling FLM_USE_NICI globally makes xflaim/src/f_nici.cpp
# compile against the classic compatibility headers and breaks the default
# mars-nwe build.
find_package(Threads REQUIRED)
find_library(NWFLAIM_RT_LIBRARY rt)
@@ -367,6 +370,16 @@ set(NWFLAIM_XFLAIM_SOURCES
xflaim/src/scache.cpp
xflaim/src/translog.cpp)
function(nwflaim_enable_classic_nici target_name)
if(NWFLAIM_USE_NICI AND TARGET ${target_name})
target_compile_definitions(${target_name} PRIVATE FLM_USE_NICI)
if(NOT NWFLAIM_NICI_INCLUDE_DIR STREQUAL "")
target_include_directories(${target_name} PRIVATE "${NWFLAIM_NICI_INCLUDE_DIR}")
endif()
endif()
endfunction()
function(nwflaim_common_target target_name public_include_dir install_include_dir)
target_compile_features(${target_name} PUBLIC cxx_std_98)
target_compile_definitions(${target_name} PRIVATE ${_nwflaim_common_defs})
@@ -379,9 +392,6 @@ function(nwflaim_common_target target_name public_include_dir install_include_di
"${CMAKE_CURRENT_SOURCE_DIR}/flaim/src"
"${CMAKE_CURRENT_SOURCE_DIR}/sql/src"
"${CMAKE_CURRENT_SOURCE_DIR}/xflaim/src")
if(NWFLAIM_USE_NICI AND NOT NWFLAIM_NICI_INCLUDE_DIR STREQUAL "")
target_include_directories(${target_name} PRIVATE "${NWFLAIM_NICI_INCLUDE_DIR}")
endif()
target_link_libraries(${target_name} PUBLIC Threads::Threads)
if(CURSES_INCLUDE_DIRS)
target_include_directories(${target_name} PRIVATE ${CURSES_INCLUDE_DIRS})
@@ -411,9 +421,6 @@ function(nwflaim_common_private_target target_name)
"${CMAKE_CURRENT_SOURCE_DIR}/sql/src"
"${CMAKE_CURRENT_SOURCE_DIR}/xflaim/src"
"${CMAKE_CURRENT_SOURCE_DIR}/xflaim/util")
if(NWFLAIM_USE_NICI AND NOT NWFLAIM_NICI_INCLUDE_DIR STREQUAL "")
target_include_directories(${target_name} PRIVATE "${NWFLAIM_NICI_INCLUDE_DIR}")
endif()
target_link_libraries(${target_name} PRIVATE Threads::Threads)
if(CURSES_INCLUDE_DIRS)
target_include_directories(${target_name} PRIVATE ${CURSES_INCLUDE_DIRS})
@@ -478,9 +485,11 @@ endif()
nwflaim_add_library(flaim flaim flaim/src "${CMAKE_INSTALL_INCLUDEDIR}/nwflaim" "${NWFLAIM_FLAIM_LIBRARY_VERSION}" "${NWFLAIM_FLAIM_LIBRARY_SOVERSION}" ${NWFLAIM_FLAIM_SOURCES})
if(TARGET flaim)
target_link_libraries(flaim PUBLIC flaimtk)
nwflaim_enable_classic_nici(flaim)
endif()
if(TARGET flaim_static)
target_link_libraries(flaim_static PUBLIC flaimtk_static)
nwflaim_enable_classic_nici(flaim_static)
endif()
if(NWFLAIM_BUILD_SQL)
@@ -510,17 +519,21 @@ if(NWFLAIM_BUILD_TOOLS)
flaim/util/flm_lutl.cpp
flaim/util/sharutil.cpp)
nwflaim_common_private_target(flaim_util_objects)
nwflaim_enable_classic_nici(flaim_util_objects)
target_include_directories(flaim_util_objects PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/flaim/util")
nwflaim_add_tool(flmcheckdb_tool nwflmcheckdb flaim
flaim/util/checkdb.cpp
$<TARGET_OBJECTS:flaim_util_objects>)
nwflaim_enable_classic_nici(flmcheckdb_tool)
nwflaim_add_tool(flmrebuild_tool nwflmrebuild flaim
flaim/util/rebuild.cpp
$<TARGET_OBJECTS:flaim_util_objects>)
nwflaim_enable_classic_nici(flmrebuild_tool)
nwflaim_add_tool(flmgigatest_tool nwflmgigatest flaim
flaim/util/gigatest.cpp
$<TARGET_OBJECTS:flaim_util_objects>)
nwflaim_enable_classic_nici(flmgigatest_tool)
nwflaim_add_tool(flmview_tool nwflmview flaim
flaim/util/viewblk.cpp
flaim/util/view.cpp
@@ -532,10 +545,12 @@ if(NWFLAIM_BUILD_TOOLS)
flaim/util/viewmenu.cpp
flaim/util/viewsrch.cpp
$<TARGET_OBJECTS:flaim_util_objects>)
nwflaim_enable_classic_nici(flmview_tool)
nwflaim_add_tool(flmdbshell_tool nwflmdbshell flaim
flaim/util/dbshell.cpp
flaim/util/flm_edit.cpp
$<TARGET_OBJECTS:flaim_util_objects>)
nwflaim_enable_classic_nici(flmdbshell_tool)
if(NWFLAIM_BUILD_XFLAIM)
add_library(xflaim_util_objects OBJECT