2013-11-15 48 views
1

繼擴大變量後,運行shell腳本,我遇到CMake的:在它

  1. 我有一個名爲my_script.sh.IN一個shell腳本的問題。我使用configure_file來擴展腳本,從而創建my_script.sh。
  2. 然後我需要運行my_script.sh。爲此,我使用execute_process()。
  3. 我需要CMake時間所有這一切。

問題是,當我運行「cmake」時,系統抱怨他找不到「my_script.sh」。我認爲execute_process依賴關係似乎是在configure_file()函數運行之前計算的。

當我第二次運行「cmake」命令時,一切都很順利。有誰知道我怎麼能在execute_process之前執行configure_file?

+0

爲什麼需要在cmake時間完成?在編譯時用'add_custom_target' /'add_custom_command'和依賴於'my_script.sh'文件來完成它會容易得多。 – Guillaume

回答

0

你應該嘗試類似的東西:

set_source_files_properties("pat/to/my_script.sh" PROPERTIES GENERATED true) 

它告訴cmake的不要太早檢查文件的existency。您可能必須使用包含生成的外殼腳本路徑的變量,而不是直接輸入其路徑。

但是你的問題更可能與被執行的cmake命令的順序有關。您應該確保configure_file()在CMake解析器的execute_process()之前運行。