如果可用,如何从build dir中选择源代码使用source dir?

时间:2015-04-06 22:26:54

标签: c++ build cmake

有没有办法强制CMAKE选择源形成当前构建文件夹,如果文件可用,否则从源目录中获取它?

我的项目有以下结构:

ROOT/lib/a.cpp
    /BUILD

BUILD文件夹是我运行cmake ..的地方。我有一个可选的自定义目标,可生成源BUILD/lib/a.cpp文件:cmake generate

我想在ROOT/lib中构建一个库,它会自动获取生成的源文件BUILD/lib/a.cpp,以防它存在,否则请使用ROOT/lib/a.cpp

使用ROOT/lib/CMakeLists.txt以下列方式生成库:

add_library(test a.cpp)

(省略了自定义规则)。

1 个答案:

答案 0 :(得分:0)

您可以使用生成文件的完整路径:

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

如果文件不存在,将执行您的自定义命令以生成它。 确保生成的文件由add_custom_command()而不是add_custom_target()生成。