2015-04-06 78 views
0

有沒有辦法強制CMAKE選擇來源形式當前生成文件夾如果文件是可用的,否則從源目錄?如何從構建目錄中選擇源代碼(如果可用)否則使用源代碼目錄?

我的項目結構如下:

ROOT/lib/a.cpp 
    /BUILD 

build文件夾是我跑cmake ..。我有一個可選的自定義目標,它會生成一個源文件BUILD/lib/a.cppcmake generate

我想在ROOT/lib中建立一個庫,它會自動拾取生成的源文件BUILD/lib/a.cpp,否則使用ROOT/lib/a.cpp

該庫通過以下方式與ROOT/lib/CMakeLists.txt生成:

add_library(test a.cpp) 

(省略了自定義規則)。

回答

0

你可以使用的完整路徑生成的文件:

add_library(test ${CMAKE_CURRENT_BINARY_DIR}/a.cpp) 

,如果文件不存在,您的自定義指令被執行,以生成它。 請確保生成的文件由add_custom_command()生成,而不是由add_custom_target()生成。