修改cmake 文件,同步 tsg_master cmake

This commit is contained in:
fumingwei
2020-10-15 18:16:07 +08:00
parent b6d091818e
commit d9db83404d
4 changed files with 42 additions and 30 deletions

View File

@@ -1,16 +1,15 @@
cmake_minimum_required(VERSION 3.5) cmake_minimum_required(VERSION 3.5)
project(kni) set(lib_name tsg_master)
project(lib_name)
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
include(Version) include(Version)
include(Package)
set(CMAKE_MACOSX_RPATH 0)
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD 11)
set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD 11)
set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
#set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lasan -fsanitize-recover=address -fsanitize=address -fno-omit-frame-pointer")
#for ASAN #for ASAN
set(ASAN_OPTION "OFF" CACHE STRING " set asan type chosen by the user, using OFF as default") set(ASAN_OPTION "OFF" CACHE STRING " set asan type chosen by the user, using OFF as default")
set_property(CACHE ASAN_OPTION PROPERTY STRINGS OFF ADDRESS THREAD) set_property(CACHE ASAN_OPTION PROPERTY STRINGS OFF ADDRESS THREAD)
@@ -30,14 +29,26 @@ endif()
# end of for ASAN # end of for ASAN
add_definitions(-D_GNU_SOURCE) add_definitions(-D_GNU_SOURCE)
if (CMAKE_BUILD_TYPE STREQUAL Debug) if (CMAKE_BUILD_TYPE STREQUAL Debug)
add_definitions(-DDEBUG) add_definitions(-DDEBUG)
endif() endif()
set(CMAKE_INSTALL_PREFIX /home/mesasoft/sapp_run)
add_subdirectory(vendor) add_subdirectory(vendor)
add_subdirectory(common) add_subdirectory(common)
add_subdirectory(entry) add_subdirectory(entry)
# cmake -DCMAKE_BUILD_TYPE=Debug/RelWithDebInfo set(CPACK_RPM_PRE_INSTALL_SCRIPT_FILE ${PROJECT_SOURCE_DIR}/cmake/PreInstall.in)
set(CPACK_RPM_LIBRARIES_USER_FILELIST "%config(noreplace) ${CMAKE_INSTALL_PREFIX}/etc/kni/kni.conf")
install(FILES conf/kni/kni.inf DESTINATION ${CMAKE_INSTALL_PREFIX}/plug/business/kni COMPONENT PROFILE)
install(FILES conf/kni/kni.conf DESTINATION ${CMAKE_INSTALL_PREFIX}/etc/kni COMPONENT PROFILE)
include(Package)

View File

