add_custom_target(NSISTest_Preprocess SOURCES precompress.nsi)
add_custom_command(TARGET NSISTest_Preprocess POST_BUILD
COMMAND "${NSIS_PATH}" "...\\precompress.nsi")
安装程序的输出名称在 nsi 脚本中定义。现在我想简单地运行安装程序。如何指定在 Visual Studio 2010 中使用“调试->开始调试”或“调试->开始但不调试”时应该发生的情况?
我尝试过创建启动器.cmake脚本,它生成 .user 文件,但我认为它只适用于add_executable
.
我也尝试过目标属性ARCHIVE_OUTPUT_NAME
, LIBRARY_OUTPUT_NAME
, RUNTIME_OUTPUT_NAME
,但都没有任何效果。
The .user
设置方法也适用于自定义目标。您可以添加 - 如果路径已知 - 安装程序的.exe
作为命令,调试器应使用“调试->开始调试”来调用。
VS2010Test-调试.vcxproj.user.in
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LocalDebuggerCommand>${_my_installer_path}</LocalDebuggerCommand>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>
CMakeLists.txt
...
if (MSVC_VERSION GREATER 1599 AND
NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/NSISTest_Preprocess.vcxproj.user")
file(TO_NATIVE_PATH "[your installer's path goes here]" _my_installer_path)
configure_file(
"VS2010Test-Debug.vcxproj.user.in"
"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/NSISTest_Preprocess.vcxproj.user"
)
file(
COPY "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/NSISTest_Preprocess.vcxproj.user"
DESTINATION "${CMAKE_CURRENT_BINARY_DIR}"
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
endif()
背景
- 我仅在文件不存在时复制/配置该文件,因为 VS 不处理外部更改
.user
文件很好
- 我必须确保所有文件访问权限都设置正确,因为您的 SCM 可能会设置只读标志(由configure_file())
参考
- 使用 CMake 设置 Visual Studio 调试器路径
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)