|
|
|
|
@@ -6,7 +6,7 @@ include(CTest)
|
|
|
|
|
|
|
|
|
|
option(NWFLAIM_BUILD_SHARED "Build shared nwflaim libraries" ON)
|
|
|
|
|
option(NWFLAIM_BUILD_STATIC "Build static nwflaim libraries" OFF)
|
|
|
|
|
option(NWFLAIM_BUILD_SQL "Build SQL FLAIM library" ON)
|
|
|
|
|
option(NWFLAIM_BUILD_SQL "Build experimental SQL FLAIM library" OFF)
|
|
|
|
|
option(NWFLAIM_BUILD_XFLAIM "Build XML FLAIM library" ON)
|
|
|
|
|
option(NWFLAIM_BUILD_TOOLS "Build installable FLAIM command line tools with nw-prefixed names" ON)
|
|
|
|
|
option(NWFLAIM_WITH_OPENSSL "Build FTK legacy OpenSSL/TLS helpers" ON)
|
|
|
|
|
@@ -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,18 +485,20 @@ 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)
|
|
|
|
|
nwflaim_add_library(flaimsql flaimsql sql/src "${CMAKE_INSTALL_INCLUDEDIR}/nwflaim" "${NWFLAIM_SQL_LIBRARY_VERSION}" "${NWFLAIM_SQL_LIBRARY_SOVERSION}" ${NWFLAIM_SQL_SOURCES})
|
|
|
|
|
if(TARGET flaimsql)
|
|
|
|
|
target_link_libraries(flaimsql PUBLIC flaim)
|
|
|
|
|
target_link_libraries(flaimsql PUBLIC flaimtk)
|
|
|
|
|
endif()
|
|
|
|
|
if(TARGET flaimsql_static)
|
|
|
|
|
target_link_libraries(flaimsql_static PUBLIC flaim_static)
|
|
|
|
|
target_link_libraries(flaimsql_static PUBLIC flaimtk_static)
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
@@ -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
|
|
|
|
|
|