61 lines
3.1 KiB
CMake
61 lines
3.1 KiB
CMake
cmake_minimum_required(VERSION 3.5)
|
|
|
|
set(MAAT_FRAME_MAJOR_VERSION 4)
|
|
set(MAAT_FRAME_MINOR_VERSION 0)
|
|
set(MAAT_FRAME_PATCH_VERSION 0)
|
|
set(MAAT_FRAME_VERSION ${MAAT_FRAME_MAJOR_VERSION}.${MAAT_FRAME_MINOR_VERSION}.${MAAT_FRAME_PATCH_VERSION})
|
|
|
|
message(STATUS "Maat Frame, Version: ${MAAT_FRAME_VERSION}")
|
|
|
|
LINK_DIRECTORIES(/opt/MESA/lib /usr/lib64)
|
|
|
|
add_definitions(-D_GNU_SOURCE)
|
|
add_definitions(-fPIC)
|
|
set(MAAT_SRC alignment.c json2iris.c maat_api.c rcu_hash.c maat_garbage_collection.c maat_config_monitor.c
|
|
maat_rule.c maat_kv.c maat_ex_data.c maat_utils.c maat_command.c maat_redis_monitor.c
|
|
maat_table.c maat_compile.c maat_group.c maat_ip.c maat_flag.c maat_interval.c
|
|
maat_expr.c maat_fqdn.c maat_port.c maat_plugin.c maat_ip_plugin.c maat_bool_plugin.c
|
|
maat_fqdn_plugin.c maat_virtual.c)
|
|
|
|
set(LIB_SOURCE_FILES
|
|
${PROJECT_SOURCE_DIR}/deps/cJSON/cJSON.c ${PROJECT_SOURCE_DIR}/deps/log/log.c)
|
|
|
|
include_directories(/opt/MESA/include/MESA/)
|
|
include_directories(${PROJECT_SOURCE_DIR}/include/)
|
|
include_directories(${PROJECT_SOURCE_DIR}/deps/)
|
|
include_directories(${PROJECT_SOURCE_DIR}/scanner)
|
|
include_directories(${PROJECT_SOURCE_DIR}/scanner/adapter_hs)
|
|
include_directories(${PROJECT_SOURCE_DIR}/scanner/fqdn_engine)
|
|
include_directories(${PROJECT_SOURCE_DIR}/scanner/bool_matcher)
|
|
include_directories(${PROJECT_SOURCE_DIR}/scanner/ip_matcher)
|
|
include_directories(${PROJECT_SOURCE_DIR}/scanner/flag_matcher)
|
|
include_directories(${PROJECT_SOURCE_DIR}/scanner/interval_matcher)
|
|
include_directories(${PROJECT_SOURCE_DIR}/src/inc_internal)
|
|
|
|
# Static Library Output
|
|
add_library(maat_frame_static STATIC ${MAAT_SRC} ${LIB_SOURCE_FILES})
|
|
set_target_properties(maat_frame_static PROPERTIES LINKER_LANGUAGE CXX)
|
|
set_target_properties(maat_frame_static PROPERTIES OUTPUT_NAME maat4)
|
|
set_target_properties(maat_frame_static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
|
|
|
|
target_link_libraries(maat_frame_static hiredis-static ${MAAT_DEPEND_DYN_LIB})
|
|
target_link_libraries(maat_frame_static igraph-static)
|
|
target_link_libraries(maat_frame_static adapter-static)
|
|
|
|
# Shared Library Output
|
|
add_library(maat_frame_shared SHARED ${MAAT_SRC} ${LIB_SOURCE_FILES})
|
|
set_target_properties(maat_frame_shared PROPERTIES LINKER_LANGUAGE CXX)
|
|
set_target_properties(maat_frame_shared PROPERTIES OUTPUT_NAME maat4)
|
|
set_target_properties(maat_frame_shared PROPERTIES CLEAN_DIRECT_OUTPUT 1)
|
|
set_target_properties(maat_frame_shared PROPERTIES VERSION ${MAAT_FRAME_MAJOR_VERSION}.${MAAT_FRAME_MINOR_VERSION})
|
|
set_target_properties(maat_frame_shared PROPERTIES SOVERSION ${MAAT_FRAME_MAJOR_VERSION})
|
|
set_target_properties(maat_frame_shared PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/version.map")
|
|
|
|
target_link_libraries(maat_frame_shared hiredis-static ${MAAT_DEPEND_DYN_LIB})
|
|
target_link_libraries(maat_frame_shared igraph-static ${MAAT_DEPEND_DYN_LIB})
|
|
target_link_libraries(maat_frame_shared adapter-static)
|
|
|
|
# install
|
|
set(CMAKE_INSTALL_PREFIX /opt/MESA/)
|
|
install(FILES ${PROJECT_SOURCE_DIR}/include/maat.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include/MESA/ COMPONENT HEADER)
|
|
install(TARGETS maat_frame_shared LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/ COMPONENT LIBRARIES) |