SHA256
46 lines
1.5 KiB
CMake
46 lines
1.5 KiB
CMake
cmake_minimum_required(VERSION 3.10.0)
|
|
project(BetterSTL VERSION 0.1.0 LANGUAGES C CXX)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
# 定义源文件
|
|
set(BETTERSTL_SOURCES
|
|
src/BigInteger.cpp
|
|
src/BigDecimal.cpp)
|
|
|
|
# 生成静态库 (.a 文件)
|
|
add_library(BetterSTL_static STATIC ${BETTERSTL_SOURCES})
|
|
target_include_directories(BetterSTL_static PUBLIC include)
|
|
set_target_properties(BetterSTL_static PROPERTIES
|
|
OUTPUT_NAME BetterSTL
|
|
PREFIX lib)
|
|
|
|
# 生成动态库 (.so 文件)
|
|
add_library(BetterSTL_shared SHARED ${BETTERSTL_SOURCES})
|
|
target_include_directories(BetterSTL_shared PUBLIC include)
|
|
set_target_properties(BetterSTL_shared PROPERTIES
|
|
OUTPUT_NAME BetterSTL
|
|
PREFIX lib)
|
|
|
|
# 默认链接到静态库
|
|
add_library(BetterSTL ALIAS BetterSTL_static)
|
|
|
|
enable_testing()
|
|
|
|
add_executable(BigIntegerTests tests/BigIntegerTest.cpp)
|
|
target_include_directories(BigIntegerTests PRIVATE include)
|
|
target_link_libraries(BigIntegerTests PRIVATE BetterSTL_static)
|
|
add_test(NAME BigIntegerTests COMMAND BigIntegerTests)
|
|
|
|
add_executable(BigDecimalTests tests/BigDecimalTest.cpp)
|
|
target_include_directories(BigDecimalTests PRIVATE include)
|
|
target_link_libraries(BigDecimalTests PRIVATE BetterSTL_static)
|
|
add_test(NAME BigDecimalTests COMMAND BigDecimalTests)
|
|
|
|
# 生成导出信息用于外部使用
|
|
install(TARGETS BetterSTL_static BetterSTL_shared
|
|
LIBRARY DESTINATION lib
|
|
ARCHIVE DESTINATION lib
|
|
RUNTIME DESTINATION bin)
|
|
install(DIRECTORY include/ DESTINATION include)
|
|
|