正如软件工程的先驱Robert C. Martin在《Clean Code》中所指出的,“尽管依赖管理可以是一个复杂的过程,但是一个良好设计的系统应该能够最小化对第三方库的直接依赖。” 这正体现了在软件设计中对依赖项管理的深刻认识及其重要性。 CMake通过提供FetchContent和ExternalProject两个模块,为现代软件项目中
1.include(FetchContent)2.FetchContent_Declare(子模块名) 获取项目。3.FetchContent_MakeAvailable(子模块),再引入我们的项目中4.target_link_libraries(主项目 PRIVATE 子模块::子模块) 3. FetchContent的一个简单例子 这里,以下载spdlog库作为项目的子模块使用,直接将下载子模块的代码配置写到了top directory下的CM...
在CMake中,管理项目依赖库是一个重要而复杂的任务。CMake提供了两个强大的模块,即ExternalProject和FetchContent,用于帮助我们管理外部依赖库。本篇博客将深入学习使用ExternalProject和FetchContent来管理CMake项目中的库依赖,帮助读者更好地应对项目中复杂的依赖管理需求。 1. ExternalProject模块 1.1 介绍 ExternalProject是C...
CMake 项目文件(例如CMakeLists.txt)直接由 Visual Studio 使用,以实现 IntelliSense 和浏览功能。 Visual Studio 直接调用cmake.exe进行 CMake 配置和生成。 安装 “用于 Windows 的 C++ CMake 工具”作为“使用 C++ 的桌面开发”和“使用 C++ 的 Linux 开发”工作负载的一部分进行安装。 跨平台 CMake 开发需...
项目目录native/engine/common目录下的CMakeLists.txt文件的配置方法也是一致的,但是会多一些基础的配置。例如: CMake option(USE_SPINE"Enable Spine"ON) 构建后生成的发布包目录(例如build/android)下有一个proj/cfg.cmake文件,用于存放当前项目的一些配置。因为CMakeLists.txt中有对cfg.cmake文件进行引入,所以当...
基本工作流程 编写CMakeLists.txt 文件:定义项目的构建规则和依赖关系。 生成构建文件:使用 CMake 生成适合当前平台的构建系统文件(例如 Makefile、Visual Studio 工程文件)。 执行构建:使用生成的构建系统文件(如make、ninja、msbuild)来编译项目。 相关链接...
CMake 安装与配置 CMake 支持的操作系统: Microsoft Windows Apple macOS Linux FreeBSD OpenBSD Solaris AIX 安装 CMake CMake 可以在不同操作系统上进行安装,本文将介绍 Windows、Linux 以及 macOS 系统下的安装与配置。 CMake 安装包下载地址:https://cmake.org/d
CMake本身是一个工具集,由五个可执行的程序组成:cmake、ctest、cpack、cmake-gui和ccmake,其中cmake可以说是出镜率最高的明星级别程序了,它用于在构建项目的第一步,进行项目的配置、生成和构建项目的主要可执行文件的工作。其他的程序们ctest用于运行和报告测试结果的测试驱动程序,cpack用来生成安装程序和源包的...
第一行意思是cmake最低版本要求2.8,第二行是本项目的工程名第三行:第一个变量:要生成的可执行文件名为hello,后面的参数是需要的依赖。 接着在当前目录下执行 cmake . [root@centOS learn_cmake]# cmake .CMake Deprecation Warning at ...
你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一...