2020-01-20 10:36:04 +08:00
|
|
|
cmake_minimum_required (VERSION 2.8)
|
|
|
|
|
project (isulad)
|
2019-09-30 10:53:41 -04:00
|
|
|
|
|
|
|
|
include(cmake/helper.cmake)
|
|
|
|
|
|
|
|
|
|
include(cmake/options.cmake)
|
|
|
|
|
|
|
|
|
|
include(cmake/set_build_flags.cmake)
|
|
|
|
|
|
|
|
|
|
#set(CMAKE_C_COMPILER "gcc" CACHE PATH "c compiler")
|
|
|
|
|
|
|
|
|
|
# Get the latest abbreviated commit hash of the working branch
|
|
|
|
|
execute_process(
|
|
|
|
|
COMMAND git rev-parse HEAD
|
|
|
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
|
|
|
OUTPUT_VARIABLE GIT_COMMIT_HASH
|
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
|
|
|
)
|
|
|
|
|
message("-- commit id: " ${GIT_COMMIT_HASH})
|
2020-01-20 10:36:04 +08:00
|
|
|
add_definitions(-DISULAD_GIT_COMMIT="${GIT_COMMIT_HASH}")
|
2019-09-30 10:53:41 -04:00
|
|
|
|
|
|
|
|
execute_process(
|
|
|
|
|
COMMAND sh -c "date --rfc-3339 ns | sed -e 's/ /T/'"
|
|
|
|
|
OUTPUT_VARIABLE BUILD_DATE
|
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
|
|
|
)
|
|
|
|
|
message("-- build time: " ${BUILD_DATE})
|
2020-01-20 10:36:04 +08:00
|
|
|
add_definitions(-DISULAD_BUILD_TIME="${BUILD_DATE}")
|
2019-09-30 10:53:41 -04:00
|
|
|
|
2020-01-20 10:36:04 +08:00
|
|
|
if (NOT ISULAD_ROOT_PATH)
|
|
|
|
|
add_definitions(-DISULAD_ROOT_PATH="/var/lib/isulad")
|
2019-09-30 10:53:41 -04:00
|
|
|
endif()
|
2020-01-20 10:36:04 +08:00
|
|
|
if (NOT ISULAD_STATE_PATH)
|
|
|
|
|
add_definitions(-DISULAD_STATE_PATH="/var/run/isulad")
|
2019-09-30 10:53:41 -04:00
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if (LIB_INSTALL_DIR)
|
|
|
|
|
set(LIB_INSTALL_DIR_DEFAULT ${LIB_INSTALL_DIR})
|
|
|
|
|
else()
|
|
|
|
|
set(LIB_INSTALL_DIR_DEFAULT "lib")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# check depends library and headers
|
|
|
|
|
include(cmake/checker.cmake)
|
|
|
|
|
if (CHECKER_RESULT)
|
|
|
|
|
message(FATAL_ERROR "ERROR: Check library and headers failed")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
configure_file(
|
|
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/config.h.in"
|
|
|
|
|
"${CMAKE_BINARY_DIR}/conf/config.h"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
configure_file(
|
2020-01-20 10:36:04 +08:00
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/isulad.pc.in"
|
|
|
|
|
"${CMAKE_BINARY_DIR}/conf/isulad.pc"
|
2019-09-30 10:53:41 -04:00
|
|
|
)
|
|
|
|
|
|
2019-12-25 15:50:34 +08:00
|
|
|
# parse .proto files
|
|
|
|
|
include(cmake/protoc.cmake)
|
2019-09-30 10:53:41 -04:00
|
|
|
|
|
|
|
|
# llt and coverage
|
|
|
|
|
SET(CMAKE_VERBOSE_MAKEFILE OFF)
|
|
|
|
|
IF(ENABLE_COVERAGE)
|
|
|
|
|
MESSAGE(STATUS "Enable coverage compile option")
|
2019-12-25 15:50:34 +08:00
|
|
|
SET(COVERAGE_C_OPTION "${COVERAGE_OPTION} -fprofile-arcs -ftest-coverage -fkeep-inline-functions -fkeep-static-functions")
|
|
|
|
|
SET(COVERAGE_CXX_OPTION "${COVERAGE_OPTION} -fprofile-arcs -ftest-coverage")
|
2019-09-30 10:53:41 -04:00
|
|
|
ENDIF(ENABLE_COVERAGE)
|
|
|
|
|
|
2019-12-25 15:50:34 +08:00
|
|
|
IF(ENABLE_ASAN)
|
|
|
|
|
MESSAGE(STATUS "Enable asan compile option")
|
|
|
|
|
SET(ASAN_OPTIONS "${ASAN_OPTION} -fsanitize=address -fsanitize-recover=address -fno-omit-frame-pointer")
|
|
|
|
|
ENDIF(ENABLE_ASAN)
|
|
|
|
|
|
|
|
|
|
IF(CMAKE_BUILD_TYPE STREQUAL Debug)
|
|
|
|
|
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COVERAGE_C_OPTION} ${ASAN_OPTIONS}")
|
|
|
|
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COVERAGE_CXX_OPTION} ${ASAN_OPTIONS}")
|
|
|
|
|
ENDIF()
|
|
|
|
|
|
2019-09-30 10:53:41 -04:00
|
|
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src)
|
|
|
|
|
OPTION(ENABLE_LLT "llt switch" OFF)
|
|
|
|
|
IF(ENABLE_LLT)
|
|
|
|
|
enable_testing()
|
|
|
|
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/test)
|
|
|
|
|
ENDIF(ENABLE_LLT)
|
|
|
|
|
|
|
|
|
|
# install all files
|
2020-01-20 10:36:04 +08:00
|
|
|
install(FILES ${CMAKE_BINARY_DIR}/conf/isulad.pc
|
2019-09-30 10:53:41 -04:00
|
|
|
DESTINATION ${LIB_INSTALL_DIR_DEFAULT}/pkgconfig PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE)
|
2020-01-20 10:36:04 +08:00
|
|
|
install(FILES src/libisula.h
|
|
|
|
|
DESTINATION include/isulad)
|
|
|
|
|
install(FILES src/connect/client/isula_connect.h
|
|
|
|
|
DESTINATION include/isulad)
|
2019-09-30 10:53:41 -04:00
|
|
|
install(FILES src/container_def.h
|
2020-01-20 10:36:04 +08:00
|
|
|
DESTINATION include/isulad)
|
2019-09-30 10:53:41 -04:00
|
|
|
install(FILES src/types_def.h
|
2020-01-20 10:36:04 +08:00
|
|
|
DESTINATION include/isulad)
|
2019-09-30 10:53:41 -04:00
|
|
|
install(FILES src/error.h
|
2020-01-20 10:36:04 +08:00
|
|
|
DESTINATION include/isulad)
|
2019-09-30 10:53:41 -04:00
|
|
|
install(FILES src/engines/engine.h
|
2020-01-20 10:36:04 +08:00
|
|
|
DESTINATION include/isulad)
|
2019-09-30 10:53:41 -04:00
|
|
|
|
|
|
|
|
# install config files
|
|
|
|
|
set(conf_prefix "/etc")
|
|
|
|
|
if (CMAKE_INSTALL_SYSCONFDIR)
|
|
|
|
|
set(conf_prefix ${CMAKE_INSTALL_SYSCONFDIR})
|
|
|
|
|
endif()
|
|
|
|
|
install(FILES src/contrib/config/daemon.json
|
|
|
|
|
DESTINATION ${conf_prefix}/isulad PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE)
|
2019-11-06 19:33:20 +08:00
|
|
|
install(FILES src/contrib/config/config.json src/contrib/config/systemcontainer_config.json
|
2020-01-20 10:36:04 +08:00
|
|
|
DESTINATION ${conf_prefix}/default/isulad PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE)
|
2019-09-30 10:53:41 -04:00
|
|
|
install(FILES src/contrib/config/seccomp_default.json
|
|
|
|
|
DESTINATION ${conf_prefix}/isulad PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE)
|
|
|
|
|
install(FILES src/contrib/config/hooks/default.json
|
2020-01-20 10:36:04 +08:00
|
|
|
DESTINATION ${conf_prefix}/default/isulad/hooks PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE)
|
2019-09-30 10:53:41 -04:00
|
|
|
install(FILES src/contrib/sysmonitor/isulad-check.sh
|
2020-01-20 10:36:04 +08:00
|
|
|
DESTINATION ${conf_prefix}/default/isulad PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE)
|
2019-09-30 10:53:41 -04:00
|
|
|
install(FILES src/contrib/sysmonitor/isulad-monit
|
|
|
|
|
DESTINATION ${conf_prefix}/sysmonitor/process PERMISSIONS OWNER_READ OWNER_WRITE)
|