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

2012 Коммитов

Автор SHA1 Сообщение Дата
Rolf Bjarne Kvinge 9e7cec490f [mtouch] Move native linking to a separate task. 2017-02-10 14:42:11 +01:00
Rolf Bjarne Kvinge 3a8d62008d [mtouch] Look for linker input in the linker flags when parsing linker warnings.
Look for libraries passed to the linker in the linker flags, which is the
canonical location for linker input.
2017-02-10 14:42:11 +01:00
Rolf Bjarne Kvinge 69ff0c4486 [mtouch] Move CompileRegistrarTask creation out of the task itself. 2017-02-10 14:42:10 +01:00
Rolf Bjarne Kvinge 3a5c493e85 [mtouch] Remove PInvokesTask creation out of the task itself. 2017-02-10 14:42:10 +01:00
Rolf Bjarne Kvinge ed1a1ae3b8 [mtouch] Rename BuildTask.Build to Run.
Some tasks are technically not 'building', another verb would fit better, so
use the more generic 'Run' instead of 'Build'.
2017-02-10 14:42:10 +01:00
Rolf Bjarne Kvinge 9c6bf21a18 [mtouch] Refactor Generate|CompileMainTasks to only know how to do their task. 2017-02-10 14:42:10 +01:00
Rolf Bjarne Kvinge 0a91d75b2c [mtouch] Create a 'RunRegistrarTask'. 2017-02-10 14:42:09 +01:00
Rolf Bjarne Kvinge e73d71cbe8 [mtouch] Build into arch-specific temporary directories, instead of having arch-specific filenames.
This makes dylibs automatically have the correct dylib id, which means no
fixups are required.

For instance: we'd build libpinvokes.armv7.dylib from libpinvokes.armv7.m,
which by default ends up with a dylib id of "libpinvokes.armv7.dylib". With
this fix no change is required, since we now build armv7/libpinvokes.dylib
from armv7/libpinvokes.m.
2017-02-10 14:42:09 +01:00
Rolf Bjarne Kvinge dcd37c9df2 [mtouch] Compute the dependency map for assemblies earlier and store the results.
Compute the dependency map for assemblies earlier, and store the results.

In a later commit we'll need to know if a dependency map was successfully
computed when determining if a task is up-to-date or not.
2017-02-10 14:42:09 +01:00
Rolf Bjarne Kvinge eaf13f2fcc [mtouch] Link with the correct version of libxamarin/libmono according to other build options. 2017-02-10 14:39:49 +01:00
Rolf Bjarne Kvinge 03614fc775 [mtouch] Strip while copying assemblies.
Rework the code that copies assemblies and their related files to the app
bundle to take into account that we might be building to frameworks now.

Also strip the assemblies when they're copied (if they must be stripped),
which removes the need for custom logic to copy files related to stripped
assemblies.

