- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的项目由许多组件组成。每一个都依赖于一个或多个 *.hpp
从 *.lcm
生成的文件使用外部工具。我希望能够指定一个列表,其中 *.lcm
每个组件都需要文件,并在需要时让 CMake 自动进行编译,也许使用一个漂亮的小宏指定:
REQUIRED_LCMS (the_component x.lcm z.lcm)
*.lcm
,我认为以下应该有效:
ADD_CUSTOM_COMMAND (OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${lcm_basename}.hpp
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${lcm}
COMMAND "lcm-gen"
ARGS "--lazy --cpp ${CMAKE_CURRENT_SOURCE_DIR}/${lcm}"
COMMENT " ${lcm} -> ${lcm_basename}.hpp")
REQUIRED_LCMS
中应该包含什么.
ADD_CUSTOM_COMMAND
和一个
ADD_CUSTOM_TARGET
?
最佳答案
通过执行以下操作,我设法在没有细粒度(即 per-lcm 文件依赖项)的情况下使其正常工作:
SET (LCM_MESSAGES x.lcm
y.lcm
z.lcm)
SET (LCM_COMPILED_MESSAGES)
FOREACH (_file ${LCM_MESSAGES})
GET_FILENAME_COMPONENT (_filewe ${_file} NAME_WE)
STRING (TOUPPER ${_filewe} _FILEWE)
SET (_filehpp ${_filewe}.hpp)
SET (_filehpp_output ${CMAKE_CURRENT_BINARY_DIR}/${_filehpp})
ADD_CUSTOM_COMMAND (OUTPUT ${_filehpp_output}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_file}
COMMAND lcm-gen
ARGS --lazy --cpp ${CMAKE_CURRENT_SOURCE_DIR}/${_file})
LIST (APPEND LCM_COMPILED_MESSAGES ${_filehpp_output})
ENDFOREACH ()
ADD_CUSTOM_TARGET (LCM_MESSAGES DEPENDS ${LCM_COMPILED_MESSAGES})
ADD_DEPENDENCIES (the_component LCM_MESSAGES)
关于cmake - 使用 CMake 的 ADD_CUSTOM_COMMAND 进行预编译处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8109238/
我遇到的问题是 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 工具链中。我的解决方案基于此处
我是一名优秀的程序员,十分优秀!