作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
GCCFilter是一个简洁的 perl 脚本,它允许为 GCC 的输出着色,从而使调试更有趣,更重要的是,更快。
您可以通过调用将 GCCFilter 与 CMake 生成的 Makefile 一起使用
gccfilter -a -c make
gccfilter
的 CMake 模块如果编译器是
gcc
, 检查是否,比如说
COLOR_CXX
已设置(到这里很容易),然后告诉 CMake 替换所有对
gcc
的调用通过
gccfilter -a -c gcc
.
CMAKE_CXX_COMPILER
,但更改此选项将不允许 CMake 找到正确的包含路径等。在
project()
之后我们可能会更改一些变量吗?在每次调用
gcc
之前添加前缀的命令?
最佳答案
你可以让 CMake 使用 gccfilter
通过指向 RULE_LAUNCH_COMPILE属性到调用 gccfilter
的包装脚本与所需的选项。
创建一个名为 gccfilter_wrap
的可执行 shell 脚本在最外层的 CMake 项目目录中,包含以下内容:
#!/bin/sh
exec gccfilter -a -c "$@"
CMakeLists.txt
,设置
RULE_LAUNCH_COMPILE
添加目标之前的目录属性:
project (HelloWorld)
set_directory_properties(PROPERTIES RULE_LAUNCH_COMPILE
"${PROJECT_SOURCE_DIR}/gccfilter_wrap")
add_executable(HelloWorld HelloWorld.cpp)
gccfilter_wrap
脚本。或者
RULE_LAUNCH_COMPILE
属性也可以设置为目标属性或全局属性。
RULE_LAUNCH_COMPILE
属性仅适用于基于 Makefile 的 CMake 生成器。
# GCCFilter, if appliciable
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCPP)
option(COLOR_GCC "Use GCCFilter to color compiler output messages" ON)
set(COLOR_GCC_OPTIONS "-c -r -w" CACHE STRING "Arguments that are passed to gccfilter when output coloring is switchend on. Defaults to -c -r -w.")
if(COLOR_GCC)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${PROJECT_SOURCE_DIR}/cmake/gccfilter ${COLOR_GCC_OPTIONS}")
endif()
endif()
关于gcc - 让 CMake 使用 gccfilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14399984/
GCCFilter是一个简洁的 perl 脚本,它允许为 GCC 的输出着色,从而使调试更有趣,更重要的是,更快。 您可以通过调用将 GCCFilter 与 CMake 生成的 Makefile 一起
我是一名优秀的程序员,十分优秀!