38 lines
1.1 KiB
CMake
38 lines
1.1 KiB
CMake
cmake_minimum_required(VERSION 3.20)
|
|
|
|
project(tizi LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
|
|
# 第三方库引入
|
|
add_subdirectory(${CMAKE_SOURCE_DIR}/yaml-cpp-master)
|
|
find_package(OpenSSL REQUIRED)
|
|
|
|
# 基础库
|
|
set(src ${CMAKE_SOURCE_DIR}/src)
|
|
set(base_src ${src}/base)
|
|
file(GLOB_RECURSE base_srcs ${base_src}/*.h ${base_src}/*.cpp)
|
|
add_library(Base ${base_srcs})
|
|
target_compile_definitions(Base PUBLIC CPPHTTPLIB_OPENSSL_SUPPORT)
|
|
target_link_libraries(Base PUBLIC OpenSSL::SSL OpenSSL::Crypto )
|
|
target_link_libraries(Base PUBLIC yaml-cpp::yaml-cpp)
|
|
target_compile_definitions(Base PUBLIC CPPHTTPLIB_OPENSSL_SUPPORT)
|
|
if(MSVC)
|
|
target_compile_options(Base PUBLIC /utf-8)
|
|
endif()
|
|
target_include_directories(Base PUBLIC ${src})
|
|
|
|
|
|
file(GLOB list CONFIGURE_DEPENDS LIST_DIRECTORIES true "${src}/*")
|
|
list(REMOVE_ITEM list "${src}/base")
|
|
foreach(cur_dir ${list})
|
|
get_filename_component(target "${cur_dir}" NAME)
|
|
file(GLOB_RECURSE cur_srcs ${cur_dir}/*.h ${cur_dir}/*.cpp)
|
|
add_executable(${target} ${cur_srcs})
|
|
target_link_libraries(${target} PRIVATE Base)
|
|
endforeach()
|
|
|