# ZTestLib **Repository Path**: Coder_Zr/ZTestLib ## Basic Information - **Project Name**: ZTestLib - **Description**: 最简单的CMake库,用来作为第三方库进行验证cpm(FetchContent)的运作方式 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-03-08 - **Last Updated**: 2024-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CMake 第三方库编写指南一 本项目作为第三方库,供其他项目进行源码集成、编译。此项目比较简单,如果需要在项目内调用其他库(库链式调用),请参考《CMake 第三方库编写指南二》 [TOC] ## 项目文件预览 ZTestLib > CMakeLists.txt > > ZTestLib.h > > ZTestLib.cpp > > ZTestLib_global.h ## 项目需加入项 使用CMakeLists.txt模板,在最后面加入target_include_directories描述(指定.h所在目录)即可 ```cmake cmake_minimum_required(VERSION 3.14) project(ZTestLib LANGUAGES CXX) # Qt 自动生成的依赖项 set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) # 使用C++17 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # Qt 自动生成的依赖项 find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) # 搜索当前目录下的此类型后缀文件 file(GLOB SourceFiles "*.h" "*.cpp") # SHARED表示编译动态库,STATIC是静态库 add_library(${PROJECT_NAME} SHARED # 项目集成搜索到的文件 ${SourceFiles} ) # 项目链接库 target_link_libraries(${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets ) # 用于ZTestLib_global.h文件中 target_compile_definitions(${PROJECT_NAME} PRIVATE ZTESTLIB_LIBRARY) # 指定.h所在目录,暴露给其他程序 target_include_directories(${PROJECT_NAME} PUBLIC $ $ # /include ) ```