如何要求 cmake 清理 Msvc 构建的发布配置
我有不同编译器(msvc-2008、mingw-gcc)的构建树,是用 CMake 生成的:
\---buildroot
\---win32
+---mingw-gcc-4.4.0
| +---Debug
| \---Release
\---msvc-2008
+---Debug_Dynamic
+---Debug_Static
+---Release_Dynamic
\---Release_Static
我想用一个脚本构建所有配置。我编写了简单的 python 包装器,它遍历层次结构并调用 cmake --build。对于 msvc 构建,我需要为构建、清理和安装选择正确的配置
,我阅读文档,并找到参数 --config
。
所以最终 cmake 命令看起来像:
cmake --build win32\mingw-gcc-4.4.0\Debug
cmake --build win32\mingw-gcc-4.4.0\Release
cmake --build win32\msvc-2008\Debug_Dynamic --config Debug
cmake --build win32\msvc-2008\Debug_Static --config Debug
cmake --build win32\msvc-2008\Release_Dynamic --config Release
cmake --build win32\msvc-2008\Release_Static --config Release
这里 cmake 命令用于 clean 所有目标:
cmake --build win32\mingw-gcc-4.4.0\Debug --target clean
cmake --build win32\mingw-gcc-4.4.0\Release --target clean
cmake --build win32\msvc-2008\Debug_Dynamic --config Debug --target clean
cmake --build win32\msvc-2008\Debug_Static --config Debug --target clean
cmake --build win32\msvc-2008\Release_Dynamic --config Release --target clean
cmake --build win32\msvc-2008\Release_Static --config Release --target clean
所以我找到了我的问题的答案。
I have build tree for different compilers (msvc-2008, mingw-gcc), generated with CMake:
\---buildroot
\---win32
+---mingw-gcc-4.4.0
| +---Debug
| \---Release
\---msvc-2008
+---Debug_Dynamic
+---Debug_Static
+---Release_Dynamic
\---Release_Static
And i want to build all configurations with one script. I wrote simple python wrapper, which iterates over hierarchy and calls cmake --build. For msvc builds i need to select proper configuration for building, cleaning and installing
I read documentation, and find parameter --config
.
So final cmake command looks like:
cmake --build win32\mingw-gcc-4.4.0\Debug
cmake --build win32\mingw-gcc-4.4.0\Release
cmake --build win32\msvc-2008\Debug_Dynamic --config Debug
cmake --build win32\msvc-2008\Debug_Static --config Debug
cmake --build win32\msvc-2008\Release_Dynamic --config Release
cmake --build win32\msvc-2008\Release_Static --config Release
Here cmake commands for clean all targets:
cmake --build win32\mingw-gcc-4.4.0\Debug --target clean
cmake --build win32\mingw-gcc-4.4.0\Release --target clean
cmake --build win32\msvc-2008\Debug_Dynamic --config Debug --target clean
cmake --build win32\msvc-2008\Debug_Static --config Debug --target clean
cmake --build win32\msvc-2008\Release_Dynamic --config Release --target clean
cmake --build win32\msvc-2008\Release_Static --config Release --target clean
So i found answer on my question.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
免责声明:我必须承认我对 Cmake 的 --build 选项了解不多。但是,cmake 还会生成“package”和“install”目标,也许您可以使用 cmake --build 的 --target 选项来指定它们。
否则,您将需要使用 devenv 或 msbuild 命令行选项来指定它们。如果没有 cmake,这将类似于
我猜你可以使用 '--' 将 msbuild/devenv 之后的所有内容传递给 cmake
Disclaimer: I must admit that I do not know much about the --build option for Cmake. However, cmake also generates a 'package' and 'install' target, perhaps you can specify those with the --target option with cmake --build.
Otherwise, you will need to specify those using devenv or msbuild command line options. Without cmake this woule be something like
I guess you can pass everything after msbuild/devenv through to cmake with '--'