在CMakeLists.txt
中,有沒有辦法知道文件是從終端還是通過gui(某種形式,例如ccmake
或cmake-gui
)執行?無論我是在運行cmake
還是ccmake
,CMAKE_COMMAND
和CMAKE_EDIT_COMMAND
都被填充。確定cmake是從終端還是執行
我正在尋找variables,這兩個似乎是最有前途的。我迷戀於colorizing cmake output,許多精彩的答案都有它們的缺點。也就是說,我可以得到:
- 它在終端中按預期工作,但在
ccmake
中有轉義序列。 - 它按照預期在終端中工作,但
ccmake
終端是通過彩色輸出(LOL)覆蓋。
只是好奇,如果有一種方法來確定這在CMakeLists.txt
。有腳本模式的變量(-P
)似乎可能有用,但我想首先需要知道哪個可執行文件(cmake
或ccmake
)首先稱爲我的CMakeLists.txt
。
據我所知,CMake中沒有辦法區分cmake和cmake-gui。你的用例是什麼?無論如何,它應該表現得一樣,其他一切都會讓人感到驚訝。 – usr1234567
是的,我不認爲有可能區分。用例非常簡短,我真的不能想到爲什麼有人會想要這樣的另一個原因。我的庫能夠爲用戶編譯其外部依賴項,但是**不能**執行安裝的最後步驟(將文件添加到需要提升權限的位置)。我添加了彩色輸出以引起注意(因爲我的應用程序無法在沒有用戶執行額外步驟的情況下運行)。但是GUI不喜歡我的彩色輸出x0 – sjm324
您的終端應該處理彩色輸出。可能你直接將它添加到輸出中,這是你問題的真正原因。 – usr1234567