- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想添加一个测试目标,该目标依赖于正在成功构建的整个项目,而无需重新指定对所有库或可执行文件的依赖关系。
我会在 make 中这样写:
all: foo bar
foo: ...
bar: ...
test: all
test.sh
add_library(foo ...)
add_executable(bar ...)
add_custom_target(test test.sh
DEPENDS all
)
最佳答案
从 2.8 版开始,CMake 不提供包含所有目标列表的变量。您能做的最好的事情就是覆盖内置命令 add_library
和 add_executable
使用自定义宏调用内置宏并跟踪变量中所有定义的目标。
您甚至可以为自定义宏使用相同的名称。这样您就不必对所有现有的 add_library
进行更改。和 add_executable
调用。如果您覆盖其中任何一个,原始的内置命令会以下划线为前缀:
set (_allTargets "")
macro(add_library _target)
_add_library (${_target} ${ARGN})
list (APPEND _allTargets ${_target})
endmacro()
macro(add_executable _target)
_add_executable (${_target} ${ARGN})
list (APPEND _allTargets ${_target})
endmacro()
add_library(liba STATIC liba.cpp)
add_executable(main liba main.cpp)
add_custom_target(test "${CMAKE_CURRENT_SOURCE_DIR}/test.sh")
add_dependencies(test ${_allTargets})
DEPENDS
将目标依赖项添加到自定义目标。选项。
DEPENDS
只能引用现有文件或使用
add_custom_command(...)
生成的文件在同一个目录中。要添加目标依赖项,请使用
add_dependencies
命令代替。
关于CMake add_custom_target 取决于正在构建的整个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6372150/
我想添加一个测试目标,该目标依赖于正在成功构建的整个项目,而无需重新指定对所有库或可执行文件的依赖关系。 我会在 make 中这样写: all: foo bar foo: ... bar: ... t
我写了一个这样的cmake命令: add_custom_target(testar COMMAND clearmake -C gnu ${CMD_ARGS}) CMD_AR
根据the documentation , add_custom_target()创建一个“始终认为已过期”的目标。但是,文档 also says那add_dependencies()可以在顶级目标之
我正在使用 target_link_libraries 对依赖项进行建模,就像在 this 博客文章中所做的那样。 target_link_libraries(Foo LibraryA
这里是重现问题的最小 CMakeLists.txt: cmake_minimum_required(VERSION 3.9 FATAL_ERROR) set(BUILD_INFO_CPP "${CMA
我试图说服 cmake 添加一个自定义目标,该目标在 Visual Studio 上构建一个预编译 header (注意:请不要建议我改用自定义构建步骤,我特别需要一个构建目标 它构建了一个预编译头文
我有一段运行 add_custom_target() 的 cmake,运行大约需要一分钟。在 cmake 上运行此命令时,只有在完成完整命令后才会打印标准输出。 -- Build files have
是否可以从 add_custom_target 或 add_custom_command 中调用 CMake 函数? 我知道我可以将 CMake 函数移动到 Python(或其他)脚本并从 add_c
我在模块的 CMakeLists.txt 中创建了一些自定义目标执行这是根据模块的 build.gradle 中的标准模板引用的具有以下内容: externalNativeBuild { cm
我是一名优秀的程序员,十分优秀!