diff --git a/Compiler/Analyzers/DeadCodeAnalyzer/JSIL.DeadCodeAnalyzer.csproj b/Compiler/Analyzers/DeadCodeAnalyzer/JSIL.DeadCodeAnalyzer.csproj index 4c228093d..ebfa6f638 100644 --- a/Compiler/Analyzers/DeadCodeAnalyzer/JSIL.DeadCodeAnalyzer.csproj +++ b/Compiler/Analyzers/DeadCodeAnalyzer/JSIL.DeadCodeAnalyzer.csproj @@ -49,6 +49,9 @@ <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> + <Compile Include="..\..\..\JSIL\Properties\GlobalAssemblyInfo.cs"> + <Link>Properties\GlobalAssemblyInfo.cs</Link> + </Compile> <Compile Include="Annotations.cs" /> <Compile Include="Configuration.cs" /> <Compile Include="DeadCodeInfoProvider.cs" /> diff --git a/Compiler/Analyzers/DeadCodeAnalyzer/Properties/AssemblyInfo.cs b/Compiler/Analyzers/DeadCodeAnalyzer/Properties/AssemblyInfo.cs index eb7309db9..ad3936617 100644 --- a/Compiler/Analyzers/DeadCodeAnalyzer/Properties/AssemblyInfo.cs +++ b/Compiler/Analyzers/DeadCodeAnalyzer/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following @@ -8,10 +7,6 @@ [assembly: AssemblyTitle("Dead code analyzer")] [assembly: AssemblyDescription(".NET assembly dead code analyzer for JSIL")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Dead code analyzer")] -[assembly: AssemblyCopyright("Copyright © 2014")] -[assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible @@ -20,16 +15,4 @@ [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("8d203439-f730-4ea9-aff7-a2885947080a")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.1.0.0")] \ No newline at end of file +[assembly: Guid("8d203439-f730-4ea9-aff7-a2885947080a")] \ No newline at end of file diff --git a/Compiler/Compiler.Executor.32bit.csproj b/Compiler/Compiler.Executor.32bit.csproj index 349f96a36..6a1db640b 100644 --- a/Compiler/Compiler.Executor.32bit.csproj +++ b/Compiler/Compiler.Executor.32bit.csproj @@ -14,7 +14,7 @@ <FileAlignment>512</FileAlignment> <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> <TargetFrameworkProfile /> - <LangVersion>5</LangVersion> + <LangVersion>5</LangVersion> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'"> <DebugSymbols>true</DebugSymbols> @@ -37,6 +37,10 @@ <ApplicationIcon>jsil.ico</ApplicationIcon> </PropertyGroup> <ItemGroup> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="..\JSIL\Properties\GlobalAssemblyInfo.cs"> + <Link>Properties\GlobalAssemblyInfo.cs</Link> + </Compile> <Compile Include="Executor.cs" /> </ItemGroup> <ItemGroup> diff --git a/Compiler/Compiler.csproj b/Compiler/Compiler.csproj index 9df4c4021..7d3670273 100644 --- a/Compiler/Compiler.csproj +++ b/Compiler/Compiler.csproj @@ -63,6 +63,10 @@ <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="..\JSIL\Properties\GlobalAssemblyInfo.cs"> + <Link>Properties\GlobalAssemblyInfo.cs</Link> + </Compile> <Compile Include="..\Upstream\Options.cs" /> <Compile Include="BuildGroup.cs" /> <Compile Include="Configuration.cs" /> @@ -75,7 +79,6 @@ <Compile Include="Profiles\ResourceConverter.cs" /> <Compile Include="Program.cs" /> <Compile Include="SolutionBuilder.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="VariableSet.cs" /> </ItemGroup> <ItemGroup> diff --git a/Compiler/Configuration.cs b/Compiler/Configuration.cs index 7d97adfbb..18f34de9b 100644 --- a/Compiler/Configuration.cs +++ b/Compiler/Configuration.cs @@ -43,6 +43,7 @@ public void MergeInto (SolutionBuildConfiguration result) { public bool? ReuseTypeInfoAcrossAssemblies; public bool? ProxyWarnings; public string OutputDirectory; + public string JsLibrariesOutputDirectory; public string FileOutputDirectory; public string Profile; public Dictionary<string, object> ProfileSettings = new Dictionary<string, object>(); @@ -66,6 +67,8 @@ public override void MergeInto (JSIL.Translator.Configuration result) { cc.ReuseTypeInfoAcrossAssemblies = ReuseTypeInfoAcrossAssemblies; if (OutputDirectory != null) cc.OutputDirectory = OutputDirectory; + if (JsLibrariesOutputDirectory != null) + cc.JsLibrariesOutputDirectory = JsLibrariesOutputDirectory; if (FileOutputDirectory != null) cc.FileOutputDirectory = FileOutputDirectory; if (Profile != null) @@ -108,6 +111,7 @@ public VariableSet ApplyTo (VariableSet variables) { result["CurrentDirectory"] = () => Environment.CurrentDirectory; result["ConfigDirectory"] = () => Path; result["OutputDirectory"] = () => OutputDirectory; + result["JsLibrariesOutputDirectory"] = () => JsLibrariesOutputDirectory; result["FileOutputDirectory"] = () => FileOutputDirectory; result["Profile"] = () => Profile; diff --git a/Compiler/Extensibility/IProfile.cs b/Compiler/Extensibility/IProfile.cs index 3e323b7da..76ec17de4 100644 --- a/Compiler/Extensibility/IProfile.cs +++ b/Compiler/Extensibility/IProfile.cs @@ -18,7 +18,7 @@ TranslationResultCollection Translate ( Configuration configuration, string assemblyPath, bool scanForProxies ); void WriteOutputs ( - VariableSet variables, TranslationResultCollection result, string path, bool quiet + VariableSet variables, TranslationResultCollection result, Configuration path, bool quiet ); void RegisterPostprocessors (IEnumerable<IEmitterGroupFactory> emitters, Configuration configuration, string assemblyPath, string[] skippedAssemblies); diff --git a/Compiler/Profiles/Base.cs b/Compiler/Profiles/Base.cs index e470d20d5..4b11b3d6e 100644 --- a/Compiler/Profiles/Base.cs +++ b/Compiler/Profiles/Base.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Reflection; using JSIL.Compiler.Extensibility; using JSIL.Utilities; @@ -24,7 +25,7 @@ public virtual TranslationResultCollection Translate ( public virtual void RegisterPostprocessors (IEnumerable<IEmitterGroupFactory> emitters, Configuration configuration, string assemblyPath, string[] skippedAssemblies) { } - public virtual void WriteOutputs (VariableSet variables, TranslationResultCollection result, string path,bool quiet) { + public virtual void WriteOutputs (VariableSet variables, TranslationResultCollection result, Configuration configuration, bool quiet) { foreach (var translationResult in result.TranslationResults) { if (!quiet) { @@ -32,7 +33,27 @@ public virtual void WriteOutputs (VariableSet variables, TranslationResultCollec Console.WriteLine(fe.Filename); } - translationResult.WriteToDirectory(path); + translationResult.WriteToDirectory(configuration.OutputDirectory); + } + + var jsilPath = Path.GetDirectoryName(JSIL.Internal.Util.GetPathOfAssembly(Assembly.GetExecutingAssembly())); + var searchPath = Path.Combine(jsilPath, "JS Libraries\\JsLibraries\\"); + if (!string.IsNullOrEmpty(configuration.JsLibrariesOutputDirectory) && Directory.Exists(searchPath)) + { + foreach (var file in Directory.GetFiles(searchPath, "*", SearchOption.AllDirectories)) { + var target = Uri.UnescapeDataString(Path.Combine(configuration.JsLibrariesOutputDirectory, new Uri(searchPath).MakeRelativeUri(new Uri(file)).ToString())) + .Replace('/', Path.DirectorySeparatorChar); + var directory = Path.GetDirectoryName(target); + if (!Directory.Exists(directory)) + Directory.CreateDirectory(directory); + + File.Copy(file, target, true); + + if (!quiet) + { + Console.WriteLine(target); + } + } } } diff --git a/Compiler/Profiles/XNA4/Profiles.XNA4.csproj b/Compiler/Profiles/XNA4/Profiles.XNA4.csproj index 5300ea9a9..09f6fef57 100644 --- a/Compiler/Profiles/XNA4/Profiles.XNA4.csproj +++ b/Compiler/Profiles/XNA4/Profiles.XNA4.csproj @@ -45,6 +45,9 @@ <Reference Include="System.XML" /> </ItemGroup> <ItemGroup> + <Compile Include="..\..\..\JSIL\Properties\GlobalAssemblyInfo.cs"> + <Link>Properties\GlobalAssemblyInfo.cs</Link> + </Compile> <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="..\XNACommon.cs" /> <Compile Include="XNA4Profile.cs" /> diff --git a/Compiler/Profiles/XNA4/Properties/AssemblyInfo.cs b/Compiler/Profiles/XNA4/Properties/AssemblyInfo.cs index 1347deca0..1cc5cd80e 100644 --- a/Compiler/Profiles/XNA4/Properties/AssemblyInfo.cs +++ b/Compiler/Profiles/XNA4/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following @@ -8,10 +7,6 @@ [assembly: AssemblyTitle("XNA4")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("XNA4")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible @@ -20,17 +15,4 @@ [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("d8124711-3e7f-47ac-a08d-4ab7de555aee")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: Guid("d8124711-3e7f-47ac-a08d-4ab7de555aee")] \ No newline at end of file diff --git a/Compiler/Program.cs b/Compiler/Program.cs index 0dfa6e519..b86baa5ea 100644 --- a/Compiler/Program.cs +++ b/Compiler/Program.cs @@ -188,6 +188,9 @@ AssemblyCache assemblyCache {"o=|out=", "Specifies the output directory for generated javascript and manifests.", (path) => commandLineConfig.OutputDirectory = Path.GetFullPath(path) }, + {"outLibraries=", + "Specifies the output directory for JSIL Libraries.", + (path) => commandLineConfig.JsLibrariesOutputDirectory = Path.GetFullPath(path) }, {"q|quiet", "Suppresses non-error/non-warning stderr messages.", (_) => commandLineConfig.Quiet = Quiet = true }, @@ -822,10 +825,16 @@ static void InternalMain (string[] arguments) { if (localConfig.OutputDirectory == null) throw new Exception("No output directory was specified!"); - var outputDir = MapPath(localConfig.OutputDirectory, localVariables, false); - CopiedOutputGatherer.EnsureDirectoryExists(outputDir); + localConfig.OutputDirectory = MapPath(localConfig.OutputDirectory, localVariables, false); + CopiedOutputGatherer.EnsureDirectoryExists(localConfig.OutputDirectory); - InformationWriteLine("// Saving output to '{0}'.", ShortenPath(outputDir) + Path.DirectorySeparatorChar); + InformationWriteLine("// Saving output to '{0}'.", ShortenPath(localConfig.OutputDirectory) + Path.DirectorySeparatorChar); + + if (!string.IsNullOrEmpty(localConfig.JsLibrariesOutputDirectory)) + { + localConfig.JsLibrariesOutputDirectory = MapPath(localConfig.JsLibrariesOutputDirectory, localVariables, false); + CopiedOutputGatherer.EnsureDirectoryExists(localConfig.JsLibrariesOutputDirectory); + } // Ensures that the log file contains the name of the profile that was actually used. localConfig.Profile = localProfile.GetType().Name; @@ -833,9 +842,9 @@ static void InternalMain (string[] arguments) { if (ignoredMethods.Count > 0) Console.Error.WriteLine("// {0} method(s) were ignored during translation. See the log for a list.", ignoredMethods.Count); - EmitLog(outputDir, localConfig, filename, outputs, ignoredMethods); + EmitLog(localConfig.OutputDirectory, localConfig, filename, outputs, ignoredMethods); - buildGroup.Profile.WriteOutputs(localVariables, outputs, outputDir, Quiet); + buildGroup.Profile.WriteOutputs(localVariables, outputs, localConfig, Quiet); totalFailureCount += translator.Failures.Count; } diff --git a/Compiler/Properties/AssemblyInfo.cs b/Compiler/Properties/AssemblyInfo.cs index ab6121707..50a6cd9cd 100644 --- a/Compiler/Properties/AssemblyInfo.cs +++ b/Compiler/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following @@ -8,10 +7,6 @@ [assembly: AssemblyTitle("JSILc")] [assembly: AssemblyDescription("JSIL Command Line Compiler")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Squared Interactive")] -[assembly: AssemblyProduct("JSIL")] -[assembly: AssemblyCopyright("Copyright © Squared Interactive 2011")] -[assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible @@ -20,16 +15,4 @@ [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("e2342fc2-c01e-470e-8191-fd22b94bb455")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.8.2.*")] +[assembly: Guid("e2342fc2-c01e-470e-8191-fd22b94bb455")] \ No newline at end of file diff --git a/GitVersion.yml b/GitVersion.yml new file mode 100644 index 000000000..2d0a1a661 --- /dev/null +++ b/GitVersion.yml @@ -0,0 +1,6 @@ +assembly-versioning-scheme: MajorMinorPatch +mode: ContinuousDeployment +next-version: 0.9.1 +branches: {} +ignore: + sha: [] diff --git a/JSIL.mscorlib/JSIL.mscorlib.csproj b/JSIL.mscorlib/JSIL.mscorlib.csproj index 3e44b6dcd..5f9d2797d 100644 --- a/JSIL.mscorlib/JSIL.mscorlib.csproj +++ b/JSIL.mscorlib/JSIL.mscorlib.csproj @@ -41,6 +41,9 @@ <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> + <Compile Include="..\JSIL\Properties\GlobalAssemblyInfo.cs"> + <Link>Properties\GlobalAssemblyInfo.cs</Link> + </Compile> <Compile Include="Imports.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="JSIL\System\NumberFormatter.cs" /> diff --git a/JSIL.mscorlib/Properties/AssemblyInfo.cs b/JSIL.mscorlib/Properties/AssemblyInfo.cs index 3a9b1e13e..56874004c 100644 --- a/JSIL.mscorlib/Properties/AssemblyInfo.cs +++ b/JSIL.mscorlib/Properties/AssemblyInfo.cs @@ -9,10 +9,6 @@ [assembly: AssemblyTitle("JSIL.mscorlib")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("JSIL.mscorlib")] -[assembly: AssemblyCopyright("Copyright © 2015")] -[assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible @@ -23,17 +19,5 @@ // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("aef2633e-e92c-4a0d-b8e0-a072ed404af7")] -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] [assembly: JSRepaceAssemblyDeclaration("mscorlib")] [assembly: JSOverrideAssemblyReference(typeof(object), "mscorlib")] \ No newline at end of file diff --git a/JSIL.nuspec b/JSIL.nuspec new file mode 100644 index 000000000..d16a8348d --- /dev/null +++ b/JSIL.nuspec @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> + <metadata> + <id>JSIL.Compiler</id> + <version>$version$</version> + <authors>Squared Interactive</authors> + <description>JSIL Command Line Compiler</description> + <language>en-US</language> + <projectUrl>https://github.com/sq/JSIL</projectUrl> + <licenseUrl>https://github.com/sq/JSIL/blob/master/LICENSE</licenseUrl> + </metadata> + <files> + <file src="bin\defaults.jsilconfig" target="tools" /> + <file src="bin\ICSharpCode.Decompiler.dll" target="tools" /> + <file src="bin\ICSharpCode.NRefactory.CSharp.dll" target="tools" /> + <file src="bin\ICSharpCode.NRefactory.dll" target="tools" /> + <file src="bin\JSIL.dll" target="tools" /> + <file src="bin\JSIL.Meta.dll" target="tools" /> + <file src="bin\JSIL.Proxies.4.0.dll" target="tools" /> + <file src="bin\JSIL.Proxies.Bcl.dll" target="tools" /> + <file src="bin\JSILc.exe" target="tools" /> + <file src="bin\JSILc.exe.config" target="tools" /> + <file src="bin\JSILc.AnyCPU.exe" target="tools" /> + <file src="bin\JSILc.AnyCPU.exe.config" target="tools" /> + <file src="bin\JSIL.Analysis.DCE.dll" target="tools" /> + <file src="bin\Mono.Cecil.dll" target="tools" /> + <file src="bin\Mono.Cecil.Mdb.dll" target="tools" /> + <file src="bin\Mono.Cecil.Pdb.dll" target="tools" /> + <file src="bin\JSIL.ExpressionInterpreter.dll" target="tools" /> + <file src="bin\JSIL.ExpressionInterpreter.pdb" target="tools" /> + <file src="bin\JS Libraries\**" target="tools\JS Libraries" /> + <file src="Libraries\" target="tools\JS Libraries\JsLibraries" /> + </files> +</package> \ No newline at end of file diff --git a/JSIL/JSIL.csproj b/JSIL/JSIL.csproj index 0a1dea55b..41fc605b6 100644 --- a/JSIL/JSIL.csproj +++ b/JSIL/JSIL.csproj @@ -85,6 +85,7 @@ <Compile Include="PackedStructArray.cs" /> <Compile Include="Progress.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="Properties\GlobalAssemblyInfo.cs" /> <Compile Include="SourceMapBuilder.cs" /> <Compile Include="SpecialIdentifiers.cs" /> <Compile Include="Threading.cs" /> diff --git a/JSIL/Properties/AssemblyInfo.cs b/JSIL/Properties/AssemblyInfo.cs index b6fa9bba6..aa9cb52b1 100644 --- a/JSIL/Properties/AssemblyInfo.cs +++ b/JSIL/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following @@ -8,10 +7,6 @@ [assembly: AssemblyTitle("JSIL")] [assembly: AssemblyDescription("MSIL to Javascript Translator Library")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Squared Interactive")] -[assembly: AssemblyProduct("JSIL")] -[assembly: AssemblyCopyright("Copyright © Squared Interactive 2011")] -[assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible @@ -21,15 +16,3 @@ // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("ab70f926-4c13-4da0-926c-05642b4857a7")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.8.2.*")] diff --git a/JSIL/Properties/GlobalAssemblyInfo.cs b/JSIL/Properties/GlobalAssemblyInfo.cs new file mode 100644 index 000000000..a67054205 --- /dev/null +++ b/JSIL/Properties/GlobalAssemblyInfo.cs @@ -0,0 +1,13 @@ +using System.Reflection; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyCompany("Squared Interactive")] +[assembly: AssemblyProduct("JSIL")] +[assembly: AssemblyCopyright("Copyright © Squared Interactive 2011")] +[assembly: AssemblyTrademark("")] + +[assembly: AssemblyVersion("0.9.0.0")] +[assembly: AssemblyInformationalVersion("0.9.0-local")] +[assembly: AssemblyFileVersion("0.9.0.0")] \ No newline at end of file diff --git a/MsBuild/JSIL.MsBuild.nuspec b/MsBuild/JSIL.MsBuild.nuspec new file mode 100644 index 000000000..71986cf93 --- /dev/null +++ b/MsBuild/JSIL.MsBuild.nuspec @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> + <metadata> + <id>JSIL.MsBuild</id> + <version>$version$</version> + <authors>Squared Interactive</authors> + <description>JSIL MsBuild Integration</description> + <language>en-US</language> + <projectUrl>https://github.com/sq/JSIL</projectUrl> + <licenseUrl>https://github.com/sq/JSIL/blob/master/LICENSE</licenseUrl> + <dependencies> + <dependency id="JSIL.Compiler" version="[$version$]" /> + </dependencies> + </metadata> + <files> + <file src="JSIL.MsBuild.targets" target="build" /> + </files> +</package> \ No newline at end of file diff --git a/MsBuild/JSIL.MsBuild.targets b/MsBuild/JSIL.MsBuild.targets new file mode 100644 index 000000000..324e2fdc0 --- /dev/null +++ b/MsBuild/JSIL.MsBuild.targets @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Target Name="JsilTranslation" AfterTargets="AfterBuild"> + <Exec Command="$(MSBuildThisFileDirectory)..\..\JSIL.Compiler.%VERSION%\tools\jsilc "$(TargetPath)"" WorkingDirectory="$(TargetDir)" /> + </Target> +</Project> \ No newline at end of file diff --git a/Proxies/BCL/Properties/AssemblyInfo.cs b/Proxies/BCL/Properties/AssemblyInfo.cs index a279c8589..4b504dad8 100644 --- a/Proxies/BCL/Properties/AssemblyInfo.cs +++ b/Proxies/BCL/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following @@ -8,10 +7,6 @@ [assembly: AssemblyTitle("JSIL Proxies BLC")] [assembly: AssemblyDescription("JSIL Standard Type Proxies for BCL assemblies")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Squared Interactive")] -[assembly: AssemblyProduct("JSIL")] -[assembly: AssemblyCopyright("Copyright © Squared Interactive 2011")] -[assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible @@ -20,17 +15,4 @@ [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("8BB79C50-0821-4C59-AFF8-21F25591F0E4")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: Guid("8BB79C50-0821-4C59-AFF8-21F25591F0E4")] \ No newline at end of file diff --git a/Proxies/BCL/Proxies.Bcl.csproj b/Proxies/BCL/Proxies.Bcl.csproj index a115dad89..1873d74eb 100644 --- a/Proxies/BCL/Proxies.Bcl.csproj +++ b/Proxies/BCL/Proxies.Bcl.csproj @@ -36,6 +36,9 @@ <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> + <Compile Include="..\..\JSIL\Properties\GlobalAssemblyInfo.cs"> + <Link>Properties\GlobalAssemblyInfo.cs</Link> + </Compile> <Compile Include="JSIL.Async.cs" /> <Compile Include="JSIL.Bootstrap.cs" /> <Compile Include="JSIL.Bootstrap.DateTime.cs" /> diff --git a/Proxies/Properties/AssemblyInfo.cs b/Proxies/Properties/AssemblyInfo.cs index a91ae75f4..0501077f5 100644 --- a/Proxies/Properties/AssemblyInfo.cs +++ b/Proxies/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following @@ -8,10 +7,6 @@ [assembly: AssemblyTitle("JSIL Proxies")] [assembly: AssemblyDescription("JSIL Standard Type Proxies")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Squared Interactive")] -[assembly: AssemblyProduct("JSIL")] -[assembly: AssemblyCopyright("Copyright © Squared Interactive 2011")] -[assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible @@ -20,17 +15,4 @@ [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("28ac4af1-39f8-41f5-9d58-83b0b906156f")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: Guid("28ac4af1-39f8-41f5-9d58-83b0b906156f")] \ No newline at end of file diff --git a/Proxies/Proxies.4.0.csproj b/Proxies/Proxies.4.0.csproj index 741b4772a..b0104ccfc 100644 --- a/Proxies/Proxies.4.0.csproj +++ b/Proxies/Proxies.4.0.csproj @@ -35,6 +35,9 @@ <Reference Include="System" /> </ItemGroup> <ItemGroup> + <Compile Include="..\JSIL\Properties\GlobalAssemblyInfo.cs"> + <Link>Properties\GlobalAssemblyInfo.cs</Link> + </Compile> <Compile Include="Array.cs" /> <Compile Include="Console.cs" /> <Compile Include="Collections.cs" /> diff --git a/Proxies/XNA4/Properties/AssemblyInfo.cs b/Proxies/XNA4/Properties/AssemblyInfo.cs index c2636547b..e29c9a7fd 100644 --- a/Proxies/XNA4/Properties/AssemblyInfo.cs +++ b/Proxies/XNA4/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following @@ -8,10 +7,6 @@ [assembly: AssemblyTitle("JSIL Proxies")] [assembly: AssemblyDescription("JSIL XNA Type Proxies")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Squared Interactive")] -[assembly: AssemblyProduct("JSIL")] -[assembly: AssemblyCopyright("Copyright © Squared Interactive 2011")] -[assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible @@ -21,16 +16,3 @@ // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("e5eb9c65-1323-4620-bae8-c856b9df3a99")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Proxies/XNA4/Proxies.XNA4.csproj b/Proxies/XNA4/Proxies.XNA4.csproj index c65c2d004..55831776d 100644 --- a/Proxies/XNA4/Proxies.XNA4.csproj +++ b/Proxies/XNA4/Proxies.XNA4.csproj @@ -45,6 +45,9 @@ <Reference Include="System.Core" /> </ItemGroup> <ItemGroup> + <Compile Include="..\..\JSIL\Properties\GlobalAssemblyInfo.cs"> + <Link>Properties\GlobalAssemblyInfo.cs</Link> + </Compile> <Compile Include="..\XNACommon\Primitives.cs" /> <Compile Include="..\XNACommon\UnsafeNativeMethods.cs" /> <Compile Include="..\XNACommon\Content.cs" /> diff --git a/Tests.DCE/Properties/AssemblyInfo.cs b/Tests.DCE/Properties/AssemblyInfo.cs index 06be022a3..6c6934c82 100644 --- a/Tests.DCE/Properties/AssemblyInfo.cs +++ b/Tests.DCE/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following @@ -8,10 +7,6 @@ [assembly: AssemblyTitle("Tests.DCE")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Tests.DCE")] -[assembly: AssemblyCopyright("Copyright © 2015")] -[assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible @@ -20,17 +15,4 @@ [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("940a7fc1-3cff-43cf-bac7-a27ab18cd0b1")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: Guid("940a7fc1-3cff-43cf-bac7-a27ab18cd0b1")] \ No newline at end of file diff --git a/Tests.DCE/Tests.DCE.csproj b/Tests.DCE/Tests.DCE.csproj index 3087e38bb..8ddaa0863 100644 --- a/Tests.DCE/Tests.DCE.csproj +++ b/Tests.DCE/Tests.DCE.csproj @@ -76,6 +76,9 @@ <None Include="DCETests\DCEMetaAttributesOnProxies.cs" /> <None Include="DCETests\StripOuterTypes.cs" /> <None Include="DCETests\StripInterfaceImplementation.cs" /> + <Compile Include="..\JSIL\Properties\GlobalAssemblyInfo.cs"> + <Link>Properties\GlobalAssemblyInfo.cs</Link> + </Compile> <Compile Include="DeadCodeEliminationTest.cs" /> <None Include="app.config" /> <Compile Include="Properties\AssemblyInfo.cs" /> diff --git a/Tests/Properties/AssemblyInfo.cs b/Tests/Properties/AssemblyInfo.cs index 51071f128..9ada073fa 100644 --- a/Tests/Properties/AssemblyInfo.cs +++ b/Tests/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following @@ -8,10 +7,6 @@ [assembly: AssemblyTitle("Tests")] [assembly: AssemblyDescription("JSIL Test Suite")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Squared Interactive")] -[assembly: AssemblyProduct("JSIL")] -[assembly: AssemblyCopyright("Copyright © Squared Interactive 2011")] -[assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible @@ -20,17 +15,4 @@ [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("ca7c359b-0f27-40c7-ba51-7220a6c69e65")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: Guid("ca7c359b-0f27-40c7-ba51-7220a6c69e65")] \ No newline at end of file diff --git a/Tests/SimpleTests.csproj b/Tests/SimpleTests.csproj index 6c9957201..91b562b5d 100644 --- a/Tests/SimpleTests.csproj +++ b/Tests/SimpleTests.csproj @@ -110,6 +110,9 @@ <None Include="SimpleTestCases\RawTypeIsObject_Issue754.cs" /> <None Include="SimpleTestCases\HashSetSameHash_Issue752.cs" /> <None Include="SimpleTestCases\ArrayClearGeneric.cs" /> + <Compile Include="..\JSIL\Properties\GlobalAssemblyInfo.cs"> + <Link>Properties\GlobalAssemblyInfo.cs</Link> + </Compile> <Compile Include="SimpleTestCasesForStubbedBcl.cs" /> <None Include="SimpleTestCasesForTranslatedBcl\FailsOnMono\Attributes.cs" /> <Compile Include="SimpleTestCasesForTranslatedBcl.cs" /> diff --git a/Tests/Tests.csproj b/Tests/Tests.csproj index 3a5f55f23..6a6df9223 100644 --- a/Tests/Tests.csproj +++ b/Tests/Tests.csproj @@ -161,6 +161,9 @@ <None Include="EmscriptenTestCases\OutUnionParameter.cs" /> <None Include="EmscriptenTestCases\OutComplexUnionParameter.cs" /> <None Include="EmscriptenTestCases\ReturnEnum.cs" /> + <Compile Include="..\JSIL\Properties\GlobalAssemblyInfo.cs"> + <Link>Properties\GlobalAssemblyInfo.cs</Link> + </Compile> <Compile Include="EmscriptenTestCases\ProxiedExternFunction.cs" /> <None Include="EmscriptenTestCases\IntPtrZeroEquality.cs" /> <None Include="EmscriptenTestCases\StringArrayParameter.cs" /> diff --git a/appveyor.yml b/appveyor.yml index 9413e561f..690fa56c2 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -5,7 +5,22 @@ cache: install: - git submodule update --init --recursive - nuget restore JSIL.sln + - choco install gitversion.portable -pre -y + - ps: gitversion /l console /output buildserver /updateAssemblyInfo JSIL\Properties\GlobalAssemblyInfo.cs build_script: - msbuild "JSIL.sln" /m /verbosity:minimal /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" /P:Platform=NoXNA +after_build: + - ps: (gc MsBuild\JSIL.MsBuild.targets) -replace '%VERSION%', $Env:GitVersion_NuGetVersion | Out-File -Encoding "UTF8" MsBuild\JSIL.MsBuild.targets + - cmd: nuget pack JSIL.nuspec -version "%GitVersion_NuGetVersion%" + - cmd: nuget pack MsBuild\JSIL.MsBuild.nuspec -version "%GitVersion_NuGetVersion%" test_script: - - nunit-console-x86 bin\Tests.DCE.dll bin\SimpleTests.dll bin\Tests.dll /include:"FailsOnMono|(FailsOnMonoWhenStubbed+Stubbed)|(FailsOnMonoWhenStubbed+Translated)" \ No newline at end of file + - nunit-console-x86 bin\Tests.DCE.dll bin\SimpleTests.dll bin\Tests.dll /include:"FailsOnMono|(FailsOnMonoWhenStubbed+Stubbed)|(FailsOnMonoWhenStubbed+Translated)" +artifacts: + - path: '*.nupkg' +deploy: + provider: NuGet + server: https://www.myget.org/F/jsil/api/v2/package + api_key: + secure: EBvntnmrV7ni1xQY8grb2sUAOeMlNqGkkqRSdMJrLPG5N42YRCxhZ7DT5Nor/l6k + skip_symbols: true + artifact: /.*\.nupkg/ \ No newline at end of file