【问题标题】:Console build with post-build events in Visual Studio在 Visual Studio 中使用构建后事件构建控制台
【发布时间】:2017-03-28 09:57:28
【问题描述】:

我正在使用 CMake。那就是cmake的“安装”指令:

install(TARGETS MainProject
        RUNTIME DESTINATION "${PROJECT_SOURCE_DIR}/Install/bin"
        ARCHIVE DESTINATION "${PROJECT_SOURCE_DIR}/Install/lib"
        LIBRARY DESTINATION "${PROJECT_SOURCE_DIR}/Install/bin"
)

在 Windows CMake 中创建与项目“BUILD_ALL”相关的项目“INSTALL”,该项目与CMakeLists.txt 文件中列出的所有实际项目相关。 项目“安装”具有构建后事件,执行“安装”操作。

但是当我使用devenv INSTALL.vcxproj /rebuild "Release|x64" 运行它时,不会执行构建后事件。

是否存在从控制台执行 Visual Studio 构建后事件的方法?

(我需要控制台,因为必须从脚本运行构建)

【问题讨论】:

  • 构建后事件可能有一个条件,我不知道还有什么可以阻止它运行。在文本编辑器中打开 INSTALL.vcxproj 并查看构建后事件的样子。也可以使用命令行构建,你并不需要 devenv,只需 msbuild INSTALL.vcxproj 就可以了。
  • 我做到了。构建后事件看起来像"C:\Program Files (x86)\CMake\bin\cmake.exe" -DBUILD_TYPE=Release -P cmake_install.cmake,如果我从控制台运行它,它就可以工作。因此,这种解决方法会有所帮助。但我希望它在构建的一部分执行,它应该在哪里。
  • cmake --build . --target INSTALL --config Release 工作吗?
  • 您显示的只是构建后命令,而不是任何可能的条件,例如 项目或周围的
  • @Florian,是的,它有效。谢谢!

标签: windows visual-studio cmake post-build-event


【解决方案1】:

把我的评论变成答案

您可以使用 CMake 的 --build command line option(它确实抽象了 make/msbuild/ninja... 调用),例如:

cmake --build . --target INSTALL --config Release

【讨论】:

    猜你喜欢
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 2016-05-21
    • 2012-10-31
    • 2023-03-29
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    相关资源
    最近更新 更多