在使用 CPack 和 NSIS 创建安装程序之前生成一个文件
generate a file before creating installer using CPack and NSIS
我目前正在为一个大型项目制作安装程序,它需要从数据库中获取最新的表格。到目前为止,数据库转储是手动完成的,现在我希望它在生成安装程序时自动完成。由于已经有一个脚本执行转储过程,我想知道是否可以在生成安装程序之前先告诉 CPack(或 CMake)运行 这个脚本?比如CMakeList中有一条规则:
install(
FILES "../db/structures.sql"
DESTINATION ${INSTALL_DB}
CONFIGURATIONS Release
RENAME "create.sql"
)
Sql-转储文件“structures.sql”可以使用另一个名为“的脚本自动创建make_db_dump.pl”(因此在命令行中应使用“perl make_db_dump.pl
”调用)。我希望在生成安装程序之前自动调用 make_db_dump.pl 并生成文件。这可能吗?
对于环境:我在 windows.
下使用 VS 2019 和 CMake
以及工作流程is:CMake -> VS Project -> 生成安装程序
在 NSIS 中,您可以使用 !system
:
从编译器内部执行外部命令
!system '"c:\stuff\app.exe" -foo -bar'
我目前正在为一个大型项目制作安装程序,它需要从数据库中获取最新的表格。到目前为止,数据库转储是手动完成的,现在我希望它在生成安装程序时自动完成。由于已经有一个脚本执行转储过程,我想知道是否可以在生成安装程序之前先告诉 CPack(或 CMake)运行 这个脚本?比如CMakeList中有一条规则:
install(
FILES "../db/structures.sql"
DESTINATION ${INSTALL_DB}
CONFIGURATIONS Release
RENAME "create.sql"
)
Sql-转储文件“structures.sql”可以使用另一个名为“的脚本自动创建make_db_dump.pl”(因此在命令行中应使用“perl make_db_dump.pl
”调用)。我希望在生成安装程序之前自动调用 make_db_dump.pl 并生成文件。这可能吗?
对于环境:我在 windows.
下使用 VS 2019 和 CMake以及工作流程is:CMake -> VS Project -> 生成安装程序
在 NSIS 中,您可以使用 !system
:
!system '"c:\stuff\app.exe" -foo -bar'