- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要过滤某个目录下的 *.h 和 *.cpp 文件,然后使用一些脚本对其进行格式化,因此我编写了以下代码:
add_custom_command(
DEPENDS ${GENERATED_STUFF}
COMMAND find "${OUTPUT_DIR}/include/SOME_PATH" -iname *.h -o -iname *.cpp | xargs /net/binlib/lib/clang/clang-format-3.9.0 -i
OUTPUT ?????
)
但是,此命令只是修改现有文件,因此不会生成新文件输出。在这种情况下,如何定义输出?有没有其他方法可以解决这个需求?我只希望仅在文件更改时重新执行此命令。
最佳答案
您可以创建“时间戳”文件。构建系统将仅使用它来提取时间戳并将其与DEPENDS 下的文件进行比较。
add_custom_command(
DEPENDS ${GENERATED_STUFF}
COMMAND find "${OUTPUT_DIR}/include/exchange_protocol" -iname *.h -o -iname *.cpp | xargs /net/binlib/lib/clang/clang-format-3.9.0 -i
COMMAND ${CMAKE_COMMAND} -E touch my_file.stamp
OUTPUT my_file.stamp
)
要使您的 add_custom_command
起作用,您需要使用 add_custom_target
,这取决于给定的文件。
关于c++ - CMake add_custom_command 没有输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43347087/
我遇到的问题是 add_custom_command 总是过时的,因此在每次构建时都会运行。自定义命令运行作为同一项目目标的工具来生成另一个目标使用的文件: add_executable(Genera
我有一个关于 CMake 的问题,这似乎在这里很常见,但似乎没有一个答案能解决我的问题。 在 details子目录,有一个CMakeLists.txt其中包含: add_custom_command(
我在为add_custom_command苦苦挣扎。让我详细解释这个问题。 我有这些cxx文件和hxx文件集。我对它们每个运行一个perl脚本,以生成某种类型的翻译文件。该命令看起来像 perl tr
也许这是不可能的,我误读了 cmake 3.2 documentation ,但我虽然创建一个自定义命令会在 Makefile 中创建一个自定义“目标”,以便我可以通过调用输出文件的名称来构建目标。
我正在尝试使用 add_custom_command在构建期间生成文件。该命令似乎从未运行过,所以我制作了这个测试文件。 cmake_minimum_required( VERSION 2.6 ) a
查看最新状态更新 初始条件 代码生成器以一组输入文件作为参数生成一组c++源代码 输入文件可能包括其他输入文件 已经解决了获取输出文件列表,解析输入codegen文件以获得完整的codegen输入列表
我正在尝试运行 gperf来自 cmake文件。 我创建了一个非常小的 CMakeLists.txt以下。 当我运行它时 $ cmake . $ make 它不会创建 example.hpp文件 以下
我目前正在尝试使用两个可执行文件设置一个 CMake 项目,其中一个是用于为另一个生成代码的简单实用程序。 CMakeLists.txt 的相关位: add_executable(lua2c lua2
使用 Cmake v3.8,我需要我的自定义命令仅在生成新构建的 .hex、.map 和 .elf 文件后运行。但是,在生成所有 *.hex、*.map 和 *.elf 文件后,该命令并未真正运行。这
我有一个包含许多子项目的 CMake 项目。 他们每个人都可以使用我提供的函数来生成一个包含某些信息的小文本文件(通过调用 add_custom_command)。 在最后一步,我想将所有这些文件合并
对于我的项目,我想运行一个命令来生成一个已安装的文件(换句话说,生成的文件只是一个数据文件,而不是源代码)。 我目前在我的 CMakeLists.txt 中有以下内容 add_custom_comma
我有一个工具可以生成一些 cpp 和头文件,并想用 ADD_CUSTOM_COMMAND 添加它在构建期间自动执行它并将文件添加到项目中。问题是(大部分)输出文件的名称事先不知道。我如何添加这些文件?
我想要一个 Cmake 函数来将一些二进制文件复制到特定位置。为此,我有以下函数定义: function ( collect_binaries TARGET_NAME DEST_DIR ) se
出于多种原因,我必须通过自定义命令手动生成静态库。 但是,似乎自定义命令仅在目标明确请求其输出文件时才执行。 如果我尝试将生成的静态库与 target_link_libraries 链接起来, CMa
我需要过滤某个目录下的 *.h 和 *.cpp 文件,然后使用一些脚本对其进行格式化,因此我编写了以下代码: add_custom_command( DEPENDS ${GENERATED_S
我有一些 protobuf 文件,它们位于我的 cmake 项目之外的目录中(它们位于 旁边 ${CMAKE_SOURCE_DIR} 的根目录中,我们的主要 CMakeLists .txt 文件是)。
我正在尝试向我的 添加一些自定义构建命令vc2010 项目使用 ADD_CUSTOM_COMMAND .但: [1] 我只是发现 CMAKE 会自动插入比我预期的多得多的代码。 例如,我希望命令完全是
我正在尝试将 cmake 生成的所有二进制文件复制到特定目录。我不想使用 EXECUTABLE_OUTPUT_PATH,将它们保留在构建树中使开发更容易。 所以我使用 add_custom_comma
我想创建一个自定义命令,使用 Apple 的 libtool 将所有静态库合并到一个胖静态库中。构建期间的命令。我正在使用 Xcode 生成器和 CMake 3.19.1。我的脚本是这样的: set(
我遇到了自定义目标(使用 add_custom_target 创建)的 add_custom_command 问题。 我的总体想法是将静态代码分析工具合并到 cmake 工具链中。我的解决方案基于此处
我是一名优秀的程序员,十分优秀!