@@ -1,7 +1,7 @@
if(CMAKE_BUILD_TYPE STREQUAL "Debug") if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(CPACK_PACKAGE_NAME "kni-debug") set(CPACK_PACKAGE_NAME "${lib_name}-debug")
else() else()
set(CPACK_PACKAGE_NAME "kni") set(CPACK_PACKAGE_NAME "${lib_name}"))
endif() endif()
message(STATUS "Package: ${CPACK_PACKAGE_NAME}") message(STATUS "Package: ${CPACK_PACKAGE_NAME}")
@@ -10,8 +10,9 @@ set(CPACK_PACKAGE_VENDOR "MESASOFT")
set(CPACK_PACKAGE_VERSION_MAJOR "${KNI_VERSION_MAJOR}") set(CPACK_PACKAGE_VERSION_MAJOR "${KNI_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${KNI_VERSION_MINOR}") set(CPACK_PACKAGE_VERSION_MINOR "${KNI_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${KNI_VERSION_PATCH}.${KNI_DESCRIBE}") set(CPACK_PACKAGE_VERSION_PATCH "${KNI_VERSION_PATCH}.${KNI_DESCRIBE}")
set(CMAKE_INSTALL_PREFIX "/home/mesasoft/sapp_run")
set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
set(CPACK_PACKAGE_VERSION "${KNI_VERSION_MAJOR}.${KNI_VERSION_MINOR}.${KNI_VERSION_PATCH}.${KNI_DESCRIBE}")
execute_process(COMMAND bash -c "echo -ne \"`uname -r | awk -F'.' '{print $5\".\"$6\".\"$7}'`\"" OUTPUT_VARIABLE SYSTEM_VERSION)
#execute_process(COMMAND sh changelog.sh ${CMAKE_BINARY_DIR} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/cmake) #execute_process(COMMAND sh changelog.sh ${CMAKE_BINARY_DIR} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/cmake)
#SET(CPACK_RPM_CHANGELOG_FILE ${CMAKE_BINARY_DIR}/changelog.txt) #SET(CPACK_RPM_CHANGELOG_FILE ${CMAKE_BINARY_DIR}/changelog.txt)
@@ -19,28 +20,26 @@ set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# RPM Build # RPM Build
set(CPACK_GENERATOR "RPM") set(CPACK_GENERATOR "RPM")
set(CPACK_RPM_AUTO_GENERATED_FILE_NAME ON) set(CPACK_RPM_PACKAGE_VENDOR "MESA")
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT") set(CPACK_RPM_PACKAGE_AUTOREQPROV "yes")
set(CPACK_RPM_PACKAGE_AUTOREQPROV "no") set(CPACK_RPM_PACKAGE_RELEASE_LIBRARY "on")
set(CPACK_RPM_PACKAGE_RELEASE_DIST on) set(CPACK_RPM_DEBUGINFO_PACKAGE "on")
set(CPACK_RPM_DEBUGINFO_PACKAGE on) set(CPACK_RPM_PACKAGE_DEBUG 1)
set(CPACK_RPM_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/cmake/PreInstall.in) set(CPACK_RPM_COMPONENT_INSTALL ON)
#set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/cmake/PostInstall.in) set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
#set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/cmake/PostUninstall.in) set(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP)
#set(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/cmake/PreUninstall.in) set(CPACK_COMPONENT_HEADER_DISPLAY_NAME "develop")
install(FILES build/entry/libkni.so DESTINATION ./plug/business/kni) set(CPACK_COMPONENT_LIBRARIES_REQUIRED TRUE)
install(FILES conf/kni/kni.inf DESTINATION ./plug/business/kni) set(CPACK_RPM_LIBRARIES_PACKAGE_NAME ${CPACK_PACKAGE_NAME})
install(FILES conf/kni/kni.conf DESTINATION ./etc/kni) set(CPACK_RPM_LIBRARIES_FILE_NAME "${CPACK_RPM_LIBRARIES_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm")
set(CPACK_RPM_LIBRARIES_DEBUGINFO_FILE_NAME "${CPACK_RPM_LIBRARIES_PACKAGE_NAME}-debuginfo-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm")
# Must uninstall the debug package before install release package set(CPACK_COMPONENT_PROFILE_GROUP "libraries")
if(CMAKE_BUILD_TYPE STREQUAL "Debug") set(CPACK_COMPONENT_LIBRARIES_GROUP "libraries")
set(CPACK_RPM_PACKAGE_CONFLICTS "kni") set(CPACK_BUILD_SOURCE_DIRS "${CMAKE_SOURCE_DIR}")
else() set(CPACK_RPM_PACKAGE_CONFLICTS ${CPACK_PACKAGE_NAME})
set(CPACK_RPM_PACKAGE_CONFLICTS "kni-debug")
endif()
# setup %config(noreplace) set(CPACK_RPM_PACKAGE_CONFLICTS ${CPACK_PACKAGE_NAME})
set(CPACK_RPM_USER_FILELIST "%config(noreplace) ${CMAKE_INSTALL_PREFIX}/etc/kni/kni.conf")
include(CPack) include(CPack)

View File

@@ -11,7 +11,7 @@ file(COPY ${__SOURCE_AUTORESIVISION} DESTINATION ${CMAKE_BINARY_DIR}
WORLD_READ WORLD_EXECUTE) WORLD_READ WORLD_EXECUTE)
# execute autorevision.sh to generate version information # execute autorevision.sh to generate version information
execute_process(COMMAND ${__AUTORESIVISION} -t cmake -o ${__VERSION_CACHE} OUTPUT_FILE ${__VERSION_CONFIG}) execute_process(COMMAND ${__AUTORESIVISION} -t cmake -o ${__VERSION_CACHE} OUTPUT_FILE ${__VERSION_CONFIG} ERROR_QUIET)
include(${__VERSION_CONFIG}) include(${__VERSION_CONFIG})
# extract major, minor, patch version from git tag # extract major, minor, patch version from git tag

View File

@@ -1,3 +1,5 @@
set(CMAKE_INSTALL_PREFIX /home/mesasoft/sapp_run)
add_library(kni SHARED src/kni_entry.cpp src/tfe_mgr.cpp src/kni_tun.cpp src/kni_pxy_tcp_option.cpp src/kni_dynamic_bypass.cpp) add_library(kni SHARED src/kni_entry.cpp src/tfe_mgr.cpp src/kni_tun.cpp src/kni_pxy_tcp_option.cpp src/kni_dynamic_bypass.cpp)
target_include_directories(kni PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include) target_include_directories(kni PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include)
target_link_libraries(kni common MESA_prof_load MESA_htable MESA_field_stat maatframe mrzcpd dabloom) target_link_libraries(kni common MESA_prof_load MESA_htable MESA_field_stat maatframe mrzcpd dabloom)
install(TARGETS kni LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/plug/business/kni COMPONENT LIBRARIES)