【问题标题】:How to pick source from build dir if available otherwise use source dir?如果可用,如何从构建目录中选择源代码,否则使用源目录?
【发布时间】:2015-05-04 18:29:43
【问题描述】:

如果文件可用,是否有办法强制 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)

(自定义规则省略)。

【问题讨论】:

    标签: c++ build cmake


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-07
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多