此问题的后续问题:StackBlitz
我编写了一个自定义目标,因此每次我在项目中编译某些东西时它将运行。现在,按照上面的问题中的要求,我调用了一个明确的目标,此自定义命令不再执行。 代码:
const service = new TestService(); service.property = {...};
service.property.keyOne // works
service.property.keyTwo // works
我已经尝试删除add_custom_target(
custom_command
ALL
DEPENDS hash.h
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "[INFO] CMake generating special *.h file from custom command magic."
)
指令,但是它没有任何改变。
忘记添加:我正在使用从源代码编译的ALL
。
答案 0 :(得分:0)
很抱歉稍后提供答案,但是工作太疯狂了。因此,在我阅读@ Th.Thielemann和@squareskittles的评论后,我重新阅读了cmake文档并找到了解决方案。以下代码是在cmake/3.0.0
下编写的:
add_custom_command(
OUTPUT some_header.h
COMMAND cat ${BISON_HEADER} other_header.h | awk -f some_wak_file.awk > some_header.h
DEPENDS ${BISON_HEADER}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_target(
custom_command
ALL
DEPENDS some_header.h
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "[INFO] CMake generating special *.h file from custom command magic."
)
在再次阅读cmake/3.13
的文档后,很明显可以用更简单的形式编写它:
add_custom_target(
timex_utilities_hash
ALL
COMMAND cat ${BISON_HEADER} other_header.h | awk -f some_wak_file.awk > some_header.h
DEPENDS ${BISON_HEADER}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
再次感谢您@Th。 Thielemann和@squareskittles为患者和inut再次检查!