1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| cmake_minimum_required(VERSION 3.10)
project(demo)
set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
enable_testing()
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/lib LIB_SRCS)
add_library(hello STATIC ${LIB_SRCS})
file(GLOB MAIN_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
add_executable(${PROJECT_NAME} ${MAIN_SRCS})
target_link_libraries(${PROJECT_NAME} hello)
file(GLOB TEST_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/test/*.cpp)
foreach(SRC IN LISTS TEST_SRCS) get_filename_component(FILE_NAME ${SRC} NAME_WE)
add_executable(${FILE_NAME} ${SRC})
target_link_libraries(${FILE_NAME} hello)
add_test(NAME ${FILE_NAME} COMMAND ${FILE_NAME}) endforeach()
|