【发布时间】: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