为什么CMake不尊重LIBRARY_PATH和CPATH

时间:2018-05-15 09:01:53

标签: linux cmake

我在使用模块的HPC系统上使用CMake。这些模块通常会设置LIBRARY_PATHCPATH,因此您可以只添加标题并链接到库,而无需其他-L-I

然而,当使用CMake时,CMake必须找到这些库。我希望,LIBRARY_PATHCPATH由CMake自动考虑并在例如CMAKE_SYSTEM_LIBRARY_PATHCMAKE_SYSTEM_INCLUDE_PATH,但他们不是。

有没有理由说明为什么(没有)这样做?

现在手动(稍后由CMake自动)将LIBRARY_PATH追加到CMAKE_SYSTEM_LIBRARY_PATHCPATH追加到CMAKE_SYSTEM_INCLUDE_PATH不是一个好主意吗?

1 个答案:

答案 0 :(得分:1)

  

有没有理由说明为什么(没有)这样做?

     

LIBRARY_PATH追加到CMAKE_SYSTEM_LIBRARY_PATHCPATH追加到CMAKE_SYSTEM_INCLUDE_PATH是不是一个好主意(现在手动,后来由CMake自动添加)?< / p>

还有另一种观点认为,构建依赖于环境变量会导致构建不可靠。 From GNU Make manual

  

makefile依赖于在其控制之外设置的环境变量的功能是不明智的,因为这会导致不同的用户从同一个makefile获得不同的结果。这违背了大多数makefile的整个目的。