Files
BetterSTL/CMakeLists.txt
T
2026-08-16 15:20:11 +08:00

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/big_integer.cpp
src/big_decimal.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/big_integer_test.cpp)
target_include_directories(BigIntegerTests PRIVATE include)
target_link_libraries(BigIntegerTests PRIVATE BetterSTL_static)
add_test(NAME BigIntegerTests COMMAND BigIntegerTests)
add_executable(BigDecimalTests tests/big_decimal_test.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)