diff options
-rw-r--r-- | config-win32.h.tt | 6 | ||||
-rw-r--r-- | src/common/common.vcxproj | 6 | ||||
-rw-r--r-- | src/fe-gtk/fe-gtk.vcxproj | 4 | ||||
-rw-r--r-- | src/fe-gtk/hexchat.rc.tt | 4 | ||||
-rw-r--r-- | version-template.ps1 | 12 | ||||
-rw-r--r-- | version.include.tt | 12 | ||||
-rw-r--r-- | win32/hexchat.props | 2 | ||||
-rw-r--r-- | win32/installer/hexchat.iss.tt | 4 | ||||
-rw-r--r-- | win32/installer/installer.vcxproj | 2 | ||||
-rw-r--r-- | win32/version.txt.tt | 2 |
10 files changed, 28 insertions, 26 deletions
diff --git a/config-win32.h.tt b/config-win32.h.tt index 8f21d0b1..fc1679f6 100644 --- a/config-win32.h.tt +++ b/config-win32.h.tt @@ -1,4 +1,4 @@ -<#@ include file="version.include.tt" #>#define LOCALEDIR ".\\share\\locale" +#define LOCALEDIR ".\\share\\locale" #define ENABLE_NLS #define USE_GMODULE #define USE_PLUGIN @@ -8,12 +8,12 @@ #define ISO_CODES_PREFIX ".\\" #define ISO_CODES_LOCALEDIR LOCALEDIR #define PACKAGE_NAME "hexchat" -#define PACKAGE_VERSION "<#= string.Join(".", versionParts) #>" +#define PACKAGE_VERSION "<#= [string]::Join('.', $versionParts) #>" #define HEXCHATLIBDIR ".\\plugins" #define HEXCHATSHAREDIR "." #define OLD_PERL #define GETTEXT_PACKAGE "hexchat" -#define PACKAGE_TARNAME "hexchat-<#= string.Join(".", versionParts) #>" +#define PACKAGE_TARNAME "hexchat-<#= [string]::Join('.', $versionParts) #>" #ifndef USE_IPV6 #define socklen_t int #endif diff --git a/src/common/common.vcxproj b/src/common/common.vcxproj index 39c50222..720faae7 100644 --- a/src/common/common.vcxproj +++ b/src/common/common.vcxproj @@ -159,8 +159,10 @@ <Command> <![CDATA[ SET SOLUTIONDIR=$(SolutionDir)..\ -$(TextTransformPath) -out "%SOLUTIONDIR%config-win32.h" "%SOLUTIONDIR%config-win32.h.tt" -$(TextTransformPath) -out "%SOLUTIONDIR%win32\version.txt" "%SOLUTIONDIR%win32\version.txt.tt" +powershell "$(SolutionDir)..\version-template.ps1" "$(SolutionDir)..\config-win32.h.tt" "$(SolutionDir)..\config-win32.h" +powershell "$(SolutionDir)..\version-template.ps1" "$(SolutionDir)..\win32\version.txt.tt" "$(SolutionDir)..\win32\version.txt.tmp" +REM version.txt must be in UTF-8 without trailing newline +powershell "[string] $content = Get-Content '$(SolutionDir)..\win32\version.txt.tmp' -Encoding UTF8; [System.IO.File]::WriteAllText('$(SolutionDir)..\win32\version.txt', $content); Remove-Item '$(SolutionDir)..\win32\version.txt.tmp';" ]]> </Command> </PreBuildEvent> diff --git a/src/fe-gtk/fe-gtk.vcxproj b/src/fe-gtk/fe-gtk.vcxproj index f7341904..6b6301b2 100644 --- a/src/fe-gtk/fe-gtk.vcxproj +++ b/src/fe-gtk/fe-gtk.vcxproj @@ -100,7 +100,9 @@ <Command> <![CDATA[ SET SOLUTIONDIR=$(SolutionDir)..\ -$(TextTransformPath) -out hexchat.rc hexchat.rc.tt +powershell "$(SolutionDir)..\version-template.ps1" "$(SolutionDir)..\src\fe-gtk\hexchat.rc.tt" "$(SolutionDir)..\src\fe-gtk\hexchat.rc.utf8" +REM hexchat.rc needs to be in UCS-2 or Resource Compiler will complain +powershell "Get-Content -Encoding UTF8 '$(SolutionDir)..\src\fe-gtk\hexchat.rc.utf8' | Out-File '$(SolutionDir)..\src\fe-gtk\hexchat.rc'; Remove-Item '$(SolutionDir)..\src\fe-gtk\hexchat.rc.utf8'" "$(DepsRoot)\bin\glib-compile-resources.exe" --generate-source --sourcedir $(DataDir) --target "$(ProjectDir)resources.c" "$(DataDir)hexchat.gresource.xml" ]]> </Command> diff --git a/src/fe-gtk/hexchat.rc.tt b/src/fe-gtk/hexchat.rc.tt index 87507340..2b384c49 100644 --- a/src/fe-gtk/hexchat.rc.tt +++ b/src/fe-gtk/hexchat.rc.tt @@ -1,7 +1,7 @@ -<#@ include file="..\..\version.include.tt" #>#include <winver.h> +#include <winver.h> #include "../../config-win32.h" -#define COMMA_VERSION <#= string.Join(",", versionParts) #>,0 +#define COMMA_VERSION <#= [string]::Join(',', $versionParts) #>,0 XC_ICON ICON "../../data/icons/hexchat.ico" diff --git a/version-template.ps1 b/version-template.ps1 new file mode 100644 index 00000000..18eb90d9 --- /dev/null +++ b/version-template.ps1 @@ -0,0 +1,12 @@ +param ([string] $templateFilename, [string] $outputFilename) + +$versionParts = Select-String -Path "${env:SOLUTIONDIR}configure.ac" -Pattern '^AC_INIT\(\[HexChat\],\[([^]]+)\]\)$' | Select-Object -First 1 | %{ $_.Matches[0].Groups[1].Value.Split('.') } + +[string[]] $contents = Get-Content $templateFilename -Encoding UTF8 | %{ + while ($_ -match '^(.*?)<#=(.*?)#>(.*?)$') { + $_ = $Matches[1] + $(Invoke-Expression $Matches[2]) + $Matches[3] + } + $_ +} + +[System.IO.File]::WriteAllLines($outputFilename, $contents) diff --git a/version.include.tt b/version.include.tt deleted file mode 100644 index ab77a6d9..00000000 --- a/version.include.tt +++ /dev/null @@ -1,12 +0,0 @@ -<#@ - template debug="false" hostspecific="false" language="C#" #><#@ - assembly name="System.Core" #><#@ - import namespace="System.IO" #><#@ - import namespace="System.Linq" #><#@ - import namespace="System.Text.RegularExpressions" #><# - var versionParts = File.ReadLines(Path.Combine(System.Environment.GetEnvironmentVariable("SOLUTIONDIR"), "configure.ac")) - .Select(line => Regex.Match(line, @"^AC_INIT\(\[HexChat\],\[([^]]+)\]\)$")) - .First(match => match.Success) - .Groups[1].Value - .Split('.'); -#> \ No newline at end of file diff --git a/win32/hexchat.props b/win32/hexchat.props index 3acfd913..8f5b6644 100644 --- a/win32/hexchat.props +++ b/win32/hexchat.props @@ -94,8 +94,6 @@ copy "$(HexChatBin)hcsysinfo.dll" "$(HexChatRel)\plugins" xcopy /q /s /i "$(HexChatBin)locale" "$(HexChatRel)\share\locale" xcopy /q /s /i "$(DepsRoot)\share\locale" "$(HexChatRel)\share\locale" </HexChatCopy> - <TextTransformPath Condition="'$(Platform)'=='Win32'">"%PROGRAMFILES%\Common Files\microsoft shared\TextTemplating\12.0\TextTransform.exe"</TextTransformPath> - <TextTransformPath Condition="'$(Platform)'=='x64'">"%PROGRAMFILES(x86)%\Common Files\microsoft shared\TextTemplating\12.0\TextTransform.exe"</TextTransformPath> <IsccPath Condition="'$(Platform)'=='Win32'">"%PROGRAMFILES%\Inno Setup 5\iscc.exe"</IsccPath> <IsccPath Condition="'$(Platform)'=='x64'">"%PROGRAMFILES(x86)%\Inno Setup 5\iscc.exe"</IsccPath> </PropertyGroup> diff --git a/win32/installer/hexchat.iss.tt b/win32/installer/hexchat.iss.tt index 1ba55303..74156720 100644 --- a/win32/installer/hexchat.iss.tt +++ b/win32/installer/hexchat.iss.tt @@ -1,5 +1,5 @@ -<#@ include file="..\..\version.include.tt" #>#define APPNAM "HexChat" -#define APPVER "<#= string.Join(".", versionParts) #>" +#define APPNAM "HexChat" +#define APPVER "<#= [string]::Join('.', $versionParts) #>" ; These are defined by our installer project at build time ;#define APPARCH "x64" ;#define PROJECTDIR "C:\...\hexchat\win32\installer\" diff --git a/win32/installer/installer.vcxproj b/win32/installer/installer.vcxproj index 09654ab0..0e46f373 100644 --- a/win32/installer/installer.vcxproj +++ b/win32/installer/installer.vcxproj @@ -64,7 +64,7 @@ <Command> <![CDATA[ SET SOLUTIONDIR=$(SolutionDir)..\ -$(TextTransformPath) -out "%SOLUTIONDIR%win32\installer\hexchat.iss" "%SOLUTIONDIR%win32\installer\hexchat.iss.tt" +powershell "$(SolutionDir)..\version-template.ps1" "$(SolutionDir)..\win32\installer\hexchat.iss.tt" "$(SolutionDir)..\win32\installer\hexchat.iss" del "$(OutDir)hexchat.iss" type hexchat.iss >> "$(OutDir)hexchat.iss" $(IsccPath) /dPROJECTDIR="$(ProjectDir)" /dAPPARCH="$(Platform)" "$(OutDir)hexchat.iss" diff --git a/win32/version.txt.tt b/win32/version.txt.tt index 64e50010..778db65c 100644 --- a/win32/version.txt.tt +++ b/win32/version.txt.tt @@ -1 +1 @@ -<#@ include file="..\version.include.tt" #><#= string.Join(".", versionParts) #> \ No newline at end of file +<#= [string]::Join('.', $versionParts) #> \ No newline at end of file |