Auto-generate version.rc file based on project configuration

This commit is contained in:
SimplestStudio
2025-10-18 20:32:05 +03:00
parent 718b9df428
commit a0e8f5fcc0
6 changed files with 98 additions and 50 deletions

View File

@ -31,8 +31,40 @@ message($$PLATFORM_BUILD)
#}
core_windows {
RC_FILE = $$PWD/version.rc
OTHER_FILES += $$PWD/version.rc
VER_PRODUCTNAME = ONLYOFFICE
VER_INTERNALNAME = Desktop Editors
VER_FILEDESCRIPTION = ONLYOFFICE Desktop Editors
VER_LEGALTRADEMARKS1 = All Rights Reserved
VER_LEGALTRADEMARKS2 = $$VER_LEGALTRADEMARKS1
VER_ORIGINALFILENAME = editors.exe
VER_LANG_ID = 0x0409
VER_CHARSET_ID = 0x04E4
VER_LANG_AND_CHARSET = 040904E4
version_info.input = $$PWD/version.rc.in
version_info.output = $$PWD/version.rc
version_info.variables = \
VER_PRODUCT_VERSION_COMMAS \
VER_LANG_AND_CHARSET \
VER_COMPANYNAME \
VER_FILEDESCRIPTION \
VER_PRODUCT_VERSION \
VER_INTERNALNAME \
VER_LEGALCOPYRIGHT \
VER_LEGALTRADEMARKS1 \
VER_LEGALTRADEMARKS2 \
VER_ORIGINALFILENAME \
VER_PRODUCTNAME \
VER_LANG_ID \
VER_CHARSET_ID
QMAKE_SUBSTITUTES += version_info
RC_FILE = $$PWD/resource.rc
OTHER_FILES += \
$$PWD/resource.rc \
$$PWD/version.rc \
$$PWD/version.rc.in
}
core_linux {

View File

@ -165,7 +165,29 @@ updmodule:!build_xp {
}
RESOURCES += $$PWD/resources.qrc
DEFINES += COPYRIGHT_YEAR=$${CURRENT_YEAR}
VER_COMPANYNAME = Ascensio System SIA
!isEmpty(QMAKE_TARGET_COMPANY) {
VER_COMPANYNAME = $$replace(QMAKE_TARGET_COMPANY,\\\","")
}
DEFINES += VER_COMPANYNAME='"$${VER_COMPANYNAME}"'
VER_LEGALCOPYRIGHT = © $${VER_COMPANYNAME} $${CURRENT_YEAR}. All rights reserved.
!isEmpty(QMAKE_TARGET_COPYRIGHT) {
VER_LEGALCOPYRIGHT = $$replace(QMAKE_TARGET_COPYRIGHT,\\\","")
}
DEFINES += VER_LEGALCOPYRIGHT='"$${VER_LEGALCOPYRIGHT}"'
VER_PRODUCT_VERSION = 5.3.95.508
!isEmpty(PRODUCT_VERSION) {
VER_PRODUCT_VERSION = $$PRODUCT_VERSION
!isEmpty(BUILD_NUMBER) {
VER_PRODUCT_VERSION = $${PRODUCT_VERSION}.$$(BUILD_NUMBER)
}
}
VER_PRODUCT_VERSION_COMMAS=$$replace(VER_PRODUCT_VERSION, \., ",")
DEFINES += VER_PRODUCT_VERSION=$$VER_PRODUCT_VERSION \
VER_PRODUCT_VERSION_COMMAS=$$VER_PRODUCT_VERSION_COMMAS
isEqual(QT_MAJOR_VERSION, 5) {
lessThan(QT_MINOR_VERSION, 10) {
@ -174,13 +196,6 @@ isEqual(QT_MAJOR_VERSION, 5) {
}
}
ENV_PRODUCT_VERSION = $$(PRODUCT_VERSION)
!isEmpty(ENV_PRODUCT_VERSION) {
FULL_PRODUCT_VERSION = $${ENV_PRODUCT_VERSION}.$$(BUILD_NUMBER)
DEFINES += VER_PRODUCT_VERSION=$$FULL_PRODUCT_VERSION \
VER_PRODUCT_VERSION_COMMAS=$$replace(FULL_PRODUCT_VERSION, \., ",")
}
CMD_IN_HELP_URL = $$join(URL_WEBAPPS_HELP,,\\\",\\\")
!isEmpty(CMD_IN_HELP_URL) {
DEFINES += URL_WEBAPPS_HELP=$$CMD_IN_HELP_URL

11
win-linux/resource.rc Normal file
View File

@ -0,0 +1,11 @@
#include <windows.h>
#include "src/platform_win/resource.h"
IDI_MAINICON ICON DISCARDABLE APP_ICON_PATH
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "./res/manifest/DesktopEditors.exe.manifest"
#pragma code_page(65001)
#include "./version.rc"
/* EOF */

View File

@ -61,8 +61,8 @@
# define VER_PRODUCTVERSION_STR VER_STRING_SHORT
#endif
#define VER_COMPANYNAME_STR "Ascensio System SIA\0"
#define VER_LEGALCOPYRIGHT_STR "© Ascensio System SIA " TO_STR(COPYRIGHT_YEAR) ". All rights reserved.\0"
#define VER_COMPANYNAME_STR TO_STR(VER_COMPANYNAME) "\0"
#define VER_LEGALCOPYRIGHT_STR TO_STR(VER_LEGALCOPYRIGHT) "\0"
#define VER_COMPANYDOMAIN_STR "www.onlyoffice.com\0"
#define ABOUT_COPYRIGHT_STR VER_LEGALCOPYRIGHT_STR
#define VER_FILEDESCRIPTION_STR "ONLYOFFICE Desktop Editors\0"

View File

@ -1,38 +0,0 @@
#pragma code_page(65001)
#include <windows.h>
#include "src/platform_win/resource.h"
IDI_MAINICON ICON DISCARDABLE APP_ICON_PATH
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "./res/manifest/DesktopEditors.exe.manifest"
#define RC_COMPILE_FLAG
# include "src/version.h"
#undef RC_COMPILE_FLAG
VS_VERSION_INFO VERSIONINFO
FILEVERSION VER_FILEVERSION
PRODUCTVERSION VER_PRODUCTVERSION
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK VER_LANG_AND_CHARSET
BEGIN
VALUE "CompanyName", VER_COMPANYNAME_STR
VALUE "FileDescription", VER_FILEDESCRIPTION_STR
VALUE "FileVersion", VER_FILEVERSION_STR
VALUE "InternalName", VER_INTERNALNAME_STR
VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR
VALUE "LegalTrademarks1", VER_LEGALTRADEMARKS1_STR
VALUE "LegalTrademarks2", VER_LEGALTRADEMARKS2_STR
VALUE "OriginalFilename", VER_ORIGINALFILENAME_STR
VALUE "ProductName", VER_PRODUCTNAME_STR
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", VER_LANG_ID, VER_CHARSET_ID
END
END

28
win-linux/version.rc.in Normal file
View File

@ -0,0 +1,28 @@
VS_VERSION_INFO VERSIONINFO
FILEVERSION $${VER_PRODUCT_VERSION_COMMAS}
PRODUCTVERSION $${VER_PRODUCT_VERSION_COMMAS}
BEGIN
BLOCK \"StringFileInfo\"
BEGIN
BLOCK \"$${VER_LANG_AND_CHARSET}\"
BEGIN
VALUE \"CompanyName\", \"$${VER_COMPANYNAME}\"
VALUE \"FileDescription\", \"$${VER_FILEDESCRIPTION}\"
VALUE \"FileVersion\", \"$${VER_PRODUCT_VERSION}\"
VALUE \"InternalName\", \"$${VER_INTERNALNAME}\"
VALUE \"LegalCopyright\", \"$${VER_LEGALCOPYRIGHT}\"
VALUE \"LegalTrademarks1\", \"$${VER_LEGALTRADEMARKS1}\"
VALUE \"LegalTrademarks2\", \"$${VER_LEGALTRADEMARKS2}\"
VALUE \"OriginalFilename\", \"$${VER_ORIGINALFILENAME}\"
VALUE \"ProductName\", \"$${VER_PRODUCTNAME}\"
VALUE \"ProductVersion\", \"$${VER_PRODUCT_VERSION}\"
END
END
BLOCK \"VarFileInfo\"
BEGIN
VALUE \"Translation\", $${VER_LANG_ID} $${VER_CHARSET_ID}
END
END
/* EOF */