aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiguel Costa <miguel.costa@qt.io>2023-01-14 00:08:58 +0100
committerMiguel Costa <miguel.costa@qt.io>2023-01-24 15:53:11 +0000
commit91c36892b8a1bbd73e286c7c215e1f6872b77c1e (patch)
treeabe33f0bd587e9726dbd30faf95347674809ad13
parenteb3e2b5d574920330a8e51540e2c15d795cfbdc0 (diff)
Get version from repo tag
The active version of the Qt VS Tools is now determined exclusively by the repository tag that precedes the current HEAD. Previously, this information was written both in the repo tags and also a file in the solution (versions.targets). With this change, there is now a single source of truth regarding the version information. Also in this change: the deployment of release packages (copying of the .vsix file to a deployment dir) is now done in the vstools.bat script. Previously, this was done in a post-build target of the Package project. Change-Id: If4d1b285689cfc3684e76339b8cd1a92703ea9ed Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io> (cherry picked from commit 14c4ae513c6ae7bc6d2c71e7b9319a953017d621) Reviewed-by: Miguel Costa <miguel.costa@qt.io>
-rw-r--r--QtVsTools.Package/QtVsTools.Package.csproj50
-rw-r--r--version.targets3
-rw-r--r--version.tt62
-rw-r--r--vstools.bat68
4 files changed, 93 insertions, 90 deletions
diff --git a/QtVsTools.Package/QtVsTools.Package.csproj b/QtVsTools.Package/QtVsTools.Package.csproj
index 39a86dcb..ed1c7e7a 100644
--- a/QtVsTools.Package/QtVsTools.Package.csproj
+++ b/QtVsTools.Package/QtVsTools.Package.csproj
@@ -554,56 +554,6 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(SolutionDir)\transform.targets" />
<Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" />
- <Target Name="QtVsTools_PostBuild" AfterTargets="Build">
- <Error Condition="!Exists('$(TargetPath)')" Text="Build failed." />
- <PropertyGroup>
- <MsvcVersion Condition="'$(VisualStudioVersion)'=='15.0'">2017</MsvcVersion>
- <MsvcVersion Condition="'$(VisualStudioVersion)'=='16.0'">2019</MsvcVersion>
- <MsvcVersion Condition="'$(VisualStudioVersion)'=='17.0'">2022</MsvcVersion>
- </PropertyGroup>
- <GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
- <Output TaskParameter="Assemblies" ItemName="QtVsToolsDll" />
- </GetAssemblyIdentity>
- <CreateProperty Value="$([System.Version]::Parse(%(QtVsToolsDll.Version)).Revision.ToString('D2'))">
- <Output TaskParameter="ValueSetByTask" PropertyName="QtVSToolsRevision" />
- </CreateProperty>
- <CreateProperty Condition="'$(QtVSToolsRevision)' != '' AND '$(QtVSToolsRevision)' != '-1'" Value="msvc$(MsvcVersion)-$(QtVSToolsVersion)-rev.$(QtVSToolsRevision)">
- <Output TaskParameter="ValueSetByTask" PropertyName="PackageName" />
- </CreateProperty>
- <CreateProperty Condition="'$(QtVSToolsRevision)' == '' OR '$(QtVSToolsRevision)' == '-1'" Value="msvc$(MsvcVersion)-$(QtVSToolsVersion)">
- <Output TaskParameter="ValueSetByTask" PropertyName="PackageName" />
- </CreateProperty>
- <CreateProperty Value="qt-vsaddin-$(PackageName).vsix">
- <Output TaskParameter="ValueSetByTask" PropertyName="ReleasePackage" />
- </CreateProperty>
- <Message Importance="High" Text="$(MSBuildProjectName) -&gt; $(PackageName)" />
- <CombinePath Condition="'$(QtVSToolsDeployTarget)' != ''" BasePath="$(QtVSToolsDeployTarget)" Paths="%(QtVsToolsDll.Version)">
- <Output TaskParameter="CombinedPaths" ItemName="DeployTargetPath" />
- </CombinePath>
- <ConvertToAbsolutePath Condition="'$(QtVSToolsDeployTarget)' != ''" Paths="@(DeployTargetPath)">
- <Output TaskParameter="AbsolutePaths" ItemName="DeployTargetFullPath" />
- </ConvertToAbsolutePath>
- <CreateProperty Condition="'$(QtVSToolsDeployTarget)' != ''" Value="%(DeployTargetFullPath.Identity)">
- <Output TaskParameter="ValueSetByTask" PropertyName="DeployTargetFullPath" />
- </CreateProperty>
- <Message Importance="High" Condition="'$(QtVSToolsDeployTarget)' != ''" Text="Deploying to $(DeployTargetFullPath)" />
- <MakeDir Condition="'$(QtVSToolsDeployTarget)' != ''" Directories="$(QtVSToolsDeployTarget)" />
- <Copy Condition="'$(QtVSToolsDeployTarget)' != ''" SourceFiles="$(TargetVsixContainer)" DestinationFiles="$(DeployTargetFullPath)\$(ReleasePackage)" />
- <PropertyGroup>
- <!-- Clean up properties -->
- <MsvcVersion />
- <QtVSToolsRevision />
- <PackageName />
- <ReleasePackage />
- <DeployTargetFullPath />
- </PropertyGroup>
- <ItemGroup>
- <!-- Clean up items -->
- <QtVsToolsDll Remove="@(QtVsToolsDll)" />
- <DeployTargetPath Remove="@(DeployTargetPath)" />
- <DeployTargetFullPath Remove="@(DeployTargetFullPath)" />
- </ItemGroup>
- </Target>
<!--
/////////////////////////////////////////////////////////////////////////////////////////////////
// NuGet native libs
diff --git a/version.targets b/version.targets
index 62776db9..54279100 100644
--- a/version.targets
+++ b/version.targets
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(QtVSToolsVersion)' == ''">
- <QtVSToolsVersion>2.10.0</QtVSToolsVersion>
+ <QtVSToolsVersion
+ >$([System.IO.File]::ReadAllText('$(SolutionDir)\version.log'))</QtVSToolsVersion>
</PropertyGroup>
</Project>
diff --git a/version.tt b/version.tt
index e045383e..d848d313 100644
--- a/version.tt
+++ b/version.tt
@@ -38,44 +38,36 @@
**
****************************************************************************/
- Func<string> GetRevisionData = new Func<string>(() =>
- {
- var proc = System.Diagnostics.Process.Start(new ProcessStartInfo
- {
- FileName = "git",
- Arguments = "describe --tags",
- WorkingDirectory = Directory.GetParent(SolutionDir).FullName,
- CreateNoWindow = true, UseShellExecute = false,
- RedirectStandardOutput = true, RedirectStandardError = true,
- });
- return proc.WaitForExit(3000) && proc.ExitCode == 0 ? proc.StandardOutput.ReadLine() : "";
- });
- string REVISION_TAG = GetRevisionData();
- int REVISION_NUMBER = Convert.ToInt32(REVISION_TAG.Split('-').Skip(1).FirstOrDefault());
+ Version v;
+ try {
+ var versionText = File
+ .ReadAllText(Path.Combine(SolutionDir, "version.log"))
+ .Replace("\r\n", "")
+ .Trim();
+ v = new Version(versionText);
+ } catch (Exception) {
+ Error("Error reading extension version");
+ v = new Version("0.0.0.0");
+ }
-/***************************************************************************/
+ string QT_VS_TOOLS_VERSION = $"{v.Major}.{v.Minor}.{v.Build}";
- string QT_VS_TOOLS_VERSION = (string)XDocument.Load(SolutionDir + @"\version.targets")
- .Descendants()
- .Where(x => x.Name.LocalName == "QtVSToolsVersion")
- .FirstOrDefault();
+ string QT_VS_TOOLS_VERSION_TAG = $"{v.Major}{v.Minor}{v.Build}";
-/***************************************************************************/
+ string QT_VS_TOOLS_VERSION_ASSEMBLY =
+ (v.Revision == -1)
+ ? $"{v.Major}.{v.Minor}.{v.Build}.0"
+ : $"{v.Major}.{v.Minor}.{v.Build}.{v.Revision}";
- string QT_VS_TOOLS_VERSION_TAG
- = QT_VS_TOOLS_VERSION.Replace(".", "");
+ string QT_VS_TOOLS_VERSION_ASSEMBLY_FILE = QT_VS_TOOLS_VERSION_ASSEMBLY;
- string QT_VS_TOOLS_VERSION_ASSEMBLY
- = string.Format("{0}.{1}", QT_VS_TOOLS_VERSION, REVISION_NUMBER);
+ string QT_VS_TOOLS_VERSION_USER =
+ (v.Revision <= 0)
+ ? $"{v.Major}.{v.Minor}.{v.Build}"
+ : $"{v.Major}.{v.Minor}.{v.Build} (rev.{v.Revision})";
- string QT_VS_TOOLS_VERSION_ASSEMBLY_FILE
- = string.Format("{0}.{1}", QT_VS_TOOLS_VERSION, REVISION_NUMBER);
-
- string QT_VS_TOOLS_VERSION_USER
- = REVISION_NUMBER > 0
- ? string.Format("{0} (rev.{1})", QT_VS_TOOLS_VERSION, REVISION_NUMBER)
- : QT_VS_TOOLS_VERSION;
-
- string QT_VS_TOOLS_VERSION_MANIFEST
- = REVISION_NUMBER > 0 ? QT_VS_TOOLS_VERSION_ASSEMBLY : QT_VS_TOOLS_VERSION;
-#> \ No newline at end of file
+ string QT_VS_TOOLS_VERSION_MANIFEST =
+ (v.Revision <= 0)
+ ? $"{v.Major}.{v.Minor}.{v.Build}"
+ : $"{v.Major}.{v.Minor}.{v.Build}.{v.Revision}";
+#>
diff --git a/vstools.bat b/vstools.bat
index 332c90bf..d0519a61 100644
--- a/vstools.bat
+++ b/vstools.bat
@@ -37,6 +37,7 @@ SET CLEAN=%FALSE%
SET BINARYLOG=%FALSE%
SET CONFIGURATION=Release
SET DO_INSTALL=%FALSE%
+SET DEPLOY=%FALSE%
SET TRANSFORM_INCREMENTAL=true
SET START_VS=%FALSE%
SET LIST_VERSIONS=%FALSE%
@@ -71,7 +72,8 @@ IF NOT "%1"=="" (
SHIFT
)
) ELSE IF "%1"=="-deploy" (
- SET QtVSToolsDeployTarget=%~f2
+ SET DEPLOY=%TRUE%
+ SET DEPLOY_DIR=%~f2
SHIFT
) ELSE IF "%1"=="-install" (
SET DO_INSTALL=%TRUE%
@@ -191,6 +193,11 @@ IF NOT %VSWHERE_OK% (
EXIT /B 1
)
+WHERE /Q git.exe || (
+ ECHO Error: could not find git.
+ EXIT /B 1
+)
+
REM ///////////////////////////////////////////////////////////////////////////////////////////////
REM // Cycle through installed VS products
@@ -227,6 +234,10 @@ FOR %%v IN (%VS_VERSIONS%) DO (
FOR /F %ALL% %%f IN (`CMD /C "ECHO %%PLATFORM_VS%%e%%"`) DO (
IF %VERBOSE% ECHO ## platform: %%f
+ IF %VERBOSE% ECHO ## git describe --tags
+ FOR /F "tokens=1,2,3,4 delims=v.- usebackq" %%q IN (`git describe --tags`) DO (
+ IF %VERBOSE% ECHO ## ^( %%q, %%r, %%s, %%t ^)
+
IF %LIST_VERSIONS% (
IF %VERBOSE% ECHO ## listVersion
ECHO %%n ^(%%i^)
@@ -251,7 +262,12 @@ FOR %%v IN (%VS_VERSIONS%) DO (
ECHO Error: msbuild not found
EXIT /B 3
)
- IF NOT "%QtVSToolsDeployTarget%"=="" ECHO ## Deploy to: %QtVSToolsDeployTarget%
+ IF "%%t"=="" (
+ ECHO ## Qt VSTools version: %%q.%%r.%%s
+ ) ELSE (
+ ECHO ## Qt VSTools version: %%q.%%r.%%s ^(rev.%%t^)
+ )
+ IF NOT "%DEPLOY_DIR%"=="" ECHO ## Deploy to: %DEPLOY_DIR%
ECHO ################################################################################
ECHO.
@@ -280,6 +296,16 @@ FOR %%v IN (%VS_VERSIONS%) DO (
ECHO.
ECHO ###############################################################################
+ ECHO ## Logging extension version
+ ECHO ###############################################################################
+ IF "%%t"=="" (
+ ECHO %%q.%%r.%%s.0 > version.log
+ ) ELSE (
+ ECHO %%q.%%r.%%s.%%t > version.log
+ )
+ ECHO.
+
+ ECHO ###############################################################################
ECHO ## Restoring packages...
ECHO ###############################################################################
msbuild ^
@@ -296,6 +322,17 @@ FOR %%v IN (%VS_VERSIONS%) DO (
)
)
+ IF NOT EXIST version.log (
+ ECHO ###############################################################################
+ ECHO ## Logging extension version
+ ECHO ###############################################################################
+ IF "%%t"=="" (
+ ECHO %%q.%%r.%%s.0 > version.log
+ ) ELSE (
+ ECHO %%q.%%r.%%s.%%t > version.log
+ )
+ )
+
IF %INIT% (
ECHO ################################################################################
ECHO ## Building pre-requisites...
@@ -352,6 +389,11 @@ FOR %%v IN (%VS_VERSIONS%) DO (
&& (
ECHO ################################################################################
ECHO ## %%n ^(%%i^)
+ IF "%%t"=="" (
+ ECHO ## Qt VSTools version: %%q.%%r.%%s
+ ) ELSE (
+ ECHO ## Qt VSTools version: %%q.%%r.%%s ^(rev.%%t^)
+ )
ECHO ## Solution build successful.
ECHO ################################################################################
ECHO.
@@ -363,9 +405,27 @@ FOR %%v IN (%VS_VERSIONS%) DO (
EXIT /B %ERRORLEVEL%
)
+ IF %DEPLOY% (
+ ECHO ################################################################################
+ ECHO ## Deploying to %DEPLOY_DIR%...
+ ECHO ################################################################################
+ IF "%%t"=="" (
+ ECHO QtVsTools.vsix -^> qt-vsaddin-msvc%%e-%%q.%%r.%%s.vsix
+ MD "%DEPLOY_DIR%\%%q.%%r.%%s.0" > NUL 2>&1
+ COPY /Y QtVsTools.Package\bin\Release\QtVsTools.vsix ^
+ "%DEPLOY_DIR%\%%q.%%r.%%s.0\qt-vsaddin-msvc%%e-%%q.%%r.%%s.vsix"
+ ) ELSE (
+ ECHO QtVsTools.vsix -^> qt-vsaddin-msvc%%e-%%q.%%r.%%s-rev.%%t.vsix
+ MD "%DEPLOY_DIR%\%%q.%%r.%%s.%%t" > NUL 2>&1
+ COPY /Y QtVsTools.Package\bin\Release\QtVsTools.vsix ^
+ "%DEPLOY_DIR%\%%q.%%r.%%s.%%t\qt-vsaddin-msvc%%e-%%q.%%r.%%s-rev.%%t.vsix"
+ )
+ ECHO.
+ )
+
IF %DO_INSTALL% (
ECHO ################################################################################
- ECHO ## Installing VSIX package
+ ECHO ## Installing extension package
ECHO ################################################################################
ECHO Removing previous installation...
IF "%%e"=="2022" (
@@ -390,7 +450,7 @@ FOR %%v IN (%VS_VERSIONS%) DO (
)
ECHO.
- )))))))
+ ))))))))
ENDLOCAL
)