Windows Visual Studio中具有生成后事件的控制台生成
我正在使用CMake。这就是cmake“安装”说明:Windows Visual Studio中具有生成后事件的控制台生成,windows,visual-studio,cmake,post-build-event,Windows,Visual Studio,Cmake,Post Build Event,我正在使用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" )
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生成后事件的方法
(我需要控制台,因为构建必须从脚本运行)将我的评论转换为答案
您可以使用CMake的--build
(它将make
/msbuild
/忍者
..调用抽象为以下内容):
cmake --build . --target INSTALL --config Release
生成后事件可能有一个条件,我不知道还有什么可以阻止它运行。在文本编辑器中打开INSTALL.vcxproj,查看生成后事件的外观。另外,要使用命令行进行构建,您实际上不需要devenv,只需
msbuild INSTALL.vcxproj
就可以了。我做到了。生成后事件类似于“C:\Program Files(x86)\CMake\bin\CMake.exe”-DBUILD\u TYPE=Release-P CMake\u install.CMake
,如果我从控制台运行它,它就会工作。因此,这种变通方法会有所帮助。但我希望它在构建的一部分执行,也就是它应该在的地方。Doescmake--build--目标安装--config Release
work?您显示的只是后期生成命令,而不是任何可能的条件,例如,项目或周围@Florian,是的,它可以工作。非常感谢。