Skip to content

Commit 807550a

Browse files
committed
Improves version manager & packaging.
1 parent feafa04 commit 807550a

File tree

6 files changed

+99
-14
lines changed

6 files changed

+99
-14
lines changed

nuget/build.bat

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
@echo off
2+
set MSBUILD=C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\msbuild
3+
set SOLUTION_FILE=../AngelUmbrella.sln
4+
set NATIVE_PROJECTS=AngelUmbrella
5+
set PROJECTION_PROJECTS=AngelUmbrella_projection
6+
set TARGET_PLATFORMS=x86 x64 ARM64
7+
set TARGET_CONFIGURATION=Release
8+
set CLEAN_AFTER_BUILD=true
9+
10+
goto MAIN
11+
12+
:ERROR
13+
echo "Error"
14+
exit /b %!%errorlevel%
15+
16+
:MAIN
17+
REM Build Native DLL
18+
for %%p in (%TARGET_PLATFORMS%) do (
19+
for %%f in (%NATIVE_PROJECTS%) do (
20+
echo +-------------------------------------------
21+
echo ^| Build %%f (native^)
22+
echo +-------------------------------------------
23+
"%MSBUILD%" "%SOLUTION_FILE%" -fl -flp:logfile=msbuild_native_%%p.log -m -t:"%%f":Clean;"%%f":Rebuild -p:Configuration=%TARGET_CONFIGURATION%;Platform=%%p
24+
if errorlevel 1 goto ERROR
25+
if "%CLEAN_AFTER_BUILD%" == "true" (
26+
if "%%p" == "x86" (
27+
rd /s /q "../obj/Win32-%TARGET_CONFIGURATION%/%%f"
28+
) else (
29+
rd /s /q "../obj/%%p-%TARGET_CONFIGURATION%/%%f"
30+
)
31+
)
32+
)
33+
)
34+
35+
REM Build Projection DLL
36+
for %%f in (%PROJECTION_PROJECTS%) do (
37+
echo +-------------------------------------------
38+
echo ^| Build %%f (projection^)
39+
echo +-------------------------------------------
40+
"%MSBUILD%" "%SOLUTION_FILE%" -fl -flp:logfile=msbuild_projection.log -m -t:"%%f":Clean;"%%f":Rebuild -p:Configuration=%TARGET_CONFIGURATION%;Platform=x86
41+
if errorlevel 1 goto ERROR
42+
if "%CLEAN_AFTER_BUILD%" == "true" (
43+
rd /s /q "../obj/AnyCPU-%TARGET_CONFIGURATION%/%%f"
44+
)
45+
)
46+
47+
REM Pack NuGet
48+
echo Pack NuGet package
49+
./pack.bat

nuget/pack.bat

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,16 @@ for /f "tokens=3 delims=<>" %%a in (
1717
'find /i "<AngelVersionPatch>" ^< "../src/version.props"'
1818
) do set "patch=%%a"
1919

20-
set version=%major%.%minor%.%patch%
20+
set "prerel="
21+
for /f "tokens=3 delims=<>" %%a in (
22+
'find /i "<AngelVersionPreRelease>" ^< "../src/version.props"'
23+
) do set "prerel=%%a"
24+
25+
if not "%prerel%" == "/AngelVersionPreRelease" (
26+
set version=%major%.%minor%.%patch%-%prerel%
27+
) else (
28+
set version=%major%.%minor%.%patch%
29+
)
2130

2231
echo Detect Angel Umbrella version: %version%
2332
nuget pack Mntone.AngelUmbrella.nuspec -Version %version% -OutputDirectory "../BuildNugetPackages/"

projection/AngelUmbrella.projection.csproj

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,13 @@
3232