Additionally change how we handle duplicated assemblies by checking for
duplication before copying them to the app bundle. This allows us to copy
assemblies to the root directory (not the .monotouch-[32|64] subdirectory) if
the 32-bit and 64-bit versions are identical, which also means we won't need
symlinks anymore.
2017-02-10 14:39:48 +01:00
Rolf Bjarne Kvinge d58dcb8141 [mtouch] Remove dead code. 2017-02-10 14:35:20 +01:00
Rolf Bjarne Kvinge f1397b561e [mtouch] No need to pass the input file around if all we want to know is the source code type.
This makes the code a little bit more self-descriptive.
2017-02-10 14:35:20 +01:00
Rolf Bjarne Kvinge 5787bc0ef2 [mtouch] Validate the assembly build targets. 2017-02-10 14:29:11 +01:00
Rolf Bjarne Kvinge a590612751 [mtouch] Add an --assembly-build-target option. 2017-02-10 14:29:11 +01:00
Rolf Bjarne Kvinge ffad69e186 [mtouch] Call linker flags 'linker_flags' and not 'compiler_flags'. 2017-02-10 14:29:11 +01:00
Rolf Bjarne Kvinge e83c2b507f [mtouch] Show output in ProcessTask if the process returns a non-zero exit code. 2017-02-10 14:29:10 +01:00
Rolf Bjarne Kvinge 815fbef3fc [mtouch] Split 'MainTask' into 'GenerateMainTask' and 'CompileMainTask'. 2017-02-10 14:29:10 +01:00
Rolf Bjarne Kvinge 876dc938c8 [mtouch] Rename 'RegistrarTask' to 'CompileRegistrarTask' to be more descriptive. 2017-02-10 14:29:10 +01:00
Rolf Bjarne Kvinge 267c28b552 [mtouch] Remove redundant 'internal' class modifier. 2017-02-10 14:29:10 +01:00
Rolf Bjarne Kvinge 6b9bb63e24 [mtouch] Rename Bitcodeify to BitcodeifyTask to match other similar classes. 2017-02-10 14:29:10 +01:00
Rolf Bjarne Kvinge ee5b915cdc [mtouch] Upgrade mtouch to .NET 4.6. 2017-02-10 14:29:10 +01:00
Rolf Bjarne Kvinge dea33a6770 [runtime] Lookup assembly-related resources from parent bundles as well.
Add support for finding assembly-related resources (debug files, config files,
satellite assemblies, aotdata files, etc) in multiple locations:

* The bundle's root directory.
* A pointer-size specific size directory (.monotouch-32|64)
* A framework's MonoBundle directory (and the framework may not be named after
  the assembly, which means it's not necessarily possible to deduce the
  framework's name at runtime).
* In a container bundle.

Some files may also have an arch-specific suffix.
2017-02-10 14:29:10 +01:00
Rolf Bjarne Kvinge 7ce53a98e8 [runtime] Make internal function static. 2017-02-10 14:29:09 +01:00
Rolf Bjarne Kvinge ddedfc2798 [mtouch] Make the architecture a suffix instead of infix for aotdata filenames.
Make the architecture a suffix instead of infix for aotdata filenames so that
it's easier to compute the filename from the assembly name without passing
printf-style format strings around.
2017-02-10 14:29:09 +01:00
Rolf Bjarne Kvinge 5da8fd6ad0 [mtouch] Fix WriteIfDifferent to create target directory if needed. 2017-02-10 14:29:09 +01:00
Rolf Bjarne Kvinge 365b293d97 Create a Xamarin[-debug].framework. 2017-02-10 14:29:09 +01:00
Rolf Bjarne Kvinge 1385b91202 [mtouch] Simplify the code to update the list of assemblies after linking.
Also move it to a separate method, since we'll be soon needing the logic in
multiple locations.
2017-02-10 14:29:09 +01:00
Rolf Bjarne Kvinge a07085aafa [mtouch] Create a custom AssemblyCollection class.
Create a custom AssemblyCollection class that contains a dictionary with
assembly identity (name) -> Assembly mapping.

