【发布时间】:2017-10-05 19:26:08
【问题描述】:
我的目录结构如下:
.
├── CMakeLists.txt
├── generator
│ ├── CMakeLists.txt
│ └── main.cpp
├── include
└── src
├── CMakeLists.txt
└── mylib.cpp
我想构建generator,然后使用生成器生成将用于构建mylib 的源文件。我试过这个:
生成器/CMakeLists.txt:
add_executable(gen main.cpp)
add_custom_command(
OUTPUT
${CMAKE_BINARY_DIR}/generated.cpp
DEPENDS
gen
COMMAND
${CMAKE_BINARY_DIR}/gen -d /tmp
VERBATIM
)
src/CMakeLists.txt:
add_library(py-cppast
${CMAKE_BINARY_DIR}/generated.cpp
mylib.cpp)
CMakeLists.txt:
cmake_minimum_required(VERSION 3.1.2)
project(my-project)
add_subdirectory(generator)
add_subdirectory(src)
但是,该命令未执行。相反,我只是得到错误:
src/CMakeLists.txt:2 (add_library) 处的 CMake 错误: 找不到源文件: /home/....(cmake 二进制目录)..../generated.cpp 尝试过扩展 .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx如何告诉 cmake 执行我正在使用它构建的程序?这甚至可以在单个构建中实现吗?
【问题讨论】: