我正在编写一个.cmake文件,该文件处理一堆东西,并且需要访问.cmake文件固定相对路径中的可执行文件。在本例中,组织化如下所示:
CMakeLists.txt
- cmake
- tools.cmake
- bin
- exectuable.exe
问题是使用include
包含tools.cmake
,因此,CMAKE_CURRENT_SOURCE_DIR
返回CMakeLists.txt
的目录。我不想对路径进行硬编码的原因是我想将tools.cmake
和二进制文件放在单独的 GIT 存储库中,并且我不想强迫用户将其放置在某个特定文件夹中。
我现在能想到的唯一解决方案是提供一个函数来设置和存储tools.cmake
路径。这并不优雅。
在这里回答:https://stackoverflow.com/a/12854575/2532768
CMAKE_JUCE_TOOLS_PATH
不会返回函数内的正确路径或tools.cmake
宏,但它会在任何函数外部返回正确的路径。所以我们可以
set(PATH_TO_TOOLS_CMAKE ${CMAKE_JUCE_TOOLS_PATH})
在可以在变量中访问路径时存储路径,而不是在函数和宏中访问路径PATH_TO_TOOLS_CMAKE