在使用 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'