Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions res/commonlib-plugin.rc.in
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#include <winres.h>

1 VERSIONINFO
FILEVERSION ${COMMONLIB_PLUGIN_VERSION_MAJOR}, ${COMMONLIB_PLUGIN_VERSION_MINOR}, ${COMMONLIB_PLUGIN_VERSION_PATCH}, 0
PRODUCTVERSION ${COMMONLIB_PROJECT_VERSION_MAJOR}, ${COMMONLIB_PROJECT_VERSION_MINOR}, ${COMMONLIB_PROJECT_VERSION_PATCH}, 0
FILEVERSION ${COMMONLIB_PLUGIN_VERSION_MAJOR}, ${COMMONLIB_PLUGIN_VERSION_MINOR}, ${COMMONLIB_PLUGIN_VERSION_PATCH}, ${COMMONLIB_PLUGIN_VERSION_BUILD}
PRODUCTVERSION ${COMMONLIB_PROJECT_VERSION_MAJOR}, ${COMMONLIB_PROJECT_VERSION_MINOR}, ${COMMONLIB_PROJECT_VERSION_PATCH}, ${COMMONLIB_PROJECT_VERSION_BUILD}
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
Expand All @@ -19,12 +19,12 @@ BEGIN
BEGIN
VALUE "Comments", "${COMMONLIB_PLUGIN_CONTACT}"
VALUE "FileDescription", "${COMMONLIB_PLUGIN_DESCRIPTION}"
VALUE "FileVersion", "${COMMONLIB_PLUGIN_VERSION}.0"
VALUE "FileVersion", "${COMMONLIB_PLUGIN_VERSION}.${COMMONLIB_PLUGIN_VERSION_BUILD}"
VALUE "InternalName", "${COMMONLIB_PLUGIN_NAME}"
VALUE "LegalCopyright", "${COMMONLIB_PLUGIN_AUTHOR}"
VALUE "LegalTrademarks", "${COMMONLIB_PLUGIN_LICENSE}"
VALUE "ProductName", "${COMMONLIB_PROJECT_NAME}"
VALUE "ProductVersion", "${COMMONLIB_PROJECT_VERSION}.0"
VALUE "ProductVersion", "${COMMONLIB_PROJECT_VERSION}.${COMMONLIB_PROJECT_VERSION_BUILD}"
END
END
BLOCK "VarFileInfo"
Expand Down
15 changes: 15 additions & 0 deletions xmake.lua
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,21 @@ rule("commonlib.plugin", function()
target:add("configfiles", path.join(os.scriptdir(), "res/commonlib-plugin.rc.in"))
target:add("files", path.join(target:configdir(), "commonlib-plugin.rc"))

-- Windows version components are unsigned 16-bit integers.
local function build_number(value)
if value == nil then return 0 end
if type(value) == "string" then value = os.date(value, os.time()) end
local number = tonumber(value)
assert(number and number >= 0 and number <= 65535 and number == math.floor(number),
"version build number must be an integer between 0 and 65535")
return number
end

local _, plugin_build = target:version()
local project_build = project.extraconf("target.version", project.version(), "build")
target:set("configvar", "COMMONLIB_PLUGIN_VERSION_BUILD", build_number(plugin_build))
target:set("configvar", "COMMONLIB_PROJECT_VERSION_BUILD", build_number(project_build))

local data = target:data("commonlib.plugin.config") or {}
target:set("configvar", "COMMONLIB_PLUGIN_AUTHOR", data.author or "")
target:set("configvar", "COMMONLIB_PLUGIN_CONTACT", data.contact or "")
Expand Down