【发布时间】:2021-08-17 12:11:41
【问题描述】:
我正在尝试创建 CMakeLists.txt,它可以构建许多其他项目。我的目标是简化特定项目的一些库的构建。
我有一个名为“dependencies”的目录,里面有 CMakeLists.txt,里面有一些源代码目录。结构如下:
dependencies/
├── zlib (source code directory with it's own CMakeLists.txt)
├── libpng (source code directory with it's own CMakeLists.txt)
├── 3d lib (source code directory with it's own CMakeLists.txt, that uses zlib and libpng)
├── CMakeLists.txt
此时我在根 CMakeLists.txt 中有下一个内容:
cmake_minimum_required (VERSION 3.15)
project(myProject)
set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/../lib)
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../lib)
#### NEED TO ADD HERE ####
我想为所有这些子项目(zlib、libpng 和 3d lib)做接下来的事情:
- 使用 CMake 配置项目;
- 在调试和发布配置中构建此项目;
- 运行安装。
我需要将所有这些库安装到 CMAKE_INSTALL_PREFIX,因为“3d lib”会在该目录中查找 zlib 和 libpng。到那时,当 '3d lib 的 CMakeLists.txt 将被处理时,所有以前的库都必须已经安装,否则 CMake 无法找到 zlib 和 libpng。
那么有没有办法附加我的根 CMakeLists.txt 来做到这一点?当然,我可以为所有依赖项手动运行 CMake,但我认为 CMake 能够自主完成所有这些工作。
【问题讨论】:
-
我在 Windows 上这样做,为此项目使用 Visual Studio 编译器。
-
呜呜
add_subdirectory? -
感谢您的回复)经过我的研究,这确实有效。
标签: cmake