【发布时间】:2014-11-06 19:16:29
【问题描述】:
我想在 CMake 中指定一个相对于当前目录的路径,但无法找到解决方案。
我的项目位于如下路径:
C:/Projects/ProjectA/CMakeLists.txt
我想使用 set() 命令指定以下目录的相对路径的名称
C:/External/Library
也就是说,那个CMake的翻译是什么
../../External/Library?
谢谢,
【问题讨论】:
标签: cmake
我想在 CMake 中指定一个相对于当前目录的路径,但无法找到解决方案。
我的项目位于如下路径:
C:/Projects/ProjectA/CMakeLists.txt
我想使用 set() 命令指定以下目录的相对路径的名称
C:/External/Library
也就是说,那个CMake的翻译是什么
../../External/Library?
谢谢,
【问题讨论】:
标签: cmake
几乎完全相同,只是您允许 CMake 在另一个位置运行以进行“树外”构建。您可以通过指定相对于${CMAKE_CURRENT_SOURCE_DIR} 的路径来执行此操作,该路径是包含当前 CMakeLists.txt 文件的目录。
${CMAKE_CURRENT_SOURCE_DIR}/../../External/Library
但是,您可能需要重新考虑,而是使用 FIND_LIBRARY 和 FIND_FILE 命令来搜索一组预定义的位置,这样您图书馆的用户就不必保持相同的相对结构。
【讨论】:
SET(VTK_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE PATH "VTK dir" FORCE)