3333
<PropertyGroup>
3434
<Product>Angel Umbrella (C# projection)</Product>
35-
<VersionPrefix>$(AngelVersionMajor).$(AngelVersionMinor).$(AngelVersionPatch)</VersionPrefix>
36-
<AssemblyVersion>$(AngelVersionMajor).$(AngelVersionMinor).$(AngelVersionBuild).$(AngelVersionRevision)</AssemblyVersion>
35+
<VersionPrefix>$(AngelVersionMajor).$(AngelVersionMinor).$(AngelVersionPatch).$(AngelVersionPreReleaseId)</VersionPrefix>
36+
<VersionSuffix Condition="'$(AngelVersionPreRelease)'!=''">$(AngelVersionPreRelease)</VersionSuffix>
37+
<AssemblyVersion>$(AngelVersionMajor).$(AngelVersionMinor).$(AngelVersionPatch).$(AngelVersionPreReleaseId)</AssemblyVersion>
3738
<FileVersion>$(AngelVersionMajor).$(AngelVersionMinor).$(AngelVersionBuild).$(AngelVersionRevision)</FileVersion>
38-
<Authors>mntone</Authors>
39-
<Copyright>Copyright (c) 2023 mntone. All rights reserved.</Copyright>
39+
<InformationalVersion>$(AngelVersionMajor).$(AngelVersionMinor).$(AngelVersionPatch)-$(AngelVersionPreRelease)</InformationalVersion>
40+
<Authors>$(AngelAuthor)</Authors>
41+
<Copyright>$(AngelCopyright)</Copyright>
4042
</PropertyGroup>
4143

4244
<ItemGroup>

src/AngelUmbrella.rc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ BEGIN
1919
BLOCK "040904B0"
2020
BEGIN
2121
VALUE "CompanyName", "mntone"
22-
VALUE "FileDescription", "Mntone.AngelUmbrella.dll"
22+
VALUE "FileDescription", "Mntone.AngelUmbrella"
2323
VALUE "FileVersion", VER_FILE_VERSION_STR "\0"
2424
VALUE "InternalName", "Mntone.AngelUmbrella.dll"
25-
VALUE "LegalCopyright", "Copyright (c) 2023 mntone. All rights reserved."
25+
VALUE "LegalCopyright", VER_COPYRIGHT_STR "\0"
2626
VALUE "OriginalFilename", "Mntone.AngelUmbrella.dll"
2727
VALUE "ProductName", "Angel Umbrella"
2828
VALUE "ProductVersion", VER_PRODUCT_VERSION_STR "\0"

src/version.h

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,23 @@
44
#define STRINGIZE2(s) #s
55
#define STRINGIZE(s) STRINGIZE2(s)
66

7+
#define VER_COPYRIGHT ANGEL_COPYRIGHT
8+
#define VER_COPYRIGHT_STR STRINGIZE(ANGEL_COPYRIGHT)
79

810
#define VER_FILE_VERSION ANGEL_VERSION_MAJOR, ANGEL_VERSION_MINOR, ANGEL_VERSION_BUILD, ANGEL_VERSION_REVISION
911
#define VER_FILE_VERSION_STR STRINGIZE(ANGEL_VERSION_MAJOR) \
1012
"." STRINGIZE(ANGEL_VERSION_MINOR) \
1113
"." STRINGIZE(ANGEL_VERSION_BUILD) \
12-
"." STRINGIZE(ANGEL_VERSION_REVISION) \
14+
"." STRINGIZE(ANGEL_VERSION_REVISION)
1315

14-
#define VER_PRODUCT_VERSION VER_FILE_VERSION
15-
#define VER_PRODUCT_VERSION_STR VER_FILE_VERSION_STR
16+
#define VER_PRODUCT_VERSION ANGEL_VERSION_MAJOR, ANGEL_VERSION_MINOR, ANGEL_VERSION_PATCH, ANGEL_VERSION_PREID
17+
#ifdef ANGEL_VERSION_PRERELEASE
18+
#define VER_PRODUCT_VERSION_STR STRINGIZE(ANGEL_VERSION_MAJOR) \
19+
"." STRINGIZE(ANGEL_VERSION_MINOR) \
20+
"." STRINGIZE(ANGEL_VERSION_PATCH) \
21+
"-" STRINGIZE(ANGEL_VERSION_PRERELEASE)
22+
#else
23+
#define VER_PRODUCT_VERSION_STR STRINGIZE(ANGEL_VERSION_MAJOR) \
24+
"." STRINGIZE(ANGEL_VERSION_MINOR) \
25+
"." STRINGIZE(ANGEL_VERSION_PATCH)
26+
#endif

src/version.props

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,45 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<PropertyGroup>
4+
<AngelAuthor>mntone</AngelAuthor>
5+
<AngelCopyright>Copyright (c) 2023 $(AngelAuthor). All rights reserved.</AngelCopyright>
46
<AngelVersionMajor>1</AngelVersionMajor>
5-
<AngelVersionMinor>0</AngelVersionMinor>
6-
<AngelVersionPatch>3</AngelVersionPatch>
7-
<AngelVersionBuild Condition="$(AngelVersionBuild) == ''">0</AngelVersionBuild>
8-
<AngelVersionRevision Condition="$(AngelVersionRevision) == ''">0</AngelVersionRevision>
7+
<AngelVersionMinor>1</AngelVersionMinor>
8+
<AngelVersionPatch>0</AngelVersionPatch>
9+
<AngelVersionBuild Condition="$(AngelVersionBuild)==''">$([System.DateTime]::Now.ToString(`yyyy`))</AngelVersionBuild>
10+
<AngelVersionRevision Condition="$(AngelVersionRevision)==''">$([System.DateTime]::Now.ToString(`MMdd`))</AngelVersionRevision>
11+
<AngelVersionPreRelease>alpha1</AngelVersionPreRelease>
12+
<AngelVersionPreReleaseId Condition="'$(AngelVersionPreRelease.StartsWith(`alpha`))'">$(AngelVersionPreRelease.Substring(5))</AngelVersionPreReleaseId>
13+
<AngelVersionPreReleaseId Condition="'$(AngelVersionPreRelease.StartsWith(`beta`))'">$([MSBuild]::Add(1000, $([System.Convert]::ToUInt16($(AngelVersionPreRelease.Substring(4)), 10))))</AngelVersionPreReleaseId>
14+
<AngelVersionPreReleaseId Condition="$(AngelVersionPreReleaseId)==''">10000</AngelVersionPreReleaseId>
915
</PropertyGroup>
1016
<ItemDefinitionGroup>
1117
<ClCompile>
1218
<PreprocessorDefinitions>
1319
%(PreprocessorDefinitions);
20+
ANGEL_AUTHOR=$(AngelAuthor);
21+
ANGEL_COPYRIGHT=$(AngelCopyright);
1422
ANGEL_VERSION_MAJOR=$(AngelVersionMajor);
1523
ANGEL_VERSION_MINOR=$(AngelVersionMinor);
1624
ANGEL_VERSION_PATCH=$(AngelVersionPatch);
1725
ANGEL_VERSION_BUILD=$(AngelVersionBuild);
1826
ANGEL_VERSION_REVISION=$(AngelVersionRevision);
27+
ANGEL_VERSION_PRERELEASE=$(AngelVersionPreRelease);
28+
ANGEL_VERSION_PREID=$(AngelVersionPreReleaseId);
1929
</PreprocessorDefinitions>
2030
</ClCompile>
2131
<ResourceCompile>
2232
<PreprocessorDefinitions>
2333
%(PreprocessorDefinitions);
34+
ANGEL_AUTHOR=$(AngelAuthor);
35+
ANGEL_COPYRIGHT=$(AngelCopyright);
2436
ANGEL_VERSION_MAJOR=$(AngelVersionMajor);
2537
ANGEL_VERSION_MINOR=$(AngelVersionMinor);
2638
ANGEL_VERSION_PATCH=$(AngelVersionPatch);
2739
ANGEL_VERSION_BUILD=$(AngelVersionBuild);
2840
ANGEL_VERSION_REVISION=$(AngelVersionRevision);
41+
ANGEL_VERSION_PRERELEASE=$(AngelVersionPreRelease);
42+
ANGEL_VERSION_PREID=$(AngelVersionPreReleaseId);
2943
</PreprocessorDefinitions>
3044
</ResourceCompile>
3145
</ItemDefinitionGroup>

0 commit comments

Comments
 (0)