1
假設我有這樣的:如何在函數中獲取當前包含的cmake文件的路徑?
#root/CMakeLists.txt
include(folder/file.cmake)
foo()
和
#root/folder/file.cmake
function(foo)
message(${SOME_SPECIAL_CMAKE_VARIABLE})
endfunction()
我想path/to/root/folder
打印。 我試過這兩個,但他們沒有得到我想要的:CMAKE_CURRENT_LIST_DIR
或CMAKE_CURRENT_SOURCE_DIR
。
那麼是否有一個cmake變量可以讓我得到我想要的?
或者有沒有辦法讓file.cmake
的完整路徑,所以我可以至少得到它的路徑?
爲什麼'CMAKE_CURRENT_LIST_DIR'不適合您的需求?對於足夠新鮮的CMake(> = 2.8.3),它包含所需的信息。 – user3159253
@ user3159253 hmmm在'''file.cmake'''裏面實際使用它的函數返回了錯誤的結果 - 但是當我打印它時就像我在這裏所說的那樣工作正常。所以也許我應該在第一次包含'''file.cmake''時將它緩存在某個變量中,然後使用函數中的緩存值? – onqtam
@onqtam你應該真的[編輯]這個問題,以清楚你指的是「在一個文件中定義的函數內」而不是「在一個文件內」。他們是完全不同的東西。無論如何,將該值存儲在一個變量中,並且使用它幾乎就是CMake自己在自己的構建設置中所做的。 – Angew