From c67f9fb727968f2206b185d4d0f4f1eb2b32f367 Mon Sep 17 00:00:00 2001 From: WonYoung Choi Date: Thu, 28 Jul 2016 16:56:33 +0900 Subject: [PATCH] Fix code for building with corefx Change-Id: Ica20c04eb12e499fb8ccbfa5da90b391cc972270 --- Tizen.Applications/CoreFx.References.targets | 265 +++++++++++++++++++++ Tizen.Applications/Tizen.Applications.csproj | 5 +- Tizen.Applications/Tizen.Applications.csproj.user | 6 - .../Tizen.Applications/AppControl.cs | 38 +-- Tizen.Applications/Tizen.Applications/Bundle.cs | 7 +- .../Tizen.Applications/EventNotification.cs | 2 +- .../Tizen.Applications/Notification.cs | 18 +- packaging/csapi-application.spec | 26 +- 8 files changed, 314 insertions(+), 53 deletions(-) create mode 100644 Tizen.Applications/CoreFx.References.targets delete mode 100755 Tizen.Applications/Tizen.Applications.csproj.user diff --git a/Tizen.Applications/CoreFx.References.targets b/Tizen.Applications/CoreFx.References.targets new file mode 100644 index 0000000..dab29ec --- /dev/null +++ b/Tizen.Applications/CoreFx.References.targets @@ -0,0 +1,265 @@ + + + + + False + $(CoreFxPath)/Microsoft.Win32.Primitives.dll + + + False + $(CoreFxPath)/System.AppContext.dll + + + False + $(CoreFxPath)/System.Collections.Concurrent.dll + + + False + $(CoreFxPath)/System.Collections.dll + + + False + $(CoreFxPath)/System.ComponentModel.Annotations.dll + + + False + $(CoreFxPath)/System.ComponentModel.dll + + + False + $(CoreFxPath)/System.Console.dll + + + False + $(CoreFxPath)/System.Diagnostics.Debug.dll + + + False + $(CoreFxPath)/System.Diagnostics.Process.dll + + + False + $(CoreFxPath)/System.Diagnostics.Tools.dll + + + False + $(CoreFxPath)/System.Diagnostics.TraceSource.dll + + + False + $(CoreFxPath)/System.Diagnostics.Tracing.dll + + + False + $(CoreFxPath)/System.Dynamic.Runtime.dll + + + False + $(CoreFxPath)/System.Globalization.Calendars.dll + + + False + $(CoreFxPath)/System.Globalization.dll + + + False + $(CoreFxPath)/System.Globalization.Extensions.dll + + + False + $(CoreFxPath)/System.IO.Compression.dll + + + False + $(CoreFxPath)/System.IO.Compression.ZipFile.dll + + + False + $(CoreFxPath)/System.IO.dll + + + False + $(CoreFxPath)/System.IO.FileSystem.dll + + + False + $(CoreFxPath)/System.IO.FileSystem.Primitives.dll + + + False + $(CoreFxPath)/System.IO.FileSystem.Watcher.dll + + + False + $(CoreFxPath)/System.IO.MemoryMappedFiles.dll + + + False + $(CoreFxPath)/System.IO.UnmanagedMemoryStream.dll + + + False + $(CoreFxPath)/System.Linq.dll + + + False + $(CoreFxPath)/System.Linq.Expressions.dll + + + False + $(CoreFxPath)/System.Linq.Parallel.dll + + + False + $(CoreFxPath)/System.Linq.Queryable.dll + + + False + $(CoreFxPath)/System.Net.Http.dll + + + False + $(CoreFxPath)/System.Net.NameResolution.dll + + + False + $(CoreFxPath)/System.Net.Primitives.dll + + + False + $(CoreFxPath)/System.Net.Requests.dll + + + False + $(CoreFxPath)/System.Net.Security.dll + + + False + $(CoreFxPath)/System.Net.Sockets.dll + + + False + $(CoreFxPath)/System.Net.WebHeaderCollection.dll + + + False + $(CoreFxPath)/System.Numerics.Vectors.dll + + + False + $(CoreFxPath)/System.ObjectModel.dll + + + False + $(CoreFxPath)/System.Reflection.DispatchProxy.dll + + + False + $(CoreFxPath)/System.Reflection.dll + + + False + $(CoreFxPath)/System.Reflection.Extensions.dll + + + False + $(CoreFxPath)/System.Reflection.Primitives.dll + + + False + $(CoreFxPath)/System.Reflection.TypeExtensions.dll + + + False + $(CoreFxPath)/System.Resources.ResourceManager.dll + + + False + $(CoreFxPath)/System.Runtime.dll + + + False + $(CoreFxPath)/System.Runtime.Extensions.dll + + + False + $(CoreFxPath)/System.Runtime.Handles.dll + + + False + $(CoreFxPath)/System.Runtime.InteropServices.dll + + + False + $(CoreFxPath)/System.Runtime.InteropServices.RuntimeInformation.dll + + + False + $(CoreFxPath)/System.Runtime.Loader.dll + + + False + $(CoreFxPath)/System.Runtime.Numerics.dll + + + False + $(CoreFxPath)/System.Security.Cryptography.Algorithms.dll + + + False + $(CoreFxPath)/System.Security.Cryptography.Encoding.dll + + + False + $(CoreFxPath)/System.Security.Cryptography.Primitives.dll + + + False + $(CoreFxPath)/System.Security.Cryptography.X509Certificates.dll + + + False + $(CoreFxPath)/System.Text.Encoding.dll + + + False + $(CoreFxPath)/System.Text.Encoding.Extensions.dll + + + False + $(CoreFxPath)/System.Text.RegularExpressions.dll + + + False + $(CoreFxPath)/System.Threading.dll + + + False + $(CoreFxPath)/System.Threading.Tasks.dll + + + False + $(CoreFxPath)/System.Threading.Tasks.Parallel.dll + + + False + $(CoreFxPath)/System.Threading.Thread.dll + + + False + $(CoreFxPath)/System.Threading.ThreadPool.dll + + + False + $(CoreFxPath)/System.Threading.Timer.dll + + + False + $(CoreFxPath)/System.Xml.ReaderWriter.dll + + + False + $(CoreFxPath)/System.Xml.XDocument.dll + + + \ No newline at end of file diff --git a/Tizen.Applications/Tizen.Applications.csproj b/Tizen.Applications/Tizen.Applications.csproj index dcf347b..be2699c 100644 --- a/Tizen.Applications/Tizen.Applications.csproj +++ b/Tizen.Applications/Tizen.Applications.csproj @@ -40,7 +40,8 @@ Tizen.Applications.snk - + + @@ -164,4 +165,4 @@ --> - \ No newline at end of file + diff --git a/Tizen.Applications/Tizen.Applications.csproj.user b/Tizen.Applications/Tizen.Applications.csproj.user deleted file mode 100755 index 55f44b9..0000000 --- a/Tizen.Applications/Tizen.Applications.csproj.user +++ /dev/null @@ -1,6 +0,0 @@ - - - - ShowAllFiles - - \ No newline at end of file diff --git a/Tizen.Applications/Tizen.Applications/AppControl.cs b/Tizen.Applications/Tizen.Applications/AppControl.cs index d86fe64..124e28a 100644 --- a/Tizen.Applications/Tizen.Applications/AppControl.cs +++ b/Tizen.Applications/Tizen.Applications/AppControl.cs @@ -102,7 +102,7 @@ namespace Tizen.Applications /// /// The operation is the mandatory information for the launch request. If the operation is not specified, /// AppControlOperations.Default is used for the launch request. If the operation is AppControlOperations.Default, - /// the package information is mandatory to explicitly launch the application. + /// the package information is mandatory to explicitly launch the application. /// (if the operation is null for setter, it clears the previous value.) /// /// @@ -185,13 +185,13 @@ namespace Tizen.Applications /// Gets and sets the URI of the data. /// /// - /// Since Tizen 2.4, if the parameter 'uri' is started with 'file://' and - /// it is a regular file in this application's data path which can be obtained + /// Since Tizen 2.4, if the parameter 'uri' is started with 'file://' and + /// it is a regular file in this application's data path which can be obtained /// by property DataPath in ApplicationInfo class, - /// it will be shared to the callee application. - /// Framework will grant a temporary permission to the callee application for this file and + /// it will be shared to the callee application. + /// Framework will grant a temporary permission to the callee application for this file and /// revoke it when the callee application is terminated. - /// The callee application can just read it. + /// The callee application can just read it. /// (if the uri is null for setter, it clears the previous value.) /// /// @@ -316,13 +316,13 @@ namespace Tizen.Applications /// Gets and sets the launch mode of the application. /// /// - /// Although LaunchMode were set as AppControlLaunchMode.Group, - /// callee application would be launched as single mode + /// Although LaunchMode were set as AppControlLaunchMode.Group, + /// callee application would be launched as single mode /// if the manifest file of callee application defined the launch mode as "single". - /// This property can just set the preference of caller application to launch an application. + /// This property can just set the preference of caller application to launch an application. /// Sub-applications which were launched as group mode always have own process. - /// Since Tizen 3.0, if launch mode not set in the caller app control, - /// this property returns AppControlLaunchMode.Single launch mode. + /// Since Tizen 3.0, if launch mode not set in the caller app control, + /// this property returns AppControlLaunchMode.Single launch mode. /// /// /// @@ -437,11 +437,11 @@ namespace Tizen.Applications /// Sends the launch request. /// /// - /// The operation is mandatory information for the launch request. + /// The operation is mandatory information for the launch request. /// If the operation is not specified, AppControlOperations.Default is used by default. /// If the operation is AppControlOperations.Default, the application ID is mandatory to explicitly launch the application. \n - /// Since Tizen 2.4, the launch request of the service application over out of packages is restricted by the platform. - /// Also, implicit launch requests are NOT delivered to service applications since 2.4. + /// Since Tizen 2.4, the launch request of the service application over out of packages is restricted by the platform. + /// Also, implicit launch requests are NOT delivered to service applications since 2.4. /// To launch a service application, an explicit launch request with application ID given by property ApplicationId MUST be sent. /// /// The AppControl @@ -465,11 +465,11 @@ namespace Tizen.Applications /// Sends the launch request. /// /// - /// The operation is mandatory information for the launch request. + /// The operation is mandatory information for the launch request. /// If the operation is not specified, AppControlOperations.Default is used by default. /// If the operation is AppControlOperations.Default, the application ID is mandatory to explicitly launch the application. \n - /// Since Tizen 2.4, the launch request of the service application over out of packages is restricted by the platform. - /// Also, implicit launch requests are NOT delivered to service applications since 2.4. + /// Since Tizen 2.4, the launch request of the service application over out of packages is restricted by the platform. + /// Also, implicit launch requests are NOT delivered to service applications since 2.4. /// To launch a service application, an explicit launch request with application ID given by property ApplicationId MUST be sent. /// /// The AppControl @@ -819,7 +819,7 @@ namespace Tizen.Applications for (int i = 0; i < len; ++i) { IntPtr charArr = Marshal.ReadIntPtr(valuePtr, IntPtr.Size * i); - stringList.Add(Marshal.PtrToStringAuto(charArr)); + stringList.Add(Marshal.PtrToStringAnsi(charArr)); Interop.Libc.Free(charArr); } Interop.Libc.Free(valuePtr); @@ -972,7 +972,7 @@ namespace Tizen.Applications for (int i = 0; i < len; ++i) { IntPtr charArr = Marshal.ReadIntPtr(valuePtr, IntPtr.Size * i); - valueArray.Add(Marshal.PtrToStringAuto(charArr)); + valueArray.Add(Marshal.PtrToStringAnsi(charArr)); Interop.Libc.Free(charArr); } Interop.Libc.Free(valuePtr); diff --git a/Tizen.Applications/Tizen.Applications/Bundle.cs b/Tizen.Applications/Tizen.Applications/Bundle.cs index 793fe75..5f54a2d 100644 --- a/Tizen.Applications/Tizen.Applications/Bundle.cs +++ b/Tizen.Applications/Tizen.Applications/Bundle.cs @@ -7,6 +7,7 @@ // you entered into with Samsung. using System; +using System.Reflection; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; @@ -315,7 +316,7 @@ namespace Tizen.Applications IntPtr stringPtr; int retString = Interop.Bundle.GetString(_handle, key, out stringPtr); BundleErrorFactory.CheckAndThrowException(retString, _handle); - string stringValue = Marshal.PtrToStringAuto(stringPtr); + string stringValue = Marshal.PtrToStringAnsi(stringPtr); if (stringValue == null) return string.Empty; return stringValue; @@ -523,7 +524,7 @@ namespace Tizen.Applications return typeof(string) == typeof(T); case (int)BundleType.StringArray: - return typeof(T).IsAssignableFrom(typeof(string[])); + return typeof(T).GetTypeInfo().IsAssignableFrom(typeof(string[])); case (int)BundleType.Byte: return typeof(byte[]) == typeof(T); @@ -620,7 +621,7 @@ namespace Tizen.Applications for (int iterator = 0; iterator < size; iterator++) { - managedArray[iterator] = Marshal.PtrToStringAuto(IntPtrArray[iterator]); + managedArray[iterator] = Marshal.PtrToStringAnsi(IntPtrArray[iterator]); } } } diff --git a/Tizen.Applications/Tizen.Applications/EventNotification.cs b/Tizen.Applications/Tizen.Applications/EventNotification.cs index cee78a5..b28b18b 100755 --- a/Tizen.Applications/Tizen.Applications/EventNotification.cs +++ b/Tizen.Applications/Tizen.Applications/EventNotification.cs @@ -89,7 +89,7 @@ namespace Tizen.Applications.Notifications if(countPtr == IntPtr.Zero) return 0; - count = Marshal.PtrToStringAuto(countPtr); + count = Marshal.PtrToStringAnsi(countPtr); if(Int32.TryParse(count, out cnt)) { return cnt; diff --git a/Tizen.Applications/Tizen.Applications/Notification.cs b/Tizen.Applications/Tizen.Applications/Notification.cs index 2e9e51f..2db7a34 100755 --- a/Tizen.Applications/Tizen.Applications/Notification.cs +++ b/Tizen.Applications/Tizen.Applications/Notification.cs @@ -126,7 +126,7 @@ namespace Tizen.Applications.Notifications if (titlePtr == IntPtr.Zero) return string.Empty; - return Marshal.PtrToStringAuto(titlePtr); + return Marshal.PtrToStringAnsi(titlePtr); } set { @@ -166,7 +166,7 @@ namespace Tizen.Applications.Notifications if (contentPtr == IntPtr.Zero) return string.Empty; - return Marshal.PtrToStringAuto(contentPtr); + return Marshal.PtrToStringAnsi(contentPtr); } set { @@ -209,7 +209,7 @@ namespace Tizen.Applications.Notifications if (pathPtr == IntPtr.Zero) return string.Empty; - return Marshal.PtrToStringAuto(pathPtr); + return Marshal.PtrToStringAnsi(pathPtr); } set { @@ -252,7 +252,7 @@ namespace Tizen.Applications.Notifications if (pathPtr == IntPtr.Zero) return string.Empty; - return Marshal.PtrToStringAuto(pathPtr); + return Marshal.PtrToStringAnsi(pathPtr); } set { @@ -295,7 +295,7 @@ namespace Tizen.Applications.Notifications if (pathPtr == IntPtr.Zero) return string.Empty; - return Marshal.PtrToStringAuto(pathPtr); + return Marshal.PtrToStringAnsi(pathPtr); } set { @@ -338,7 +338,7 @@ namespace Tizen.Applications.Notifications if (pathPtr == IntPtr.Zero) return string.Empty; - return Marshal.PtrToStringAuto(pathPtr); + return Marshal.PtrToStringAnsi(pathPtr); } set { @@ -381,7 +381,7 @@ namespace Tizen.Applications.Notifications if (tagPtr == IntPtr.Zero) return string.Empty; - return Marshal.PtrToStringAuto(tagPtr); + return Marshal.PtrToStringAnsi(tagPtr); } set { @@ -568,7 +568,7 @@ namespace Tizen.Applications.Notifications } if(pathPtr != IntPtr.Zero) - _soundPath = Marshal.PtrToStringAuto(pathPtr); + _soundPath = Marshal.PtrToStringAnsi(pathPtr); return _soundPath; } @@ -844,7 +844,7 @@ namespace Tizen.Applications.Notifications if(pathPtr == IntPtr.Zero) return string.Empty; - path = Marshal.PtrToStringAuto(pathPtr); + path = Marshal.PtrToStringAnsi(pathPtr); return path; } set diff --git a/packaging/csapi-application.spec b/packaging/csapi-application.spec index 263a343..eebf804 100755 --- a/packaging/csapi-application.spec +++ b/packaging/csapi-application.spec @@ -1,4 +1,5 @@ %{!?dotnet_assembly_path: %define dotnet_assembly_path %{_datadir}/assembly} +%{!?dotnet_core_path: %define dotnet_core_path %{_datadir}/tizen.net/ref} %if 0%{?tizen_build_devel_mode} %define BUILDCONF Debug @@ -20,13 +21,11 @@ Source1: %{name}.manifest BuildRequires: mono-compiler BuildRequires: mono-devel -# P/Invoke Build Requries -BuildRequires: pkgconfig(glib-2.0) -BuildRequires: pkgconfig(capi-appfw-application) -BuildRequires: pkgconfig(capi-appfw-app-manager) -BuildRequires: pkgconfig(appcore-agent) -BuildRequires: pkgconfig(message-port) -BuildRequires: pkgconfig(notification) +# .NETCore +%if 0%{?_with_corefx} +AutoReqProv: no +BuildRequires: corefx-managed-32b-ref +%endif # C# API Requries BuildRequires: csapi-tizen @@ -44,22 +43,23 @@ cp %{SOURCE1} . %build for ASM in %{Assemblies}; do xbuild $ASM/$ASM.csproj \ +%if 0%{?_with_corefx} + /p:NoStdLib=True \ + /p:TargetFrameworkVersion=v5.0 \ + /p:AddAdditionalExplicitAssemblyReferences=False \ + /p:CoreFxPath=%{dotnet_core_path} \ +%endif /p:Configuration=%{BUILDCONF} \ /p:ReferencePath=%{dotnet_assembly_path} done %install -# Assemblies mkdir -p %{buildroot}%{dotnet_assembly_path} for ASM in %{Assemblies}; do install -p -m 644 $ASM/bin/%{BUILDCONF}/$ASM.dll %{buildroot}%{dotnet_assembly_path} done -# License -mkdir -p %{buildroot}%{_datadir}/license -cp LICENSE %{buildroot}%{_datadir}/license/%{name} - %files %manifest %{name}.manifest +%license LICENSE %attr(644,root,root) %{dotnet_assembly_path}/*.dll -%attr(644,root,root) %{_datadir}/license/%{name} -- 2.7.4