我想設置我的CMakeLists.txt文件,以便它可以生成vim插件clang_complete所需的.clang_complete文件。CMake和clang_complete
通常,您可以通過向編譯器提供的python腳本傳遞一個參數並將所有參數傳遞給編譯來完成此操作。請注意,我正在省略實際目錄cc_args.py以節省空間。
cc_args.py gcc test.c -o test -I~/IncludeDirs/
您還可以在化妝階段做到這一點...
make CC='cc_args.py gcc' CXX='cc_args.py g++'
不過,我不確定如何(如果可能)一個的CMakeLists.txt文件中設置此。每次我想要設置clang_complete時,都必須輸入它,這真的很煩人。之所以我想這樣做,是因爲我有多個項目使用自定義腳本來構建CMakeLists.txt文件,因此必須爲每個腳本編寫腳本或手動放置一個通用腳本,這是步驟I我想避免。
我已經嘗試了一些迄今爲止已經出現錯誤的東西。
我試着將CMAKE_CC_COMPILER和CMAKE_CXX_COMPILER設置爲與第一個類似的行,即「cc_args.py g ++」。這裏出現的錯誤說它無法找到編譯器(這是可以理解的)。
接下來我嘗試的是將編譯器變量設置爲cc_args.py,併爲實際編譯器添加一個標誌:可以說,可怕的是失敗。 CMake說它不能編譯測試程序(考慮到腳本不是編譯器,並且測試不使用我設置的標誌,我對此並不感到驚訝)。
因此,如果沒有編寫任何需要四處移動的外部腳本,是否有人可以想到一種可以做到這一點的方法?
嗯...我會給它一個鏡頭,看看我能做些什麼。我不知道file()函數是否存在,以便可以解決我的問題。 – AdmiralJonB 2013-02-21 13:40:06
使用'file()'可以工作,但是你必須在調用'project()'之前完成它,並設置你的'CMAKE_CXX_COMPILER_INIT'變量指向它。在CMake中設置後,您無法更改編譯器。 – Angew 2013-02-21 14:06:13
啊,這可以解釋我在編譯器中遇到的另一個問題。我有一個選項來設置編譯器,這實際上不會改變編譯器。 – AdmiralJonB 2013-02-21 14:27:05