【发布时间】:2020-09-20 01:53:25
【问题描述】:
我有自定义命令可以一次生成多个标题。
使用 cmake 生成的 make/ninja 文件一切正常。
但是如果我通过cmake -GXCode生成Xcode项目,
然后而不是一次 gen.sh 被调用 10 次
不仅如此,每次构建都会调用它,
即使生成文件的时间戳比 gen_in.txt 更年轻。
我该如何解决这个问题?
project(multi_output)
cmake_minimum_required(VERSION 3.17)
set(MANY_HEADERS test0.h test1.h test2.h test3.h test4.h test5.h test6.h test7.h test8.h test9.h)
add_custom_command(
OUTPUT ${MANY_HEADERS}
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/gen.sh
DEPENDS gen_in.txt
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
add_executable(foo main.cpp ${MANY_HEADERS})
gen.sh 在哪里
#!/bin/sh
echo "gen.sh: start"
sleep 1
echo "gen.sh: hard work done"
for i in `seq 0 9`; do
cat gen_in.txt > test$i.h
sed -i bak s/placeholder/$i/g test$i.h
done
【问题讨论】: