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

1741 Коммитов

Автор SHA1 Сообщение Дата
Manuel de la Pena db0ac65975
[DevOps] Set the status to pending once the checks have started. (#9444)
Once we have done all the check of the bot, set the status of the commit
to pending since the next task is going to run the tests.

This way we ensure that the pending status should be cleaned at the end
rather than be left behind.
2020-08-21 10:29:11 -04:00
Rolf Bjarne Kvinge f70e949a7d
[dotnet-linker] Make Driver.Verbosity the single source of truth. (#9424)
* Make Driver.Verbosity the single place where we store the verbosity level.
* Respect any default verbosity by adding to the existing verbosity instead of
  setting it directly.
* There's no need to set ErrorHelper.Verbosity, the Driver.Verbosity setter
  already does it.

This means that for the .NET linker code we'll treat
~/.xamarin-bundler-verbosity like we treat ~/.mtouch-verbosity for mtouch, and
parse it to set the verbosity.
2020-08-21 10:15:52 +02:00
Rolf Bjarne Kvinge 558af9612a [dotnet] Add support for consuming binding projects. (#9376)
* Port the interdependent-binding-projects test to .NET (it's the simplest
  test project we have with binding projects).
* Add a lot of the shared source code for mtouch/mmp to dotnet-linker, and
  make it compile. Most issues were fixed by adding a few stubbed out classes,
  since there are large chunks of the mtouch/mmp code we're not using yet, so
  stubbing out while things are being implemented works fine.
* Add a step in dotnet-linker for loading the linker output (the linked
  assemblies) into our bundler code.
* Add another step in dotnet-linker to extract native resources from binding
  libraries.
* Augment the build process to take into account the native resources we found
  in any binding libraries.
2020-08-20 08:35:12 +02:00
Manuel de la Pena c20cbfe301
[DevOps] Just clean the xamarin-macios dir to ensure we do not delete maccore creds. (#9396)
The credentials for maccore are downloaded to a pat file (to be found).
When we call make git-clean, because we do use the -x options, all
files are deleted, including the pat file.

We move to call git clean -xdf inside xamarin-macios, which will delete
the test result files.

Once we find the exact path pattern, we can update the make git-clean to
not remove them but this commit unblocks the failing CI builds.
2020-08-18 15:11:59 -04:00
Rolf Bjarne Kvinge d577bf7446
[mtouch] Don't validate the --target-framework argument if we're just calling mlaunch. (#9374)
This fixes an issue where mtouch would complain about a missing --target-framework argument when it's not actually needed:

    /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin/mtouch  --launchsim bin/iPhoneSimulator/Release/MyApp.app [...]
  	error MT0086: A target framework (--target-framework) must be specified.

what makes this worse is that passing --target-framework to mtouch makes
mlaunch fail, because mlaunch doesn't accept a --target-framework argument.
2020-08-17 08:37:29 +02:00
Rolf Bjarne Kvinge 184114ee3c [dotnet-linker] Propagate the verbosity elsewhere. 2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 1d303fe856 [dotnet-linker] Add an ExtractBindingLibrariesStep.
This step will extract native libraries from binding assemblies, and adjust the native
linker flags to link with those native libraries.
2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge d630495a5d [dotnet-linker] Add error reporting to ConfigurationAwareStep 2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 6f1b1c62bb [mtouch/mmp] Make it possible to compute assembly identity even if an assembly doesn't have a filename.
In .NET AssemblyDefinitions don't have MainModule.FileName set, because they're not
loaded using FileStreams.

Ref: https://github.com/mono/linker/issues/1313
2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge e83dd1071b [bundlers] Refactor code to cope with not knowing whether a particular assembly is a framework assembly or not.
Turns out we don't actually _need_ to know, in every case we use this knowledge it's
a performance improvement to not process the framework assemblies, so skip this for
now, since there's no harm done (except to the planet) to do some extra processing
by processing all assemblies in these cases.
2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge dd3967bfaf [dotnet-linker] Work around a linker bug where the linker won't tell us the original path of an assembly.
We need the path for several reasons, so poke into the linker using reflection to
find the information we need.
2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 7a446f6531 [dotnet-linker] Add a LoadNonSkippedAssembliesStep.
This step is used to load the result of the linker into our Application/Target/Assembly
instances.
2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge ebfc7e131c [mtouch/mmp] Simplify some code to add assemblies to a target. 2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 29fd334456 [dotnet-linker] Implement Application.ProductName instead of Application.GetProductName in dotnet-linker work better with the shared code. 2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 3046ebc1d6 [dotnet-linker] Add TargetFramework to the configuration and set Driver.TargetFramework.
This way we can use the shared Application.Platform implementation.
2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 17aabebb03 [dotnet-linker] Add a using so that the static registrar sees LinkContext extension methods in the Mono.Linker namespace 2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 693f9423eb [dotnet-linker] Exclude Driver.Main from the build
The .NET linker code is a library, so it doesn't need a Main method.
2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 48620b43e7 [dotnet-linker] Stub out a few Driver members. 2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge e304993c3e [dotnet-linker] Stub out an Application.SelectRegistrar 2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge f7d55eea24 [dotnet-linker] We don't need to stub out Application.LoadSymbols anymore. 2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge 31f7b6f84c [dotnet-linker] Set Application.DeploymentTarget and Application.SdkVersion so that we can use the shared implementation. 2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge bb6e8d3f1b [dotnet-linker] Create compat API to make DerivedLinkContext compile. 2020-08-14 18:33:29 +02:00
Rolf Bjarne Kvinge f6cf39c72b [dotnet-linker] Add a DotNetResolver.
This is just a stub to make code compile, it's not needed at runtime.
2020-08-14 18:33:29 +02:00
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
Sebastien Pouliot dafef3dfea
[tools] Fix message typo in device-tests.yml (#9373) 2020-08-14 09:02:03 -04: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
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 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
Rolf Bjarne Kvinge 2ab8d3f4f8
[mtouch/mmp] Move Application.RequiresXcodeHeaders to shared code. (#9321) 2020-08-10 17:39:33 +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 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
Rolf Bjarne Kvinge 08bb01e3b5
[mtouch] Sort the errors in Errors.resx. (#9308)
Also add a make check to ensure the errors stay sorted.

This makes it much easier to find unused numbers for new errors.
2020-08-07 08:23:44 +02:00
Rolf Bjarne Kvinge ccca0cd2c7
[mtouch/mmp] Move Target.Is32Build and Target.Is64Build to shared code. (#9306)
We'll need the iOS implementation for .NET, so use that everywhere.
2020-08-07 08:11:52 +02:00
Rolf Bjarne Kvinge 264fa44f6f
[mtouch/mmp] Move the Driver.PRODUCT constant to an Application.ProductName instance field. (#9280)
A few changes are required to have an Application instance at hand when we need to
get the ProductName from it.

This is necessary for .NET, since there will be a single linker library for all platforms,
which means we can't use a constant.
2020-08-06 16:10:06 +02:00
Rolf Bjarne Kvinge 9f06e4964d
[mtouch/mmp] Share the min Xcode version. (#9279) 2020-08-06 11:11:10 +02:00
Rolf Bjarne Kvinge e03fc9d72a
[mtouch/mmp] Share a few P/Invokes. (#9278)
This is just moving code, no functional changes.
2020-08-06 11:01:06 +02:00
Rolf Bjarne Kvinge 503188ab1e
[dotnet-linker] Rework the project file a bit. (#9277)
This makes the layout match the mtouch and mmp project files.

Ref: 570f5ad8a3
2020-08-06 11:00:46 +02:00
Rolf Bjarne Kvinge 21ee5a7f74
[mtouch] Don't try to copy invalid symbol files. (#9262)
This solves a rebuild problem if an assembly has an invalid or unsupported symbol
file, where we'd detect that the symbol file exists, and expect it to be copied,
but then the linker would drop it, causing us to always rebuild the app (this is
not the same as when a symbol file is out of date).

This happens for NUnitLite 3.12.0's nunit.framework.dll, which ships with an old-style
pdb.

Also add a warning that is shown when we detect that there's a symbol file, but it
couldn't be loaded for some reason.
2020-08-04 08:08:44 +02:00
Manuel de la Pena 53dcedc060
[DevOps] Add missing envi var to ensure we can set the status of the build. (#9263) 2020-08-03 16:21:52 -04:00