This also means that we can detect if we end up loading multiple assemblies
with the same identity, and show an error in that case (even if that case
should never happen since we cache assemblies based on the identity, it's nice
to have code that ensures it).
2017-02-10 14:15:35 +01:00
Rolf Bjarne Kvinge a4dbb289b6 [mtouch] Make the linker output a list of AssemblyDefinition instead of paths.
Have the linker return the paths for AssemblyDefinitions is just redundant if
we immediately use those paths to re-load the AssemblyDefinitions.
2017-02-10 14:12:02 +01:00
Rolf Bjarne Kvinge 6545897ccf [tests] Add test for MT0003. 2017-02-10 14:03:25 +01:00
Rolf Bjarne Kvinge ce2d9fac32 [docs] Improve MT0099 error help text a little bit. 2017-02-10 14:03:25 +01:00
Rolf Bjarne Kvinge 209ac7e58e [tests] Some simulator builds can disable the linker to build slightly faster. 2017-02-10 14:03:25 +01:00
Rolf Bjarne Kvinge 5fb09b1b84 [linker] Remove static state, and put the state inside DerivedLinkContext instead. (#1657)
Remove the usage of static variables in the linker so that one day we can run
the linker in parallel over multiple assembly sets.
2017-02-10 07:45:42 +01:00
Rolf Bjarne Kvinge dd0180b389 Set max mono version to Cycle 9's mono. (#1670)
It looks like mono master has become incompatible, builds now fail with:

    error: File '/Users/builder/jenkins/workspace/xamarin-macios-pr-builder/external/guiunit/bin/net_4_5/GuiUnit.exe.mdb' is missing.
    make[4]: *** [build-mac-classic-introspection] Error 1

so restrict to C9 only, until we can fix these issues.
2017-02-09 11:34:56 -05:00
Rolf Bjarne Kvinge 0e27b4a812 [mtouch tests] Add sleep to fix #47696. (#1662)
Sometimes, when the stars align, fastsim can build an app in less than a
second.

Coupled with the fact that HFS+'s filestamp resolution is 1 second, we can't
assert that filestamps change without making sure enough time passes by.

So sleep for a second.

https://bugzilla.xamarin.com/show_bug.cgi?id=47696
2017-02-09 11:53:18 +01:00
Sebastien Pouliot eed503e422 [mtouch] Reload symbols before saving an assembly again (when needed). Fixes #51667 (#1651) (#1653)
Cecil cannot save an assembly more than once without reloading its
debugging symbols. There was code for this, in the special case where
an assembly could be saved more than once. However the order of the
operations changed and the code to reload symbols was now located too
late.

https://bugzilla.xamarin.com/show_bug.cgi?id=51667
2017-02-08 20:50:29 -05:00
Rolf Bjarne Kvinge 38abe50b58 [generator] Add a class to take care of all the attributes. (#1661)
IKVM's API to get attributes does not match System.Reflection's API, so
abstract all we need out to a separate class to make it easier to port it to
IKVM later.
2017-02-08 19:01:24 -05:00
Vincent Dondain 6ff7fac731 [README] Add Xamarin.iOS + Xamarin.Mac banner (#1665) 2017-02-08 17:42:48 -05:00
Chris Hamons 2c835c5294 [XM] Add hybrid/standard AOT option and improve AOT code (#1650)
* [XM] Seperate parsing from compilation in AOT code

- Parsing command line options was too entangled with actually compiling
- Refactor test code to centralize Compile, reducing some complexity of tests
- Groundwork for hybrid vs non-hybrid AOT work

* Add hybrid/standard AOT support

* Add xammac_tests to makefile/jenkins

* Add flag to force AOT

* Disable MonoTouchFixtures.Contacts.ContactStoreTest.GetUnifiedContacts on XM due to prompts on Jenkins
2017-02-08 13:40:48 -06:00
Timothy Risi 9c79a7102d Remove MediaPlayer from XM Classic and 32-bit Unified (#1579)
Make new MediaPlayer APIs 64 bit only and remove from classic
2017-02-08 09:47:18 -09:00
Chris Hamons 03926bc72b [XM] Fix APIBreaks (#1638) (#1643)
AVCaptureAutoFocusSystem was removed in:

	commit 65ffc88
	Author: Manuel de la Pena v-mandel@microsoft.com
	Date: Thu Aug 11 14:22:59 2016 +0200

	[AVFoundation] Update bindings for XCode8. Focus on enums and structs. (#591)

public virtual bool WriteToUrl (Foundation.NSUrl url, Foundation.NSDictionary options, SCNSceneExportDelegate handler, SCNSceneExportProgressHandler exportProgressHandler) was in:

	commit 58a0e61
	Author: Alex Soto dalexsoto@gmail.com
	Date: Fri Aug 5 07:23:02 2016 -0500

	[Scenekit] Update SceneKit to Xcode8 Beta 4 (#552)

public SCNView (CoreGraphics.CGRect frame, SCNRenderingOptions options); was in:

	commit 921b254
	Author: Sebastien Pouliot sebastien.pouliot@gmail.com
	Date: Sat Aug 6 10:59:16 2016 -0400

	[watchos][scenekit] Enable SceneKit on watchOS (#563)

Also fixing

Type Changed: AppKit.INSAccessibility

Added property:

	public virtual bool AccessibilityRequired { get; set; }

Type Changed: GameKit.IGKTurnBasedEventHandlerDelegate

Added method:

	public virtual void HandleTurnEvent (GKTurnBasedMatch match, bool activated);

Type Changed: Metal.IMTLRenderCommandEncoder

Added methods:

	public virtual void DrawIndexedPatches (uint numberOfPatchControlPoints, IMTLBuffer patchIndexBuffer, uint patchIndexBufferOffset, IMTLBuffer controlPointIndexBuffer, uint controlPointIndexBufferOffset, IMTLBuffer indirectBuffer, uint indirectBufferOffset);
	public virtual void DrawPatches (uint numberOfPatchControlPoints, IMTLBuffer patchIndexBuffer, uint patchIndexBufferOffset, IMTLBuffer indirectBuffer, uint indirectBufferOffset);
	public virtual void TextureBarrier ();
2017-02-08 10:11:59 -06:00
Rolf Bjarne Kvinge 84953af5de [mtouch/mmp] Fix cecil dependencies. (#1656)
Make sure mtouch/mmp rebuild cecil when anything changes in cecil.
2017-02-08 14:57:37 +01:00
Rolf Bjarne Kvinge be12544444 [mtouch] Remove unused file from the build. (#1655) 2017-02-08 13:45:57 +01:00
Rolf Bjarne Kvinge e4a127aab8 [generator] Remove a few XAMCORE_2_0 ifdefs in favor of a Unified runtime check. (#1647) 2017-02-07 14:47:04 +01:00
Rolf Bjarne Kvinge 13bbda632e [generator] Add type manager. (#1637)
* [generator] Add type manager.

`typeof` expressions can't be used with IKVM, so add a type manager that
handles all the type lookup. For now it just uses `typeof`s to find types, but
that'll change to be a string-based lookup instead (which would be IKVM-
compatible).

* [generator] Move the type manager to its own file.

* [generator] Load missing type.
2017-02-07 12:15:36 +01:00
Ankit Jain e3166fbb15 [msbuild][fsharp] Copy .mdb files when building with msbuild (#1641)
Mono's fork of msbuild uses a `$(_DebugFileExt)` property to specify
the debug file extension (.pdb/.mdb) to use. It defaults to .pdb. So,
with XI/XM, .mdb files don't get copied to the output folder.

We also add a `$(FscDebugFileExt)` property, which allows our default of
`.mdb` to be overridden.

But the `$(_DebugFileExt)` support  is not in upstream msbuild yet. So,
we can't ask the F# upstream to add it. Hence, this is being added to
our FSharp target files. Once, all this is upstream, we can remove the
overrides from our files.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=51148
2017-02-06 15:27:07 -05:00
Jeffrey Stedfast bc251403c2 [msbuild] Properly decide on when to re-codesign app bundle (#1625)
If the user makes changes to an App Extension or Watch app,
then those bundles would change within the main app bundle
but the main app bundle would not get re-codesigned because
it was not properly considering those files as inputs in the
_CodesignAppBundle target.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=52165
2017-02-06 13:52:30 -05:00
Chris Hamons f6918bdc43 Update xm apidiff to cycle8 (#1624) 2017-02-06 08:40:43 -06:00
Sebastien Pouliot a94e4dc423 Revert c633bd378f and fix #51805 with a new Cecil API (#1640)
* Revert "[mtouch][linker] Remove type forwarders. Fixes #51805 (#1589) (#1600)"

This reverts commit c633bd378f.

* [mono] Bump mono to get latest cecil (cycle9) and fix linker's ExternalType.Scope. Fixes #52187 and #51805

Original fix for bug #51805 was reverted since it caused a regression [2]
when type forwarders are used thru reflection, which happens when
serializing some types.

[1] https://bugzilla.xamarin.com/show_bug.cgi?id=51805
[2] https://bugzilla.xamarin.com/show_bug.cgi?id=52187
2017-02-03 16:12:28 -05:00