diff --git a/build.cmd b/build.cmd
index af6f8fab7..5b8fb648b 100644
--- a/build.cmd
+++ b/build.cmd
@@ -11,6 +11,11 @@ if not %2.==. (
set Target=%2
)
+set FrameworkVersion=v3.5
+if not %3.==. (
+ set FrameworkVersion=%3
+)
+
if %Target%==Rebuild (
del /Q unity\PackageProject\Assets\Plugins\GitHub\Editor\*.dll
del /Q unity\PackageProject\Assets\Plugins\GitHub\Editor\*.mdb
@@ -25,8 +30,8 @@ if %Target%==Rebuild (
call common\nuget.exe restore GitHub.Unity.sln
-echo xbuild GitHub.Unity.sln /verbosity:normal /property:Configuration=%Configuration% /target:%Target%
-call xbuild GitHub.Unity.sln /verbosity:normal /property:Configuration=%Configuration% /target:%Target%
+echo xbuild GitHub.Unity.sln /verbosity:normal /property:Configuration=%Configuration% /property:TargetFrameworkVersion=%FrameworkVersion% /target:%Target%
+call xbuild GitHub.Unity.sln /verbosity:normal /property:Configuration=%Configuration% /property:TargetFrameworkVersion=%FrameworkVersion% /target:%Target%
del /Q unity\PackageProject\Assets\Plugins\GitHub\Editor\deleteme*
del /Q unity\PackageProject\Assets\Plugins\GitHub\Editor\deleteme*
diff --git a/build.sh b/build.sh
index 900c994f7..5ffd2ec36 100755
--- a/build.sh
+++ b/build.sh
@@ -9,6 +9,11 @@ if [ $# -gt 1 ]; then
Target=$2
fi
+FrameworkVersion="v3.5"
+if [ $# -gt 2 ]; then
+ FrameworkVersion=$3
+fi
+
if [ x"$Target" == x"Rebuild" ]; then
rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/*.dll
rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/*.mdb
@@ -32,7 +37,7 @@ else
mono common/nuget.exe restore GitHub.Unity.sln
fi
-xbuild GitHub.Unity.sln /verbosity:minimal /property:Configuration=$Configuration /target:$Target || true
+xbuild GitHub.Unity.sln /verbosity:minimal /property:Configuration=$Configuration /property:TargetFrameworkVersion=$FrameworkVersion /target:$Target || true
rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/deleteme*
rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/deleteme*
diff --git a/common/properties.props b/common/properties.props
index 977f217b3..1c1ae16cc 100644
--- a/common/properties.props
+++ b/common/properties.props
@@ -5,6 +5,7 @@
Internal
ENABLE_METRICS
$(BuildDefs);ENABLE_MONO
+ NET35
$(SolutionDir)script\lib\
$(SolutionDir)lib\
diff --git a/package.cmd b/package.cmd
index e25ddbd41..f3c6cb7ac 100644
--- a/package.cmd
+++ b/package.cmd
@@ -25,6 +25,11 @@ if %ChangeConfigurationToDebug%==1 (
set Configuration=Debug
)
+set FrameworkVersion=v3.5
+if not %3.==. (
+ set FrameworkVersion=%3
+)
+
set Unity=%UnityPath%\Editor\Unity.exe
if not exist "%Unity%" (
echo Cannot find Unity at %Unity%
@@ -39,8 +44,8 @@ if not exist "%Unity%" (
cd ..
call common\nuget.exe restore GitHub.Unity.sln
- echo xbuild GitHub.Unity.sln /property:Configuration=%Configuration%
- call xbuild GitHub.Unity.sln /property:Configuration=%Configuration%
+ echo xbuild GitHub.Unity.sln /property:Configuration=%Configuration% property:TargetFrameworkVersion=%FrameworkVersion%
+ call xbuild GitHub.Unity.sln /property:Configuration=%Configuration% property:TargetFrameworkVersion=%FrameworkVersion%
del /Q unity\PackageProject\Assets\Plugins\GitHub\Editor\deleteme*
del /Q unity\PackageProject\Assets\Plugins\GitHub\Editor\*.pdb
@@ -50,6 +55,9 @@ if not exist "%Unity%" (
for /f tokens^=^2^ usebackq^ delims^=^" %%G in (`find "const string Version" common\SolutionInfo.cs`) do call :Package %%G
goto End
+
+ rem TODO: Put FrameworkVersion into unitypackage name
+ rem TODO: Remove AsyncBridge related metas
:Package
set Version=%1
diff --git a/package.sh b/package.sh
index ca09bd5e5..075029f8b 100755
--- a/package.sh
+++ b/package.sh
@@ -14,6 +14,11 @@ if [ $# -gt 1 ]; then
esac
fi
+FrameworkVersion="v3.5"
+if [ $# -gt 2 ]; then
+ FrameworkVersion=$3
+fi
+
pushd unity/PackageProject/Assets
git clean -xdf
popd
@@ -51,17 +56,37 @@ else
nuget restore GitHub.Unity.sln
fi
-xbuild GitHub.Unity.sln /property:Configuration=$Configuration
+xbuild GitHub.Unity.sln /property:Configuration=$Configuration /property:TargetFrameworkVersion=$FrameworkVersion
rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/deleteme*
rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/*.pdb
rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/*.pdb.meta
rm -f unity/PackageProject/Assets/Plugins/GitHub/Editor/*.xml
+# There should be a better way to deal with these
+if [ x"$FrameworkVersion" != x"v3.5" ]; then
+ mv unity/PackageProject/Assets/Plugins/GitHub/Editor/AsyncBridge.Net35.dll.meta ./
+ mv unity/PackageProject/Assets/Plugins/GitHub/Editor/ReadOnlyCollectionsInterfaces.dll.meta ./
+ mv unity/PackageProject/Assets/Plugins/GitHub/Editor/System.Threading.dll.meta ./
+
+ rm -f ../github-unity-test/GitHubExtensionProject/Assets/Plugins/GitHub/Editor/AsyncBridge.Net35.dll.meta
+ rm -f ../github-unity-test/GitHubExtensionProject/Assets/Plugins/GitHub/Editor/ReadOnlyCollectionsInterfaces.dll.meta
+ rm -f ../github-unity-test/GitHubExtensionProject/Assets/Plugins/GitHub/Editor/System.Threading.dll.meta
+fi
+
Version=`sed -En 's,.*Version = "(.*)".*,\1,p' common/SolutionInfo.cs`
commitcount=`git rev-list --count HEAD`
commit=`git log -n1 --pretty=format:%h`
-Version="${Version}.${commitcount}-${commit}"
+DotNetVersion=${FrameworkVersion:1}
+DotNetVersion="$(echo $DotNetVersion | tr -d .)"
+Version="${Version}.${commitcount}-${commit}.net${DotNetVersion}"
Version=$Version
+
export GITHUB_UNITY_DISABLE=1
"$Unity" -batchmode -projectPath "`pwd`/unity/PackageProject" -exportPackage Assets/Plugins/GitHub/Editor github-for-unity-$Version.unitypackage -force-free -quit
+
+if [ x"$FrameworkVersion" != x"v3.5" ]; then
+ mv ./AsyncBridge.Net35.dll.meta unity/PackageProject/Assets/Plugins/GitHub/Editor/
+ mv ./ReadOnlyCollectionsInterfaces.dll.meta unity/PackageProject/Assets/Plugins/GitHub/Editor/
+ mv ./System.Threading.dll.meta unity/PackageProject/Assets/Plugins/GitHub/Editor/
+fi
diff --git a/src/GitHub.Api/GitHub.Api.csproj b/src/GitHub.Api/GitHub.Api.csproj
index 4b2137e88..9acdd351b 100644
--- a/src/GitHub.Api/GitHub.Api.csproj
+++ b/src/GitHub.Api/GitHub.Api.csproj
@@ -55,31 +55,33 @@
Debug
-
+
$(SolutionDir)\packages\AsyncBridge.Net35.0.2.3333.0\lib\net35-Client\AsyncBridge.Net35.dll
True
+
+ $(SolutionDir)\lib\sfw\sfw.net.dll
+ True
+
+
+ $(SolutionDir).\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll
+ True
+
+
+
$(SolutionDir)lib\ICSharpCode.SharpZipLib.dll
$(SolutionDir)lib\Mono.Posix.dll
-
- $(SolutionDir)packages\ReadOnlyCollectionInterfaces.1.0.0\lib\NET20\ReadOnlyCollectionsInterfaces.dll
- True
-
$(SolutionDir)\lib\sfw\sfw.net.dll
True
-
- $(SolutionDir).\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll
- True
-
@@ -236,6 +238,7 @@
+
diff --git a/src/GitHub.Api/Tasks/TaskEx.cs b/src/GitHub.Api/Tasks/TaskEx.cs
new file mode 100644
index 000000000..0f20d175d
--- /dev/null
+++ b/src/GitHub.Api/Tasks/TaskEx.cs
@@ -0,0 +1,57 @@
+#if !NET35
+using System;
+using System.Collections.Generic;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace GitHub.Unity
+{
+ public static class TaskEx
+ {
+ public static Task FromResult(TResult result)
+ {
+ return Task.FromResult(result);
+ }
+
+ public static Task WhenAny(System.Collections.Generic.IEnumerable tasks)
+ {
+ return Task.WhenAny(tasks);
+ }
+
+ public static Task WhenAny(params Task[] tasks)
+ {
+ return Task.WhenAny(tasks);
+ }
+
+ public static Task> WhenAny(IEnumerable> tasks)
+ {
+ return Task.WhenAny(tasks);
+ }
+
+ public static Task> WhenAny(params Task[] tasks)
+ {
+ return Task.WhenAny(tasks);
+ }
+
+ public static Task Delay(int millisecondsDelay)
+ {
+ return Task.Delay(millisecondsDelay);
+ }
+
+ public static Task Delay(int millisecondsDelay, CancellationToken cancellationToken)
+ {
+ return Task.Delay(millisecondsDelay, cancellationToken);
+ }
+
+ public static Task Delay(TimeSpan delay)
+ {
+ return Task.Delay(delay);
+ }
+
+ public static Task Delay(TimeSpan delay, CancellationToken cancellationToken)
+ {
+ return Task.Delay(delay, cancellationToken);
+ }
+ }
+}
+#endif
diff --git a/src/UnityExtension/Assets/Editor/GitHub.Unity/GitHub.Unity.csproj b/src/UnityExtension/Assets/Editor/GitHub.Unity/GitHub.Unity.csproj
index 95b438d79..8f36e2e94 100644
--- a/src/UnityExtension/Assets/Editor/GitHub.Unity/GitHub.Unity.csproj
+++ b/src/UnityExtension/Assets/Editor/GitHub.Unity/GitHub.Unity.csproj
@@ -51,13 +51,15 @@
false
true
-
-
-
+
$(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll
True
+
+
+
+
$(UnityDir)Managed\UnityEditor.dll
False
diff --git a/src/packaging/CopyLibrariesToPackageProject/CopyLibrariesToPackageProject.csproj b/src/packaging/CopyLibrariesToPackageProject/CopyLibrariesToPackageProject.csproj
index 179d6dbe3..725a58849 100644
--- a/src/packaging/CopyLibrariesToPackageProject/CopyLibrariesToPackageProject.csproj
+++ b/src/packaging/CopyLibrariesToPackageProject/CopyLibrariesToPackageProject.csproj
@@ -29,6 +29,20 @@
prompt
4
+
+
+ $(SolutionDir)\packages\AsyncBridge.Net35.0.2.3333.0\lib\net35-Client\AsyncBridge.Net35.dll
+ True
+
+
+ $(SolutionDir)\packages\ReadOnlyCollectionInterfaces.1.0.0\lib\NET20\ReadOnlyCollectionsInterfaces.dll
+ True
+
+
+ $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll
+ True
+
+
{b389adaf-62cc-486e-85b4-2d8b078df763}
@@ -43,23 +57,11 @@
GitHub.Unity
True
-
- $(SolutionDir)\packages\AsyncBridge.Net35.0.2.3333.0\lib\net35-Client\AsyncBridge.Net35.dll
- True
-
-
- $(SolutionDir)\packages\ReadOnlyCollectionInterfaces.1.0.0\lib\NET20\ReadOnlyCollectionsInterfaces.dll
- True
-
$(SolutionDir)\lib\sfw\sfw.net.dll
True
-
- $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll
- True
-
diff --git a/src/tests/IntegrationTests/IntegrationTests.csproj b/src/tests/IntegrationTests/IntegrationTests.csproj
index 351a6d571..15daa1824 100644
--- a/src/tests/IntegrationTests/IntegrationTests.csproj
+++ b/src/tests/IntegrationTests/IntegrationTests.csproj
@@ -31,11 +31,17 @@
prompt
4
-
+
$(SolutionDir)\packages\AsyncBridge.Net35.0.2.3333.0\lib\net35-Client\AsyncBridge.Net35.dll
True
+
+ $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll
+ True
+
+
+
$(SolutionDir)packages\FluentAssertions.2.2.0.0\lib\net35\FluentAssertions.dll
True
@@ -58,10 +64,6 @@
-
- $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll
- True
-
diff --git a/src/tests/IntegrationTests/Metrics/MetricsTests.cs b/src/tests/IntegrationTests/Metrics/MetricsTests.cs
index 3d7fa1bdb..6ec07cbe7 100644
--- a/src/tests/IntegrationTests/Metrics/MetricsTests.cs
+++ b/src/tests/IntegrationTests/Metrics/MetricsTests.cs
@@ -1,4 +1,6 @@
-using GitHub.Unity;
+#if ENABLE_METRICS
+
+using GitHub.Unity;
using NSubstitute;
using NUnit.Framework;
using System;
@@ -119,3 +121,5 @@ public void SubmissionWorks()
}
}
}
+
+#endif
\ No newline at end of file
diff --git a/src/tests/TaskSystemIntegrationTests/TaskSystem.csproj b/src/tests/TaskSystemIntegrationTests/TaskSystem.csproj
index f81af7392..c98c427c3 100644
--- a/src/tests/TaskSystemIntegrationTests/TaskSystem.csproj
+++ b/src/tests/TaskSystemIntegrationTests/TaskSystem.csproj
@@ -33,11 +33,17 @@
4
false
-
+
$(SolutionDir)\packages\AsyncBridge.Net35.0.2.3333.0\lib\net35-Client\AsyncBridge.Net35.dll
True
+
+ $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll
+ True
+
+
+
..\..\..\packages\FluentAssertions.2.2.0.0\lib\net35\FluentAssertions.dll
True
@@ -52,10 +58,6 @@
-
- $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll
- True
-
diff --git a/src/tests/TestUtils/TestUtils.csproj b/src/tests/TestUtils/TestUtils.csproj
index 8ae36c41d..c40cdfd8c 100644
--- a/src/tests/TestUtils/TestUtils.csproj
+++ b/src/tests/TestUtils/TestUtils.csproj
@@ -29,11 +29,17 @@
prompt
4
-
+
..\..\..\packages\AsyncBridge.Net35.0.2.3333.0\lib\net35-Client\AsyncBridge.Net35.dll
True
+
+ $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll
+ True
+
+
+
$(SolutionDir)packages\FluentAssertions.2.2.0.0\lib\net35\FluentAssertions.dll
True
@@ -48,10 +54,6 @@
-
- $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll
- True
-
diff --git a/src/tests/UnitTests/UnitTests.csproj b/src/tests/UnitTests/UnitTests.csproj
index bff3c8d57..58fb02f15 100644
--- a/src/tests/UnitTests/UnitTests.csproj
+++ b/src/tests/UnitTests/UnitTests.csproj
@@ -37,11 +37,17 @@
-
+
$(SolutionDir)\packages\AsyncBridge.Net35.0.2.3333.0\lib\net35-Client\AsyncBridge.Net35.dll
True
+
+ $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll
+ True
+
+
+
$(SolutionDir)packages\FluentAssertions.2.2.0.0\lib\net35\FluentAssertions.dll
True
@@ -60,10 +66,6 @@
-
- $(SolutionDir)\packages\TaskParallelLibrary.1.0.3333.0\lib\Net35\System.Threading.dll
- True
-