56 lines
1.8 KiB
CMake
56 lines
1.8 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
Project(Ticket-System)
|
|
include(CTest)
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2")
|
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -fsanitize=address -fsanitize=undefined -fsanitize=leak")
|
|
|
|
# 执行git命令检查是否有未存档的更改
|
|
execute_process(
|
|
COMMAND git status --porcelain
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
OUTPUT_VARIABLE GIT_STATUS_OUTPUT
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
# 判断输出是否为空,如果有未存档的更改则不做处理
|
|
string(LENGTH "${GIT_STATUS_OUTPUT}" STATUS_LENGTH)
|
|
if(STATUS_LENGTH EQUAL 0)
|
|
# 执行git命令获取commit信息
|
|
execute_process(
|
|
COMMAND git rev-parse HEAD
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
OUTPUT_VARIABLE GIT_COMMIT_HASH
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
# 定义宏传递commit信息给C++程序
|
|
add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}")
|
|
else()
|
|
add_definitions(-DGIT_COMMIT_HASH="[developing]")
|
|
endif()
|
|
|
|
include(FetchContent)
|
|
FetchContent_Declare(
|
|
googletest
|
|
URL_HASH SHA256=1f357c27ca988c3f7c6b4bf68a9395005ac6761f034046e9dde0896e3aba00e4
|
|
URL ${CMAKE_SOURCE_DIR}/deps/googletest-v1.14.0-mirror.zip
|
|
)
|
|
FetchContent_MakeAvailable(googletest)
|
|
include(GoogleTest)
|
|
FetchContent_Declare(
|
|
argparse
|
|
URL_HASH SHA256=674e724c2702f0bfef1619161815257a407e1babce30d908327729fba6ce4124
|
|
URL ${CMAKE_SOURCE_DIR}/deps/argparse-v3.0-mirror.zip
|
|
)
|
|
FetchContent_MakeAvailable(argparse)
|
|
FetchContent_Declare(
|
|
spdlog
|
|
URL_HASH SHA256=9f6763bb76fff7db371f5733626c83352edd7c57899501ab00248fafad9cc504
|
|
URL ${CMAKE_SOURCE_DIR}/deps/spdlog-v1.13.0-mirror.zip
|
|
)
|
|
FetchContent_MakeAvailable(spdlog)
|
|
include_directories(${CMAKE_SOURCE_DIR}/bpt/include)
|
|
include_directories(${CMAKE_SOURCE_DIR}/stlite)
|
|
enable_testing()
|
|
add_subdirectory(test)
|
|
add_subdirectory(src) |