您好,
我很高興宣布 pg_msvc_generator 1.0.0 beta 版發布。
pg_msvc_generator 是一個新的工具,旨在幫助擴充套件作者提供其擴充套件的 Windows 版本。它使用 Perl 編寫,並以 PostgreSQL 許可證開源。
您可以參考專案的 README 以獲得完整的描述,或者參考 bug tracker,如果您遇到任何問題。
此工具由 2 個腳本組成
主要的 pg_msvc_generator.pl
腳本將在給定的擴充套件目錄中生成一個 msvc 子目錄,其中包含所需的 .sln 和 .vcxproj 檔案,以便能夠使用 Visual Studio 2019 編譯擴充套件,並支援 Debug/Release 和 32/64 位元版本。它還將複製 release.pl
並產生一個 build.bat
腳本,該腳本可以自動編譯並為所有本地安裝的 PostgreSQL 版本建立發布歸檔檔案和安裝程式。
pg_msvc_generator.pl [ options ]
Options:
--default version pgver : default PostgreSQL version. This is only used
if you compile the project without specifying a specific major
version, or when the project is opened with Visual Studio
IDE. If not provided, a default value based on the year will
be chosen (13 for 2021, 14 for 2022 and so on).
-d | --dir ext_directory : root directory of the extension source code.
-e | --extension : extension name. If not provided, the extension
name will be assumed using the last part of the given root
directory.
-h | --help : Show this message.
例如
pg_msvc_generator.pl -d C:\git\hypopg
在專案生成時:
在擴充套件編譯時:
C:\Program Files\PostgreSQL\$MAJOR_VERSION
)您需要做的就是執行 msvc\release.bat
腳本。它將設定 MSVC 環境並呼叫 release.pl
腳本。該腳本將準備好在 msvc\${extension_name}-${extension_version}
目錄下發布所需的一切。
它將自動找到已安裝的 PostgreSQL 版本,讀取 HKLM/SOFTWARE/PostgreSQL/Installations/
登錄檔,使用所有這些版本編譯擴充套件,並為每個版本生成一個子目錄,其中包含 dll 和 SQL 腳本(如果有)、具有相同內容的 zip 歸檔檔案,以及可選的安裝程式。
例如,假設您已安裝 PostgreSQL 12 和 13,並發布了 HypoPG 1.3.2,並且已安裝 NSIS,則您的 msvc
目錄現在將具有以下額外內容
如果您已在預設位置 (C:\Program Files (x86)\NSIS
) 安裝 NSIS,則 release.pl
腳本將生成一個 .nsi
檔案,並使用 makensis.exe 編譯它,以為執行 release.pl
腳本時找到的每個 PostgreSQL 主要版本生成一個特定的安裝程式。在執行時,安裝程式將嘗試讀取登錄檔機碼 HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-$architecture-$majorversion\Base Directory 來發現伺服器的 PostgreSQL 安裝路徑。
如果找到該機碼,安裝程式將通知使用者並將其用作預設安裝位置。 否則,安裝程式將通知使用者未自動找到任何安裝,並將強制使用者選擇位置,然後才能繼續安裝。