简单CMake 父子项目+链接外部库例子+QT
CMakeList.txt
cmake_minimum_required(VERSION 3.12)
project(zd_cmake)
#set(ZDPOWER_PATH "D://test") # 设置环境变量
#include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/zdpower.cmake) # 包含其他cmake文件
# 使用add_subdirectory 添加子工程
add_subdirectory(zdstorelib)
add_subdirectory(PowerServer)
zdstorelib/CMakeList.txt
project(zdstorelib)
# 引用其他cmake
include(${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/zdpower.cmake)
ZD_LIB_PROTOBUF() # 在其他cmake中定义的函数
ZD_LIB_STORE() # 同上
#多平台spdlog
if (WIN32)
include_directories(${TEST}/lib/spdlog/include)
link_directories(${TEST}/lib/spdlog)
link_libraries(optimized spdlog debug spdlogd)
else()
include_directories(${TEST}/lib/spdlog/include)
link_directories(${TEST}/lib/spdlog)
link_libraries(spdlog)
endif()
#C++17支持
if(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17")
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
endif()
include_directories(.)
include_directories(./include)
aux_source_directory(. ALL_SRC)
aux_source_directory(./include/Store STORE_SRC)
# find_package(Qt5 COMPONENTS Core REQUIRED)
# 生成可执行程序
# add_executable(${PROJECT_NAME} ${ALL_SRC} ${STORE_SRC} )
# 生成库文件
add_library(${PROJECT_NAME} STATIC ${ALL_SRC} ${STORE_SRC})
# QT支持
# target_link_libraries(${PROJECT_NAME} Qt5::Core)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。