在 CMAKE sub_directory CMakeLists.txt 文件中更改编译器

sra*_*mij 6 cmake

我想在作为更大项目的一部分编译的内部子目录中更改 CMAKE_C_COMPILER 和 CMAKE_CXX_COMPILER。

从 GNU 更改为 intel 编译器。然而,在这个目录之外没有什么需要改变的。

那可能吗?

谢谢

sak*_*kra 7

而不是使用add_subdirectory考虑使子目录成为一个独立的 CMake 项目,它可以独立于更大的项目进行配置和构建。然后,您可以使用ExternalProject_Add命令将该子目录作为外部项目添加到更大的项目中。


Ser*_*lov 1

这取决于您如何组织项目。如果整个项目不是单个 CMakeLists.txt,而是每个子文件夹一个 - 只需尝试在 project() 定义之前更改 CMAKE_C_COMPILER 即可。它应该只影响这个项目定义。

  • 看起来你是对的。我已经在最新的 2.8.x 上尝试过了,但它不再可能了 - 我在配置中有无限循环(在 2.6.x 之前工作)。这里描述了同样的问题http://www.itk.org/Bug/bug_view_page.php?bug_id=8193&history=1 (2认同)
  • 我正是这么做的,CMake 3.6.2 进入了无限循环。 (2认同)