Граф коммитов

8896 Коммитов

Автор SHA1 Сообщение Дата
Rolf Bjarne Kvinge c4186268b9 [dotnet-linker] Adjust ifdefs to make existing/shared code compile correctly. 2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 658d25f71e [dotnet-linker] Add a Target instance
The bundler (mtouch/mmp) code needs it to compile.
2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 578d84a0fd [dotnet-linker] Set Application.BuildTarget so that the shared Application.IsSimulatorBuild implementation can be used. 2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 08961a655b [dotnet-linker] Make Application take the input arguments, so that we can pass them to the cache to correctly determine cache validity. 2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 90914c1aab [dotnet-linker] Add a Constants class to the build.
The bundler (mtouch/mmp) code needs it to compile.
2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 0ac3879e6d [dotnet-linker] Enable unsafe code, since some of the bundler code is unsafe. 2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 1b093b8a7f [dotnet-linker] Include code we need from mtouch/mmp into our .NET linker code. 2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 9fddbbda58 [xharness] Enhance ResolveAllPaths to understand $(RootTestsDirectory).
This requires passing the root directory around in multiple places, since ResolveAllPaths
doesn't have access to the static class where we define the root directory.

Also call ResolveAllPaths in a few more places to ensure paths everywhere are resolved.
2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 5a5a53e1a9 [xharness] Add the .NET version of interdependent-binding-projects to our lineup 2020-08-14 18:33:28 +02:00
Rolf Bjarne Kvinge 98b52c7c3a [tests] Port interdependent-binding-projects to .NET. 2020-08-14 18:33:28 +02:00
Rolf Bjarne Kvinge 6186e98de8 [tests] Fix binding project file path 2020-08-14 18:33:28 +02:00
Sebastien Pouliot dafef3dfea
[tools] Fix message typo in device-tests.yml (#9373) 2020-08-14 09:02:03 -04:00
Rolf Bjarne Kvinge b28997fa8a
[xharness] Add support for getting the default AssemblyName for projects. (#9369)
In .NET projects there's a default value for most properties, which means that
there won't necessarily be an AssemblyName property in a csproj. We need to know the
AssemblyName, so calculate it from the csproj filename (which is how .NET does it).

This turned out slighly complicated, because we're pass an XmlDocument around,
and the XmlDocument doesn't know the file from where it was loaded, so we need
to keep that information separately.
2020-08-14 10:32:23 +02:00
Rolf Bjarne Kvinge 33ecd581ac
[mtouch/mmp] Move Application.BuildTarget, Application.IsDeviceBuild and Application.IsSimulatorBuild to shared code. (#9363)
Also add a 'None' build target for the BuildTarget enum for when we're
building for neither simulator nor device (i.e. macOS). This means the default
value will change (since 'Simulator' is no longer the first value), but as far
as I can tell we're always assigning a specific value and not relying on the
default, so this should not make any difference.

This will be needed when the .NET code starts using these classes.
2020-08-13 15:33:13 +02:00
Rolf Bjarne Kvinge 0601d17507
[mtouch] Move Driver.IsFrameworkAvailableInSimulator to shared Application code. (#9365)
This will be needed when the .NET code starts using these classes.
2020-08-13 15:27:57 +02:00
Rolf Bjarne Kvinge b1e5a3faf8
[mtouch/mmp] Move a few Application.Is* properties to shared code. (#9364)
This will be needed when the .NET code starts using these classes.
2020-08-13 15:27:13 +02:00
Alex Soto d20717528a
[main] Update API diff to latest stable release (#9359) 2020-08-13 03:00:31 -04:00
Manuel de la Pena e994e43099
[iOSurface] Remove warning from the generator. (#9357)
The following warning was being raised:

```
iosurface.cs(202,4): warning CS0657: 'return' is not a valid attribute location for this declaration. Valid attribute locations for this declaration are 'property'. All attributes in this block will be ignored.
```

Moved the attr to the correct location and fixed a missing using with
the MaybeNull attrs.
2020-08-12 22:00:11 -04:00
Rolf Bjarne Kvinge d36853c8cd
[xharness] Add support for adding PropertyGroups for unknown platform/configuration values in a csproj. Fixes xamarin/maccore@2277. (#9347)
Fixes https://github.com/xamarin/maccore/issues/2277.
2020-08-12 10:35:18 +02:00
Rolf Bjarne Kvinge 621bf6c085
[tests] Fix running several test suites from the command line. Fixes xamarin/maccore@2279. (#9348)
Fixes https://github.com/xamarin/maccore/issues/2279
2020-08-12 10:34:55 +02:00
Rolf Bjarne Kvinge 9fda2c6c9b
[tests] Add --dlsym:+nunit.framework.dll to all Xamarin.iOS test suites. (#9349)
This works around a build problem that occurs because NUnit ships with a
P/Invoke to a function that doesn't exist on Apple platforms:

    MTOUCH : error MT5210: Native linking failed, undefined symbol: _GetVersionEx. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in. [/Users/xamarinqa/myagent/_work/8/s/xamarin-macios/tests/xharness/tmp-test-dir/monotouch-test58/monotouch-test-tvos.csproj]
    MTOUCH : error MT5201: Native linking failed. Please review the build log and the user flags provided to gcc: -fembed-bitcode-marker [/Users/xamarinqa/myagent/_work/8/s/xamarin-macios/tests/xharness/tmp-test-dir/monotouch-test58/monotouch-test-tvos.csproj]
    clang : error : linker command failed with exit code 1 (use -v to see invocation) [/Users/xamarinqa/myagent/_work/8/s/xamarin-macios/tests/xharness/tmp-test-dir/monotouch-test58/monotouch-test-tvos.csproj]

Also fix an issue in mtouch where we would overwrite any previous --dlsym
values; they're now accumulative (`--dlsym:foo.dll --dlsym:bar.dll` works
as expected)

Ref: https://github.com/nunit/nunit/issues/3618
2020-08-12 09:42:53 +02:00
Rolf Bjarne Kvinge 90ec0c7cf9
[dotnet] Add support for building binding projects (#9340).
* Ship bgen
* Fix a few issues in the generator.
* Modify some of the MSBuild logic to support binding projects.
* Port bindings-test[2] to .NET.
2020-08-11 11:15:56 +02:00
Rolf Bjarne Kvinge 82c6b03d0c
[mtouch/mmp] Add CoreFoundation and GSS to our list of known frameworks. (#9338)
* [mtouch/mmp] Add CoreFoundation and GSS to our list of known frameworks.

Putting these frameworks in our known list of frameworks means we won't try to
weak link them unless needed (when the deployment target is earlier than when
they were introduced), because if we encounter a framework we don't know
about, we'll weak link them to be on the safe side.

* GSS was available in at least macOS 10.1
2020-08-11 10:37:35 +02:00
Rolf Bjarne Kvinge 855c2b09fc
[mtouch] Fix the MT0091 (now called MT0180) after recent code changes. Fixes xamarin/maccore@2280. (#9342)
Also fix a confusion between the M?0179 and M?0180 error message vs error number.

Fixes https://github.com/xamarin/maccore/issues/2280.
2020-08-10 15:49:50 -04:00
Alex Soto f822013d87
[README] Add d16-7 versions (#9343)
Fixes https://github.com/xamarin/xamarin-macios/issues/9337
2020-08-10 15:07:47 -04:00
Rolf Bjarne Kvinge 2ab8d3f4f8
[mtouch/mmp] Move Application.RequiresXcodeHeaders to shared code. (#9321) 2020-08-10 17:39:33 +02:00
Rolf Bjarne Kvinge 8814e8ca24 [tests] Port bindings-test2 to .NET. 2020-08-10 16:14:52 +02:00
Rolf Bjarne Kvinge d883eb4725 [tests] Add a tvOS and watchOS version of the bindings-test project for .NET 2020-08-10 16:12:42 +02:00
Rolf Bjarne Kvinge 43d234de52 [tests] Add a macOS version of the bindings-test project for .NET
This required disabling some Xamarin.Mac-specific binding code in .NET mode.
2020-08-10 16:12:42 +02:00
Rolf Bjarne Kvinge c583cfd01e [dotnet] Add bindings-test to our unit tests. 2020-08-10 16:12:42 +02:00
Rolf Bjarne Kvinge 89e5bb15f7 [tests] Port bindings-test to .NET 2020-08-10 16:12:41 +02:00
Rolf Bjarne Kvinge 64718ac139 [bgen] Improve lookup of dependent assemblies by looking in our explicitly referenced assemblies to see if we were passed the path. 2020-08-10 16:12:41 +02:00
Rolf Bjarne Kvinge 4e1b571ab6 [msbuild] Pass the path to the binding attribute assembly to bgen. 2020-08-10 16:12:41 +02:00
Rolf Bjarne Kvinge a4191b3ab6 [dotnet] Set BTouchToolPath and BaseLibDllPath to the where bgen and the platform assembly is. 2020-08-10 16:12:41 +02:00
Rolf Bjarne Kvinge 612769c390 [dotnet] Split part of _ComputeVariables into a _ComputeFrameworkVariables.
This means that the '_ComputeFrameworkVariables' target can be executed without needing
some of the dependencies the '_ComputeVariables' target has (in particular executing
'_GenerateBundleName' is not possible for binding projects).
2020-08-10 16:12:41 +02:00
Rolf Bjarne Kvinge df69755fb0 [msbuild] Create the output directory for generated binding sources. 2020-08-10 16:12:41 +02:00
Rolf Bjarne Kvinge d5b91781dd [msbuild] Don't pass a reference to mscorlib.dll to bgen.
In .NET there's no mscorlib.dll next to the platform assembly. bgen will find it
anyway when needed if it's not passed explicitly, so just don't pass it.
2020-08-10 16:12:41 +02:00
Rolf Bjarne Kvinge af7a2a3391 [dotnet] Ship bgen. 2020-08-10 16:12:41 +02:00
Rolf Bjarne Kvinge edc673ca7f [dotnet] Disable default compilation includes for binding projects. 2020-08-10 16:12:41 +02:00
Rolf Bjarne Kvinge 19e53376dd
[dotnet] Port the fsharplibrary project to .NET (#9339) 2020-08-10 16:12:19 +02:00
Rolf Bjarne Kvinge d96827cd89
[msbuild] Share the _CompileEntitlements target. (#9323)
Use two separate output variables (EntitlementsInExecutable/EntitlementsInSignature)
instead of using the same output variable for two different purposes. This makes
the code more self-explanatory.

Also move the simulator check to the C# code, that way it's easier to re-use elsewhere.

* [msbuild] Share the _CompileEntitlements task.

* [msbuild] Create the same class hierarchy for Xamarin.Mac and Xamarin.iOS for the CompileEntitlements task.

    CompileEntitlementsTaskBase
    └─── iOS/CompileEntitlementsTaskCore
    │    └─── iOS/CompileEntitlements
    └─── Mac/CompileEntitlementsTaskCore
         └─── Mac/CompileEntitlements

This also means we can remove a known failure in the list of MSBuild tasks that don't
conform to our 'no code in final task implementation' requirements.
2020-08-10 13:55:54 +02:00
Rolf Bjarne Kvinge d0f426b731
[tests] Port the EmbeddedResources test project to .NET and add a test to build it. (#9324) 2020-08-10 10:48:29 +02:00
Rolf Bjarne Kvinge 200608ce77
[xharness] Look at the exact NUnit version an NUnit project is referencing to figure out how to run it in a makefile. (#9322) 2020-08-10 10:47:45 +02:00
Rolf Bjarne Kvinge 916e79b8d2
[mtouch/mmp] Move Driver's LOCAL_BUILD_DIR and FRAMEWORK_LOCATION_VARIABLE constants to Application instance fields. (#9320) 2020-08-10 10:47:35 +02:00
Rolf Bjarne Kvinge d8665ddd63
[mtouch/mmp] Remove the Error91LinkerSuggestion and implement it using two different error codes. (#9319)
* It makes the error message localizable.
* It makes the implementation shared between mtouch and mmp.
2020-08-10 10:41:25 +02:00
Rolf Bjarne Kvinge 06fec85900
[msbuild] Move Xamarin.iOS' implementation of the PrepareResourceRules task to Xamarin.MacDev.Tasks. (#9318) 2020-08-07 14:54:38 +02:00
Rolf Bjarne Kvinge 4f8afa575d
[msbuild] Create a few '_*DependsOn' variables that specifies depend targets. (#9305)
The .NET logic will inject an additional dependencies in these variables.
2020-08-07 14:53:49 +02:00
Rolf Bjarne Kvinge 9be9a9a4b6
[msbuild] Compute variables for where the platform assembly is, and the platform assembly name. (#9304)
This will be more useful later, because these variables will be used in more places
in the .NET code.
2020-08-07 14:53:30 +02:00
Rolf Bjarne Kvinge fd5d82da6b
[msbuild] Pass the full path to the output file to the native linker. (#9295)
This makes it easier to copy-paste commands to debug them.
2020-08-07 14:53:15 +02:00
Rolf Bjarne Kvinge 44b2f00b39
[mtouch/mmp] Share Assembly.CopyAssembly. (#9310)
The shared version isn't used by mmp yet as far as I can tell (mmp has its own logic
to copy assemblies), but sharing this code is the first step towards having the same
implementation as well.
2020-08-07 08:24:09 +02:00