cmake - CMake - 在目录的多个版本之间切换
问题描述
我是 CMake 的新手。我必须通过以下方式调整 CMakeLists.txt 文件:
这些项目有几个子目录,我们从现在开始将其称为“子目录”。其余的(基于 C++ 的)代码可以使用“#include”语法包含此目录中的文件。现在我基本上想要做的是提供多个版本的 subdir(subdir1、subdir2 等)并使用 CMake 变量在它们之间切换。然而,对于这个开关应该是透明的代码,它只看到一个目录“subdir”。应该确保 gcc 注意到这个开关,并在变量改变时重建一切。
在您看来,实现这一目标的最佳方式是什么?至少应该在 Windows 和 Linux 上工作。
问候
解决方案
开发@alex-reinking 在评论中提出的建议。
CMakeLists.txt
您可以在配置时有选择地选择要包含的目录,例如:
# expose cmake option to control the subdir
option(USE_IMPL "The implementation subdir" defaultSubdir)
# include it
add_subdirectory("${USE_IMPL}")
target_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/${USE_IMPL}")
target_link_libraries(TheTarget library_target_in_subdir)
推荐阅读
- javascript - IE Uncaught ReferenceError: jQ is not defined, but works in Chrome
- c# - C# 异步任务不会继续
- python - 如何使用 x/y/r 像素坐标裁剪图像?
- django - 使用 Django ORM 对它们的 FK 进行额外过滤,使用由多个列连接的不同模型的值更新对象
- typo3 - staticfilecache 不会在 TYPO3 8 中加载
- regex - Robots.txt 禁用查询参数扫描异常
- java - 为什么我的 OAuth2 不能与 Spring Boot 一起使用?
- php - Xampp - 从外部 IP 访问
- javascript - 异步函数对同一对象的并发写访问会导致无效值吗?
- csv - 无法在 spark sql 中检索日期读取 csv