forked from jasder/antlr
Merge branch 'fold-into-master' of github.com:antlr/antlr4-csharp
Conflicts: .gitignore runtime/CSharp/runtime/CSharp/Antlr4.mono.sln
This commit is contained in:
commit
76d5f7b5f7
|
@ -0,0 +1,64 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>Antlr4.Runtime</id>
|
||||
<version>0.0.0</version>
|
||||
<authors>Sam Harwell, Terence Parr</authors>
|
||||
<owners>Sam Harwell</owners>
|
||||
<description>The runtime library for parsers generated by the C# target of ANTLR 4. This package supports projects targeting .NET 2.0 or newer, and built using Visual Studio 2008 or newer.</description>
|
||||
<language>en-us</language>
|
||||
<projectUrl>https://github.com/sharwell/antlr4cs</projectUrl>
|
||||
<licenseUrl>https://raw.github.com/sharwell/antlr4cs/master/LICENSE.txt</licenseUrl>
|
||||
<iconUrl>https://raw.github.com/antlr/website-antlr4/master/images/icons/antlr.png</iconUrl>
|
||||
<copyright>Copyright © Sam Harwell 2014</copyright>
|
||||
<releaseNotes>https://github.com/sharwell/antlr4cs/releases/v$version$</releaseNotes>
|
||||
<requireLicenseAcceptance>true</requireLicenseAcceptance>
|
||||
<tags>antlr antlr4 parsing</tags>
|
||||
<title>ANTLR 4 Runtime</title>
|
||||
<summary>The runtime library for parsers generated by the C# target of ANTLR 4.</summary>
|
||||
</metadata>
|
||||
<files>
|
||||
<!-- Runtime Libraries -->
|
||||
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net20\$Configuration$\Antlr4.Runtime.dll" target="lib\net20"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net20\$Configuration$\Antlr4.Runtime.pdb" target="lib\net20"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net20\$Configuration$\Antlr4.Runtime.xml" target="lib\net20"/>
|
||||
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net30\$Configuration$\Antlr4.Runtime.dll" target="lib\net30"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net30\$Configuration$\Antlr4.Runtime.pdb" target="lib\net30"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net30\$Configuration$\Antlr4.Runtime.xml" target="lib\net30"/>
|
||||
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net35-client\$Configuration$\Antlr4.Runtime.dll" target="lib\net35-client"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net35-client\$Configuration$\Antlr4.Runtime.pdb" target="lib\net35-client"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net35-client\$Configuration$\Antlr4.Runtime.xml" target="lib\net35-client"/>
|
||||
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net40-client\$Configuration$\Antlr4.Runtime.dll" target="lib\net40-client"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net40-client\$Configuration$\Antlr4.Runtime.pdb" target="lib\net40-client"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net40-client\$Configuration$\Antlr4.Runtime.xml" target="lib\net40-client"/>
|
||||
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net45\$Configuration$\Antlr4.Runtime.dll" target="lib\net45"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net45\$Configuration$\Antlr4.Runtime.pdb" target="lib\net45"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net45\$Configuration$\Antlr4.Runtime.xml" target="lib\net45"/>
|
||||
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net35-cf\$Configuration$\Antlr4.Runtime.dll" target="lib\net35-cf"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net35-cf\$Configuration$\Antlr4.Runtime.pdb" target="lib\net35-cf"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\net35-cf\$Configuration$\Antlr4.Runtime.xml" target="lib\net35-cf"/>
|
||||
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\portable-net40\$Configuration$\Antlr4.Runtime.dll" target="lib\portable-net4+sl5+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\portable-net40\$Configuration$\Antlr4.Runtime.pdb" target="lib\portable-net4+sl5+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\portable-net40\$Configuration$\Antlr4.Runtime.xml" target="lib\portable-net4+sl5+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1"/>
|
||||
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\portable-net45\$Configuration$\Antlr4.Runtime.dll" target="lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\portable-net45\$Configuration$\Antlr4.Runtime.pdb" target="lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\portable-net45\$Configuration$\Antlr4.Runtime.xml" target="lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1"/>
|
||||
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\netcore45\$Configuration$\Antlr4.Runtime.dll" target="lib\netcore45"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\netcore45\$Configuration$\Antlr4.Runtime.pdb" target="lib\netcore45"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\bin\netcore45\$Configuration$\Antlr4.Runtime.xml" target="lib\netcore45"/>
|
||||
|
||||
<!-- Source Code -->
|
||||
|
||||
<file exclude="..\runtime\CSharp\Antlr4.Runtime\obj\**\*.cs" src="..\runtime\CSharp\Antlr4.Runtime\**\*.cs" target="src"/>
|
||||
<file src="..\runtime\CSharp\Antlr4.Runtime\**\$Configuration$\*Lexer.cs" target="src"/>
|
||||
</files>
|
||||
</package>
|
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
||||
<metadata minClientVersion="2.7">
|
||||
<id>Antlr4.VS2008</id>
|
||||
<version>0.0.0</version>
|
||||
<authors>Sam Harwell, Terence Parr</authors>
|
||||
<owners>Sam Harwell</owners>
|
||||
<description>The C# target of the ANTLR 4 parser generator for Visual Studio 2008 projects. This package supports projects targeting .NET 2.0 or newer, and built using Visual Studio 2008.</description>
|
||||
<language>en-us</language>
|
||||
<projectUrl>https://github.com/sharwell/antlr4cs</projectUrl>
|
||||
<licenseUrl>https://raw.github.com/sharwell/antlr4cs/master/LICENSE.txt</licenseUrl>
|
||||
<iconUrl>https://raw.github.com/antlr/website-antlr4/master/images/icons/antlr.png</iconUrl>
|
||||
<copyright>Copyright © Sam Harwell 2014</copyright>
|
||||
<releaseNotes>https://github.com/sharwell/antlr4cs/releases/v$version$</releaseNotes>
|
||||
<requireLicenseAcceptance>true</requireLicenseAcceptance>
|
||||
<developmentDependency>true</developmentDependency>
|
||||
<tags>antlr antlr4 parsing</tags>
|
||||
<title>ANTLR 4 (Visual Studio 2008)</title>
|
||||
<summary>The C# target of the ANTLR 4 parser generator for Visual Studio 2008 projects.</summary>
|
||||
<dependencies>
|
||||
<dependency id="Antlr4.Runtime" version="$version$" />
|
||||
</dependencies>
|
||||
</metadata>
|
||||
<files>
|
||||
<!-- Tools -->
|
||||
|
||||
<file src="..\tool\target\antlr4-csharp-$CSharpToolVersion$-complete.jar" target="tools"/>
|
||||
|
||||
<!-- Build Configuration -->
|
||||
|
||||
<file src="..\runtime\CSharp\Antlr4BuildTasks\bin\net35\$Configuration$\Antlr4.net35.props" target="build\Antlr4.props"/>
|
||||
<file src="..\runtime\CSharp\Antlr4BuildTasks\bin\net35\$Configuration$\Antlr4.net35.targets" target="build\Antlr4.targets"/>
|
||||
<file src="..\runtime\CSharp\Antlr4BuildTasks\bin\net35\$Configuration$\Antlr4BuildTasks.net35.dll" target="build"/>
|
||||
</files>
|
||||
</package>
|
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
||||
<metadata minClientVersion="2.7">
|
||||
<id>Antlr4</id>
|
||||
<version>0.0.0</version>
|
||||
<authors>Sam Harwell, Terence Parr</authors>
|
||||
<owners>Sam Harwell</owners>
|
||||
<description>The C# target of the ANTLR 4 parser generator for Visual Studio 2010+ projects. This package supports projects targeting .NET 2.0 or newer, and built using Visual Studio 2010 or newer.</description>
|
||||
<language>en-us</language>
|
||||
<projectUrl>https://github.com/sharwell/antlr4cs</projectUrl>
|
||||
<licenseUrl>https://raw.github.com/sharwell/antlr4cs/master/LICENSE.txt</licenseUrl>
|
||||
<iconUrl>https://raw.github.com/antlr/website-antlr4/master/images/icons/antlr.png</iconUrl>
|
||||
<copyright>Copyright © Sam Harwell 2014</copyright>
|
||||
<releaseNotes>https://github.com/sharwell/antlr4cs/releases/v$version$</releaseNotes>
|
||||
<requireLicenseAcceptance>true</requireLicenseAcceptance>
|
||||
<developmentDependency>true</developmentDependency>
|
||||
<tags>antlr antlr4 parsing</tags>
|
||||
<title>ANTLR 4</title>
|
||||
<summary>The C# target of the ANTLR 4 parser generator for Visual Studio 2010+ projects.</summary>
|
||||
<dependencies>
|
||||
<dependency id="Antlr4.Runtime" version="$version$" />
|
||||
</dependencies>
|
||||
</metadata>
|
||||
<files>
|
||||
<!-- Tools -->
|
||||
|
||||
<file src="..\tool\target\antlr4-csharp-$CSharpToolVersion$-complete.jar" target="tools"/>
|
||||
|
||||
<!-- Build Configuration -->
|
||||
|
||||
<file src="..\runtime\CSharp\Antlr4BuildTasks\bin\net40\$Configuration$\Antlr4.net40.props" target="build\Antlr4.props"/>
|
||||
<file src="..\runtime\CSharp\Antlr4BuildTasks\bin\net40\$Configuration$\Antlr4.net40.targets" target="build\Antlr4.targets"/>
|
||||
<file src="..\runtime\CSharp\Antlr4BuildTasks\bin\net40\$Configuration$\Antlr4BuildTasks.net40.dll" target="build"/>
|
||||
</files>
|
||||
</package>
|
|
@ -0,0 +1,139 @@
|
|||
param (
|
||||
[switch]$Debug,
|
||||
[string]$VisualStudioVersion = "12.0",
|
||||
[switch]$NoClean,
|
||||
[string]$Java6Home,
|
||||
[string]$MavenHome,
|
||||
[string]$MavenRepo = "$($env:USERPROFILE)\.m2",
|
||||
[switch]$SkipMaven,
|
||||
[switch]$SkipKeyCheck
|
||||
)
|
||||
|
||||
# build the solutions
|
||||
$SolutionPath = "..\Runtime\CSharp\Antlr4.sln"
|
||||
$CF35SolutionPath = "..\Runtime\CSharp\Antlr4.VS2008.sln"
|
||||
|
||||
# make sure the script was run from the expected path
|
||||
if (!(Test-Path $SolutionPath)) {
|
||||
echo "The script was run from an invalid working directory."
|
||||
exit 1
|
||||
}
|
||||
|
||||
. .\version.ps1
|
||||
|
||||
If ($Debug) {
|
||||
$BuildConfig = 'Debug'
|
||||
} Else {
|
||||
$BuildConfig = 'Release'
|
||||
}
|
||||
|
||||
If ($NoClean) {
|
||||
$Target = 'build'
|
||||
} Else {
|
||||
$Target = 'rebuild'
|
||||
}
|
||||
|
||||
If (-not $MavenHome) {
|
||||
$MavenHome = $env:M2_HOME
|
||||
}
|
||||
|
||||
$Java6RegKey = 'HKLM:\SOFTWARE\JavaSoft\Java Runtime Environment\1.6'
|
||||
$Java6RegValue = 'JavaHome'
|
||||
If (-not $Java6Home -and (Test-Path $Java6RegKey)) {
|
||||
$JavaHomeKey = Get-Item -LiteralPath $Java6RegKey
|
||||
If ($JavaHomeKey.GetValue($Java6RegValue, $null) -ne $null) {
|
||||
$JavaHomeProperty = Get-ItemProperty $Java6RegKey $Java6RegValue
|
||||
$Java6Home = $JavaHomeProperty.$Java6RegValue
|
||||
}
|
||||
}
|
||||
|
||||
# this is configured here for path checking, but also in the .props and .targets files
|
||||
[xml]$pom = Get-Content "..\tool\pom.xml"
|
||||
$CSharpToolVersionNodeInfo = Select-Xml "/mvn:project/mvn:version" -Namespace @{mvn='http://maven.apache.org/POM/4.0.0'} $pom
|
||||
$CSharpToolVersion = $CSharpToolVersionNodeInfo.Node.InnerText.trim()
|
||||
|
||||
# build the main project
|
||||
$msbuild = "$env:windir\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe"
|
||||
|
||||
&$msbuild '/nologo' '/m' '/nr:false' "/t:$Target" "/p:Configuration=$BuildConfig" "/p:VisualStudioVersion=$VisualStudioVersion" $SolutionPath
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
$host.ui.WriteErrorLine('Build failed, aborting!')
|
||||
exit $p.ExitCode
|
||||
}
|
||||
|
||||
# build the compact framework project
|
||||
$msbuild = "$env:windir\Microsoft.NET\Framework\v4.0.30319\msbuild.exe"
|
||||
|
||||
&$msbuild '/nologo' '/m' '/nr:false' '/t:rebuild' "/p:Configuration=$BuildConfig" $CF35SolutionPath
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
$host.ui.WriteErrorLine('.NET 3.5 Compact Framework Build failed, aborting!')
|
||||
exit $p.ExitCode
|
||||
}
|
||||
|
||||
if (-not (Test-Path 'nuget')) {
|
||||
mkdir "nuget"
|
||||
}
|
||||
|
||||
# Build the Java library using Maven
|
||||
If (-not $SkipMaven) {
|
||||
$OriginalPath = $PWD
|
||||
|
||||
cd '..\tool'
|
||||
$MavenPath = "$MavenHome\bin\mvn.bat"
|
||||
If (-not (Test-Path $MavenPath)) {
|
||||
$host.ui.WriteErrorLine("Couldn't locate Maven binary: $MavenPath")
|
||||
cd $OriginalPath
|
||||
exit 1
|
||||
}
|
||||
|
||||
If (-not (Test-Path $Java6Home)) {
|
||||
$host.ui.WriteErrorLine("Couldn't locate Java 6 installation: $Java6Home")
|
||||
cd $OriginalPath
|
||||
exit 1
|
||||
}
|
||||
|
||||
$MavenGoal = 'package'
|
||||
&$MavenPath '-DskipTests=true' '--errors' '-e' '-Dgpg.useagent=true' "-Djava6.home=$Java6Home" '-Psonatype-oss-release' $MavenGoal
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
$host.ui.WriteErrorLine('Maven build of the C# Target custom Tool failed, aborting!')
|
||||
cd $OriginalPath
|
||||
exit $p.ExitCode
|
||||
}
|
||||
|
||||
cd $OriginalPath
|
||||
}
|
||||
|
||||
$JarPath = "..\tool\target\antlr4-csharp-$CSharpToolVersion-complete.jar"
|
||||
if (!(Test-Path $JarPath)) {
|
||||
$host.ui.WriteErrorLine("Couldn't locate the complete jar used for building C# parsers: $JarPath")
|
||||
exit 1
|
||||
}
|
||||
|
||||
# By default, do not create a NuGet package unless the expected strong name key files were used
|
||||
if (-not $SkipKeyCheck) {
|
||||
. .\keys.ps1
|
||||
|
||||
foreach ($pair in $Keys.GetEnumerator()) {
|
||||
$assembly = Resolve-FullPath -Path "..\runtime\CSharp\Antlr4.Runtime\bin\$($pair.Key)\$BuildConfig\Antlr4.Runtime.dll"
|
||||
# Run the actual check in a separate process or the current process will keep the assembly file locked
|
||||
powershell -Command ".\check-key.ps1 -Assembly '$assembly' -ExpectedKey '$($pair.Value)' -Build '$($pair.Key)'"
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Exit $p.ExitCode
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$packages = @(
|
||||
'Antlr4.Runtime'
|
||||
'Antlr4'
|
||||
'Antlr4.VS2008')
|
||||
|
||||
$nuget = '..\runtime\CSharp\.nuget\NuGet.exe'
|
||||
ForEach ($package in $packages) {
|
||||
If (-not (Test-Path ".\$package.nuspec")) {
|
||||
$host.ui.WriteErrorLine("Couldn't locate NuGet package specification: $package")
|
||||
exit 1
|
||||
}
|
||||
|
||||
&$nuget 'pack' ".\$package.nuspec" '-OutputDirectory' 'nuget' '-Prop' "Configuration=$BuildConfig" '-Version' "$AntlrVersion" '-Prop' "M2_REPO=$M2_REPO" '-Prop' "CSharpToolVersion=$CSharpToolVersion" '-Symbols'
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
param(
|
||||
[string]$Assembly,
|
||||
[string]$ExpectedKey,
|
||||
[string]$Build = $null
|
||||
)
|
||||
|
||||
function Get-PublicKeyToken() {
|
||||
param([string]$assembly = $null)
|
||||
if ($assembly) {
|
||||
$bytes = $null
|
||||
$bytes = [System.Reflection.Assembly]::ReflectionOnlyLoadFrom($assembly).GetName().GetPublicKeyToken()
|
||||
if ($bytes) {
|
||||
$key = ""
|
||||
for ($i=0; $i -lt $bytes.Length; $i++) {
|
||||
$key += "{0:x2}" -f $bytes[$i]
|
||||
}
|
||||
|
||||
$key
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (-not $Build) {
|
||||
$Build = $Assembly
|
||||
}
|
||||
|
||||
$actual = Get-PublicKeyToken -assembly $Assembly
|
||||
if ($actual -ne $ExpectedKey) {
|
||||
$host.ui.WriteErrorLine("Invalid publicKeyToken for '$Build'; expected '$ExpectedKey' but found '$actual'")
|
||||
exit 1
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
# Note: these values may only change during minor release
|
||||
$Keys = @{
|
||||
'net20' = '7983ae52036899ac'
|
||||
'net30' = '7671200403f6656a'
|
||||
'net35-cf' = '770a97458f51159e'
|
||||
'net35-client' = '4307381ae04f9aa7'
|
||||
'net40-client' = 'bb1075973a9370c4'
|
||||
'net45' = 'edc21c04cf562012'
|
||||
'netcore45' = 'e4e9019902d0b6e2'
|
||||
'portable-net40' = '90bf14da8e1462b4'
|
||||
'portable-net45' = '3d23c8e77559f391'
|
||||
}
|
||||
|
||||
function Resolve-FullPath() {
|
||||
param([string]$Path)
|
||||
[System.IO.Path]::GetFullPath((Join-Path (pwd) $Path))
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
. .\version.ps1
|
||||
|
||||
If ($AntlrVersion.EndsWith('-dev')) {
|
||||
$host.ui.WriteErrorLine("Cannot push development version '$AntlrVersion' to NuGet.")
|
||||
Exit 1
|
||||
}
|
||||
|
||||
$packages = @(
|
||||
'Antlr4.Runtime'
|
||||
'Antlr4'
|
||||
'Antlr4.VS2008')
|
||||
|
||||
# Make sure all packages exist before pushing any packages
|
||||
ForEach ($package in $packages) {
|
||||
If (-not (Test-Path ".\nuget\$package.$AntlrVersion.nupkg")) {
|
||||
$host.ui.WriteErrorLine("Couldn't locate NuGet package: $JarPath")
|
||||
exit 1
|
||||
}
|
||||
|
||||
If (-not (Test-Path ".\nuget\$package.$AntlrVersion.symbols.nupkg")) {
|
||||
$host.ui.WriteErrorLine("Couldn't locate NuGet symbols package: $JarPath")
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
$nuget = '..\runtime\CSharp\.nuget\NuGet.exe'
|
||||
ForEach ($package in $packages) {
|
||||
&$nuget 'push' ".\nuget\$package.$AntlrVersion.nupkg"
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
$AntlrVersion = "4.5.1"
|
Loading…
Reference in New Issue