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

1171 Коммитов

Автор SHA1 Сообщение Дата
Chris Hamons 82bfb2fe39 Fix XM dependency tracking of mmp bundle to prevent rebuilds (#1014)
- https://bugzilla.xamarin.com/show_bug.cgi?id=45764
- _CompileToNative's output in msbuild was incorrectly set to:
 $(_AppBundlePath)Contents\MacOS\$(TargetFileName) when the generated
 file lives at $(_AppBundlePath)Contents\MonoBundle\$(TargetFileName).
- This means we'd always try to rebuild, which can be rather time consuming.
- The XI target file is just different enough to require a seperate fix.
2016-10-27 20:15:28 +02:00
Sebastien Pouliot 8c93e7758d Merge branch 'xcode8.1' 2016-10-26 15:56:34 -04:00
Emanuel d8362f6ff6 Fixes Bug #44724 - Failed to read file attributes for "/Users/admin/Assets.xcassets" (#1039)
The ProjectDir could exist under certain circumstances (e.g. referenced assemblies are being copied to the Mac in the same folder path that those are located in Windows) so we cannot assume the existence or not of ProjectDir means the build comes from VS.

The only way to ensure we're building from VS is to check the SessionId parameter.

https://bugzilla.xamarin.com/show_bug.cgi?id=44724
2016-10-26 13:08:11 -04:00
Rolf Bjarne Kvinge 1e4b395368 Revert "Fix binding project LinkWithAttributes generation to prevent rebuilds" (#1018) 2016-10-24 07:13:51 +02:00
Chris Hamons a8daab7cdd Fix binding project LinkWithAttributes generation to prevent unnecessary rebuilds (#1017)
- https://bugzilla.xamarin.com/show_bug.cgi?id=45762
2016-10-21 18:24:15 -04:00
Jeffrey Stedfast 707b0e683f [msbuild] Added BeforeCodesign and AfterCodesign hooks for Mac (just like iOS has) (#1003) 2016-10-19 09:31:35 -05:00
Rolf Bjarne Kvinge c4b5fa5f44 [msbuild] Remove support for XI/Classic. (#976)
* [msbuild] Remove unused FrameworkList.xmls

* [msbuild] Make files in /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/msbuild/iOS the real deal, not a symlink.

* [msbuild] Make /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS a symlink, instead of each file inside.

* [msbuild] Don't put anything in /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/2.1 anymore.

* [msbuild] Remove support for XI/Classic binding projects.

* Improve 'install-system' to clean up old files.

* [msbuild] Simplify XI/Classic targets files a bit.

* [msbuild] Remove dead XI/Classic code.

* Bump maccore to get fix for xamarin-analysis.

commit xamarin/maccore@34c04c2bf1
Author: Rolf Bjarne Kvinge <rolf@xamarin.com>
Date:   Mon Oct 10 16:46:18 2016 +0200

    [analysis] Update to put files in /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS.

    XI/Classic is being removed now, which means files should go into
    /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/msbuild/iOS/ instead of into
    /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/2.1.
2016-10-13 10:47:46 +02:00
Jeffrey Stedfast fa114b2565 [msbuild] Fixed parsing of --gcc_flags=... for mtouch (#982)
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=45240
2016-10-12 20:49:34 -04:00
Jeffrey Stedfast 03e44859b3 [msbuild] Drop the fancy Mono.Unix logic and just call realpath() once (#967) 2016-10-10 10:24:41 +02:00
Jeffrey Stedfast 2a02804d81 [msbuild] Fixed IsWatchExtension state property (#913)
The problem was that this property was evaluating to True
for the main app bundle because it assumed that if the
project contained a Watch app, that it was the WatchExtension.

This logic only holds true for WatchOS1, but not WatchOS2.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=44841
2016-10-03 13:44:31 -04:00
Ankit Jain 6f37730293 [msbuild] Set $(CscDebugFileExt) also, whenever overriding $(CscToolExe) (#896)
* [msbuild] Set $(CscDebugFileExt) also, whenever overriding $(CscToolExe)

- This property was introduced in mono's msbuild, but will be upstream
  also
- This *must* be set before Microsoft.CSharp.targets file is imported.
- Even though the msbuild targets will automatically select `.mdb` if
  the `$(CscToolExe)` is `mcs` or `mcs.exe`, it would be a good
  practice to set both the properties together.

- This came up in cases where we use `smcs`, because in that case the
  msbuild targets end up using `.pdb`.

* [msbuild] Set `$(CscDebugFileExt)` == `.mdb`

Xamarin.ObjcBinding.CSharp.targets: Set the debug file extension also,
since we are overriding the compiler via `$(CscToolExe)`. Also, move
the property definition around to ensure that they are set *before*
importing `Microsoft.CSharp.targets`.
2016-09-28 14:37:44 -04:00
Jeffrey Stedfast 5922215e72 [msbuild] Add watch-companion to UIRequiredDeviceCapabilities for watchOS1 extensions (#868)
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=44257
2016-09-22 19:09:10 +02:00
Rolf Bjarne Kvinge d4edc453a6 Fix default http message handler for watchOS. (#873)
* Fix default http message handler for watchOS.

Fix default http message handler for watchOS to be NSUrlSessionHandler (the
previous attempt at eb7c2fd was quite incomplete), and make sure
HttpClientHandler is never used (show errors if someone tries).

* [tests] Remove explicit http client handler from project files.

Just use the default instead, since the set of valid http client handlers varies between platforms.
2016-09-22 14:29:18 +02:00
Rolf Bjarne Kvinge 9000e48034 [tests] Remove Classic test projects, and make the Unified test projects the master projects. (#858) 2016-09-21 22:55:10 +02:00
Jeffrey Stedfast 8da5e2b538 [msbuild] Require Xcode >= 7.2 in order to make use of ibtool --link (#851)
I'm not 100% sure when --link was added to ibtool, but since our
release notes say that we now require Xcode >= 7.2 anyway, might
as well make that version a requirement for ibtool --link

(Based on forum comments, we know it didn't exist in Xcode 7.0 Beta 3)
2016-09-20 12:34:03 +02:00
Emanuel 4f5fc6d263 Enables CoreCompile target for WatchOS App projects (#826)
* Enables CoreCompile target for WatchOS App projects

The iOS Designer depends on Roslyn Workspace APIs to inspect and get notified of project changes, which needs CoreCompile target to work.

Fixes Bug #41766 (https://bugzilla.xamarin.com/show_bug.cgi?id=41766)

* [msbuild] Adds empty cs file to avoid errors and warnings when building watchOS apps

Xbuild fails to build projects with no @(Compile). This change workaround it for watchOS apps.
2016-09-16 14:16:32 -04:00
Sebastien Pouliot f1804cce67 Merge branch 'cycle8' into xcode8 2016-09-16 13:24:24 -04:00
Jeffrey Stedfast 9ba3bf77a0 Cycle8 msbuild codesign simulator no cert (#835)
* [msbuild] Even iOS Simulator builds now require signing certificates (#809)

Now that dylibs and frameworks are required to be signed in order to
run on the Simulator, we cannot allow the DetectSigningIdentity task
to return success if it didn't find a codesign key.

* [msbuild] Allow codesigning Simulator builds w/o the need of a developer cert (#833)
2016-09-16 13:17:52 -04:00
Jeffrey Stedfast fca8a0c397 Cycle8 msbuild codesign simulator no cert (#835)
* [msbuild] Even iOS Simulator builds now require signing certificates (#809)

Now that dylibs and frameworks are required to be signed in order to
run on the Simulator, we cannot allow the DetectSigningIdentity task
to return success if it didn't find a codesign key.

* [msbuild] Allow codesigning Simulator builds w/o the need of a developer cert (#833)
2016-09-16 13:16:09 -04:00
Ankit Jain 4a87ccf948 [msbuild] Ensure that `BuildOnlySettings` is the first target to run for a `Build` (#841)
When building the `inspector` project with msbuild, the build fails
because of a missing `System.Runtime` reference,
-> which can be traced to the `ResolveAssemblyReferences` task not resolving dependencies.
	-> which can be traced to `$(_FindDependencies)` property being set to false
		-> which is false, because `$(BuildingProject)` is false, which should
		   have been set by the `BuildOnlySettings` target, run as a dependency of
		   `CoreBuild`.

We override `$(BuildDependsOn)` as:

  <BuildDependsOn>
     ...
     _UnpackLibraryResources;
     $(BuildDependsOn);
     ...
  </BuildDependsOn>

.. so, `_UnpackLibraryResources` runs before `BuildOnlySettings`. And
`_UnpackLibraryResources` depends on `ResolveReferences`, so the
`ResolveAssemblyReferences` task runs with the incorrect properties. And
later, during the build when `ResolveAssemblyReferences` is invoked
again, it gets skipped and the incorrect outputs get used.

`$(BuildingProject)` should be true for a project build. So,
`Xamarin.Mac.Common.targets` are fixed for that. And other similar
target files are also fixed.

Note: `Xamarin.iOS.Common.targets` already does this correctly.
Note: `$(BuildingProject)` is not used in xbuild, so this bug is seen
only when building with msbuild.
2016-09-15 21:38:55 -04:00
Jeffrey Stedfast f9e2e18794 [msbuild] Include the CFBundleVersion in the archive manifest (#839)
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=44348
2016-09-15 14:50:02 -04:00
Jeffrey Stedfast 0eda3276b7 [msbuild] Allow codesigning Simulator builds w/o the need of a developer cert (#833) 2016-09-14 15:43:25 -04:00
Sebastien Pouliot 38148c718a Merge branch 'xcode8' 2016-09-09 15:29:37 -04:00
Jeffrey Stedfast b8a90fd243 [msbuild] Even iOS Simulator builds now require signing certificates (#809)
Now that dylibs and frameworks are required to be signed in order to
run on the Simulator, we cannot allow the DetectSigningIdentity task
to return success if it didn't find a codesign key.
2016-09-09 19:14:05 +02:00
Jeffrey Stedfast 5f73edaac1 [msbuild] Check that ExtraArgs is not null before parsing (#795)
* [msbuild] Check that ExtraArgs is not null before parsing

* [msbuild] FIxed accidental typo in last commit
2016-09-07 17:42:04 -04:00
Jeffrey Stedfast c1e5fa0150 Cycle8 msbuild mmp fixes (#796)
* [msbuild] Fixed the mmp task to make sure the MonoBundle dir exists before enumerating its files (#787)

* [msbuild] Parse the mmp ExtraArgs to get the custom mono bundle dir name (#790)

The mmp utility allows users to pass -custom_bundle_name to specify
a custom directory name to use instead of MonoBundle, so we need to
parse the extra args to extract this value so that we can scan that
directory for dylibs to codesign.

* [msbuild] Check that ExtraArgs is not null before parsing

* [msbuild] FIxed accidental typo in last commit
2016-09-07 14:19:32 -04:00
Vincent Dondain 5ddee0dcbf [msbuild] Update classic build error (#791)
We now want the build error to always show up.
monotouch.dll will be shipped with XI 10 to allow migration (dependent on the dll being available).
Therefore the check wasn't valid anymore because it was only applying the error if monotouch.dll wasn't there.
This was done to avoid breaking our internal tests but we should actually be fine, if not we'll update the tests.
2016-09-07 12:50:22 -04:00
Vincent Dondain df7b2a5165 [msbuild] Add missing iOS+tvOS 10 Extension points (#786) 2016-09-07 17:42:14 +02:00
Jeffrey Stedfast d079b8afcb [msbuild] Parse the mmp ExtraArgs to get the custom mono bundle dir name (#790)
The mmp utility allows users to pass -custom_bundle_name to specify
a custom directory name to use instead of MonoBundle, so we need to
parse the extra args to extract this value so that we can scan that
directory for dylibs to codesign.
2016-09-07 11:30:29 -04:00
Jeffrey Stedfast 4d4decdad1 [msbuild] Fixed the mmp task to make sure the MonoBundle dir exists before enumerating its files (#787) 2016-09-07 09:15:40 -04:00
Vincent Dondain e4093d5908 [msbuild] ACTool update for iMessage Extension (#778) 2016-09-07 00:59:45 +02:00
Sebastien Pouliot 0cc8b176e8 Merge branch 'cycle8' into xcode8 2016-09-06 18:46:23 -04:00
Vincent Dondain 562b9564f1 [msbuild] Show proper build error when monotouch.dll doesn't exist (#750)
Due to the deprecation of classic we needed to provide a better and single error message
rather than the countless msbuild errors you'd have because you'd be missing monotouch.dll

* Migrate MySingleView & MyLibrary to Unified
2016-09-06 14:50:54 -04:00
Rolf Bjarne Kvinge f2c4c191c6 [msbuild] Set NSAllowArbitraryLoads when debugging watchOS apps. (#746)
* [msbuild] Move detection of network configuration to a separate task.

* [msbuild] Set NSAllowArbitraryLoads when debugging watchOS apps.

The only way to have reliable http connections from the watchOS 2 device
to the mac is to set NSAllowArbitraryLoads.

See also: https://forums.developer.apple.com/thread/6205
2016-09-02 08:30:15 -04:00
Rolf Bjarne Kvinge b7570c09d4 [msbuild] Remove debug spew. (#747) 2016-09-02 08:25:52 -04:00
Jeffrey Stedfast ee8eac1237 [msbuild] Only include *.dylibs from the app bundle for codesigning (i.e. not from child PlugIns) (#725)
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=43890
2016-09-01 11:43:26 -04:00
Rolf Bjarne Kvinge 88dcc52a35 Merge pull request #707 from rolfbjarne/msbuild-allow-http-for-watchos-debugging
[msbuild] Set NSAllowArbitraryLoads when debugging watchOS apps.
2016-09-01 16:48:56 +02:00
Jeffrey Stedfast 3ebed206e1 [msbuild] Only include *.dylibs from the app bundle for codesigning (i.e. not from child PlugIns) (#725)
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=43890
2016-09-01 15:42:07 +02:00
Rolf Bjarne Kvinge 91b8f958b9 [msbuild] Set NSAllowArbitraryLoads when debugging watchOS apps.
The only way to have reliable http connections from the watchOS 2 device
to the mac is to set NSAllowArbitraryLoads.

See also: https://forums.developer.apple.com/thread/6205
2016-08-31 19:43:21 +02:00
Rolf Bjarne Kvinge 7d96d81e52 [msbuild] Move detection of network configuration to a separate task. 2016-08-31 19:43:21 +02:00
Jeffrey Stedfast 73a1d74cab Cycle8 codesign simulator (#674)
* [msbuild] Always codesign iOS frameworks (#642)

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=43264

* [msbuild] Always codesign *.dylibs, even for Simulator builds (#672)

Another fix for https://bugzilla.xamarin.com/show_bug.cgi?id=43264
2016-08-25 18:22:20 -04:00
Jeffrey Stedfast f42e9ee935 [msbuild] Explicitly check that IsMacEnabled == true (#673) 2016-08-25 16:46:34 -04:00
Jeffrey Stedfast 3fbfcf7b22 [msbuild] Always codesign *.dylibs, even for Simulator builds (#672)
Another fix for https://bugzilla.xamarin.com/show_bug.cgi?id=43264
2016-08-25 16:40:31 -04:00
Jeffrey Stedfast 11c4f6bdd9 [msbuild] Always codesign iOS frameworks (#642)
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=43264
2016-08-25 13:08:03 -04:00
Jeffrey Stedfast 791423f4f1 [msbuild] Add the Insights API Key to the iOS archive manifest (#656)
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=43489
2016-08-25 11:45:55 -04:00
Jeffrey Stedfast 248635f5a7 [msbuild] Add the Insights API Key to the iOS archive manifest (#656)
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=43489
2016-08-24 16:29:46 -04:00
Daniel Cazzulino a744c7ad51 [msbuild] Add forward compatibility with symlinks support (#649)
See https://github.com/Microsoft/msbuild/issues/928
2016-08-23 15:35:57 -04:00
Daniel Cazzulino d45f52f1c1 [msbuild] Add forward compatibility with symlinks support (#648)
See https://github.com/Microsoft/msbuild/issues/928
2016-08-23 15:35:16 -04:00
Jason Imison 39b13fecba Fix fsharp targets to detect 'F#' language. Fixes #43356 (#626) 2016-08-18 14:11:02 -04:00
Jason Imison 07e3ad785e Fix fsharp targets to detect 'F#' language. Fixes #43356 (#625) 2016-08-18 14:01:35 -04:00
Jeffrey Stedfast 67bdff568b [msbuild] code cleanup (#607) 2016-08-15 15:07:34 -04:00
Mikayla Hutchinson 07c6835608 Remove leftover/broken import in F# targets 2016-08-15 10:06:16 -04:00
Mikayla Hutchinson 740d91ad08 Remove leftover/broken import in F# targets 2016-08-12 16:20:37 -04:00
joj 44721a0a9e Modifying the way GAC elimination works so it will work in MSBuild (#540)
XBuild adds extra semi-colons to the string when serializing. I remove them via split to make MSBuild work.
2016-08-10 11:59:09 -03:00
Jeffrey Stedfast f77fbeb016 [msbuild] When doing device-specific builds, ignore incompatible devi… (#579)
[msbuild] When doing device-specific builds, ignore incompatible device OS's

If the user has tvOS, watchOS, and iOS projects in their solution
and goes to build for one of them for a specific device, it passes
along the device specific info to MSBuild. The build would then
fail for the tvOS and/or watchOS projects because of incompatible
architecture requirements.

This fixes that problem by short-cutting the ParseDeviceSpecificBuildInfo
task to output the default values (the values used when not building
for a specific device).
2016-08-09 14:40:17 -04:00
Jeffrey Stedfast ec56c6103d [msbuild] When doing device-specific builds, ignore incompatible devi… (#579)
[msbuild] When doing device-specific builds, ignore incompatible device OS's

If the user has tvOS, watchOS, and iOS projects in their solution
and goes to build for one of them for a specific device, it passes
along the device specific info to MSBuild. The build would then
fail for the tvOS and/or watchOS projects because of incompatible
architecture requirements.

This fixes that problem by short-cutting the ParseDeviceSpecificBuildInfo
task to output the default values (the values used when not building
for a specific device).
2016-08-09 14:39:08 -04:00
Mikayla Hutchinson 51b7f81eca Fix F# targets on xbuild 12.0 & 14.0 (#542) 2016-08-09 11:24:12 -04:00
Mikayla Hutchinson 3e04819622 Fix F# targets on xbuild 12.0 & 14.0 (#541) 2016-08-09 11:23:56 -04:00
Chris Hamons 309c3b5c9e [XM] Fix msbuild incompatibility in binding target file (#375) 2016-08-08 13:53:33 -05:00
Jeffrey Stedfast 235a4ab226 [msbuild] Fixed spelling of MacOSX to Mac OS X (#538)
* [msbuild] Fixed spelling of MacOSX to Mac OS X

* [msbuild] Use the name 'macOS' instead of 'Mac OS X' :)
2016-08-04 14:08:15 -04:00
joj 0034839244 Modifying the way GAC elimination works so it will work in MSBuild (#540)
XBuild adds extra semi-colons to the string when serializing. I remove them via split to make MSBuild work.
2016-08-03 14:34:54 -05:00
Jeffrey Stedfast c2295c65e9 [msbuild] Don't use a user-defined Mac OS X SDK version, it's useless (#528)
Recent Xcode versions only ship 1 version of the SDK, so it is
pointless to have a user-defined SDK version to link against.

We already use the LSMinimumOSVersion to determine the proper
-mmacosx-version-min argument to pass.
2016-08-03 10:53:07 -04:00
nosami 1c82491de6 Add F# targets to Xamarin.Mac.FSharp.targets 2016-08-02 20:17:34 +01:00
nosami 5df2224f71 Add F# targets to Xamarin.Mac.FSharp.targets 2016-08-02 20:14:55 +01:00
nosami a90fe3ce8a Fix the other FSharp templates. Fixes #42828 2016-08-02 16:59:56 +01:00
nosami f7c84735c8 Fixes #42828 2016-08-02 16:59:44 +01:00
Jason Imison 44b3920511 Fixes #42828 (#512)
* Fixes #42828

* Fix the other FSharp templates. Fixes #42828
2016-08-02 11:49:22 -04:00
Chris Hamons 9c00c941dc [XM] Allow 64-bit system mono in XM apps (#508)
- Back when this check was added, 64-bit mono was not standard/shipped. Now it is.
2016-07-29 14:21:45 -05:00
Chris Hamons ff1f30b305 [XM] Fix msbuild incompatibility in binding target file (#375) 2016-07-11 13:56:04 -04:00
Jeffrey Stedfast b604792a3e [msbuild] Replaced uses of $(_IpaOutputDir) with $(IpaPackageDir) (#336)
* [msbuild] Replaced uses of $(_IpaOutputDir) with $(IpaPackageDir)

Fixes the unit tests

* [msbuild] Define IpaPackageDir/Name based on IpaPackagePath if defined
2016-06-30 21:22:41 -07:00
Rolf Bjarne Kvinge 93e100688d [msbuild] Don't Assert.Ignore in ctors, it ends up as failures. 2016-06-29 00:06:43 +02:00
Rolf Bjarne Kvinge a66fdf2738 [tests] Skip MSBuild device tests when device builds are disabled. 2016-06-29 00:06:39 +02:00
Rolf Bjarne Kvinge 8c5b446f82 [msbuild] Reorder imports for F# watchOS extensions so that it compiles correctly. (#299)
Otherwise extensions would just compile like a normal .NET class library
project and produce a .dll.
2016-06-28 08:20:26 -07:00
Jeffrey Stedfast 518b8007cc [msbuild] Properly archive projects containing WatchOS2 apps (#268)
Fixes bug #41762
2016-06-27 15:22:45 -04:00
Jeffrey Stedfast fa511d0d77 [msbuild] Allow customization of IPA package directory & path (#285)
Fixes bug #41963
2016-06-27 14:39:38 -04:00
Vincent Dondain afa7e8d976 [msbuild] Import Xamarin.iOS.Analysis.targets (#283)
Update reference to maccore which includes
the bump to an update xamarin-analysis and
the corresponding Makefile changes.
2016-06-27 14:07:58 -04:00
Rolf Bjarne Kvinge ba7cddc34e [msbuild] Add nuget diagnostics. (#255)
* [msbuild] Add nuget diagnostics.

* [msbuild] Make restore less verbose.

To see if that's what's causing an infinite newline print loop on jenkins bots.

* [msbuild] nuget can't list sources on jenkins for some reason, so just do it manually.

* [msbuild] Make sure diagnostics doesn't fail the build.
2016-06-23 06:22:21 -07:00
Chris Hamons 3fcb2ed89e [XM] - XM Mobile should not resolve from the GAC either (#242)
- Centralize fix I made for XM 4.5 to apply to both and write larger test
- https://bugzilla.xamarin.com/show_bug.cgi?id=42001
2016-06-20 15:26:33 -04:00
Jeffrey Stedfast f3199064d4 [msbuild] Properly locate .nib files produced for iOS 5.x (#241)
iOS 5.x uses .nib files and not directories.
2016-06-20 14:11:39 -04:00
Jeffrey Stedfast ff381fe6f5 [msbuild] Support ibtool output when it adds ~ipad or ~iphone modifiers (#200)
* [msbuild] Support ibtool output when it adds ~ipad or ~iphone modifiers

When targetting older iOS versions (such as iOS 7) for multiple
device targets (e.g. iphone, ipad, etc), ibtool will output
multiple directories using the basename of the original ib file
and add ~ipad or ~iphone blurbs to the filename.

This was causing the linking step to fail due to paths not being
found at the expected locations.

* [msbuild] Added unit tests for ibtool --link w/ --minimum-deployment-target 7.0

Since pre-iOS 8.0 does not support size classes in storyboards,
ibtool will output LaunchScreen~ipad.nib and LaunchScreen~iphone.nib.

This test will fail if the IBTool logic does not properly determine
the outputs to pass to a final ibtool --link command to link all of
the storyboards together.
2016-06-16 14:17:25 -04:00
Daniel Cazzulino ef0b8867b9 [msbuild] Rename and unify to IsMacEnabled (#193)
* [msbuild] Rename and unify to IsMacEnabled

We previously had an MtouchTargetsEnabled and a separate
IsMacTargetsEnabled for iOS and XM, when both actually
meant the same thing: is a Mac enabled for building this
project?

Note that instead of "targets", we make it more generic,
since the condition can be used in a task, a property
group or whatever really, not just to enable/disable
certain targets.

Also, we call it Enabled, rather than Connected or
Available, since it's more natural to think that all such
tasks/targets are enabled when you're building locally
on the Mac. Connected wouldn't have been appropriate, and
Available would be confusing.

For backwards compatibility I've kepd the old MtouchTargetsEnabled
pointing to IsMacEnabled. We'll change our Windows targets
accordingly to also unify this property and how/where it's
set.

* [msbuild] Use full condition comparison for robustness

This is the proper way to use a boolean in a condition, and
prevents errors whenever the property is an empty string or
anything other than a boolean value.
2016-06-16 13:14:43 -04:00
Jeffrey Stedfast 59a1233b26 [msbuild] Create a WatchKitSupport2 directory in the IPA for WatchOS2+ apps (#182)
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=41762
2016-06-15 13:50:27 +02:00
Daniel Cazzulino a645369e66 [msbuild] Remove improper .0 at the end of package version (#181)
For whatever reason, VS added it even if the package version is
0.9.5, but VS happily finds it and everything builds fine but
it breaks on xbuild/mono/mac??
2016-06-13 16:58:14 -04:00
Daniel Cazzulino 136b9a43b4 [msbuild] Unify and relocate shared MSBuild overriden tasks (#179)
* [msbuild] Remove unnecessary duplicate implementation of Move

Our implementation of the Move task was a partial copy of what
the MSBuild Move task does: https://github.com/Microsoft/msbuild/blob/master/src/XMakeTasks/Move.cs

Remove the unnecessary code, make it inherit the base implementation
like we do for the other MSBuild-overriden tasks, and place it in a
corresponding MsBuildTasks folder to denote this (again, like we do
in iOS.Tasks).

Removing this (unnecessary IMO) custom implementation of Move
ensures that when we switch to MSBuild, we can leverage improvements
and fixes on the task automatically.

* [msbuild] Move all the common MSBuild overriden tasks to MacDev

These tasks previously existed in iOS.Tasks, and Mac.Tasks. Since
they are reused across iOS and XM targets, move them to the common
MacDev project and update the targets accordingly.
2016-06-13 15:07:18 -04:00
Daniel Cazzulino 9642dd9be0 Provide .editorconfig support for easier contributor formatting
Scoped to the msbuild folder for now which has consistent C# and
MSBuild formatting. The rest of the repo seems to be using different
formatting, so I didn't want to have to decide one way or the other.
2016-06-13 00:43:37 -03:00
joj 28bb84d62b Added missing SessionId to CreateInstallerPackage (#170)
* [build] Moved CreateInstallerPackage to Core

* [build] Converted CreateInstallerPackage into a base with SessionId
2016-06-10 11:32:41 -04:00
Daniel Cazzulino fbf06ee933 [msbuild] Redefine the Exec task to prepare for remote execution from VS (#164)
Like the Copy/Delete/MakeDir/RemoveDir/Touch tasks, we need to override
this one so we can allow customer targets to also execute Mac tools
remotely when building from Windows, bringing parity to the build
customizations allowed on XS/xbuild since they build locally and Exec
"just works" there of course.
2016-06-10 10:02:53 +02:00
Chris Hamons 06c18bd887 [XM] Add release value option to msbuild/mmp to resolve XM 4.5 assemb… (#150)
[XM] Add release value option to msbuild/mmp to resolve XM 4.5 assemblies from system GAC

- This option "reverts" a C7 fix that prevented resovling assemblies from the GAC, which is unsafe
- If you use this option, you need to know what you are doing. The mono BCL and the XM BCL need to be compatible
- Use strictly puts you in the no support "you get to keep the pieces if it breaks" category.
2016-06-08 12:47:09 -04:00
joj a063725298 Added MtouchTargetsEnabled property to build (#139) 2016-06-06 15:30:34 -04:00
Jeffrey Stedfast 7d6bec05f1 [msbuild] Make Mac IBTool logic consistent with iOS logic (#127)
Fixes bug #41486
2016-06-03 13:55:44 -04:00
Jeffrey Stedfast 01587d8fb4 [msbuild] Explicitly target .NET 4.5 for Xamarin.Mac.Tasks.Core
The other projects already explicitly target .NET 4.5.
2016-06-01 11:28:51 -04:00
Jeffrey Stedfast f59d1195e5 [msbuild] Fixed up MmpTaskBase 2016-05-31 11:59:18 -04:00
Jeffrey Stedfast 582101a996 Macios symbolicate (#74) 2016-05-31 11:57:47 -04:00
Rolf Bjarne Kvinge c5ef10a221 [msbuild] Provide better info when a test fails due to unexpected build failures in the test. (#105) 2016-05-31 12:58:11 +02:00
Rolf Bjarne Kvinge 55dfad1351 [msbuild] Define __TVOS__, not __IOS__ for tvOS projects. (#101) 2016-05-31 10:33:59 +02:00
joj dea10d50b3 Renamed TaskBase class files to *TaskBase; Fixed Mac reference 2016-05-26 13:06:39 -03:00
joj b1e7cd4b23 Made tasks in Mac.Tasks.Core bases; added SessionId 2016-05-26 10:24:13 -03:00
joj 19b87f2723 Added new Mac.Tasks.Core project; moved tasks with no Core base there 2016-05-26 10:07:59 -03:00
Rolf Bjarne Kvinge a082722047 [msbuild] Make sure CFBundleShortVersionString is set to something. (#86)
This prevents the watch from getting mightily confused when re-installing
watch apps/extensions.

Not having a CFBundleShortVersionString would cause the following:

* Build & install & run would work fine the first time.
* The second build & install would confuse the watch so that the
  app wouldn't launch. Removing the app and reinstalling wouldn't
  work; the potential options would be to either reboot the device,
  or add a CFBundleShortVersionString to the Info.plists and install
  that build twice.
2016-05-26 14:20:43 +02:00
Rolf Bjarne Kvinge 3a70b71a4c [msbuild] LLVM is possible for armv7k as well. (#87) 2016-05-26 13:52:21 +02:00
Chris Hamons ca028ea150 [Mac] Add support for os x extensions (#83) 2016-05-25 17:20:33 -04:00
Jeffrey Stedfast 0d184bb187 [msbuild] Bump task projects to use .NET 4.5 instead of 4.0 (#78)
* [msbuild] Bump task projects to use .NET 4.5 instead of 4.0

Needed so that we can reference .NET 4.5 projects/assemblies
2016-05-25 14:06:20 -04:00
Jeffrey Stedfast 88bf794559 [msbuild] Fixed logic for building WatchOS storyboards (#75)
Starting with Xcode 7, storyboards are output as
Interface.storyboardc/Interface.plist instead of Interface.plist

We can also safely link these storyboards as long as we pass
the storyboardc directory to ibtool.
2016-05-25 11:16:41 +02:00
Jeffrey Stedfast e1e358a402 Merge pull request #45 from jstedfast/ibtool-link
[msbuild] Link storyboards as part of the IBTool task if Xcode >= 7.0
2016-05-23 16:41:26 -04:00
Vincent Dondain 6ca327e193 [msbuild] Remove empty UIDeviceRequiredCapabilities array (#71)
Looks like Xcode isn't generating any UIDeviceRequiredCapabilities
for watchOS 1 extensions.

It used to have UIRequiredDeviceCapabilities = 'watch-companion'
but that *might* not be required anymore.
Commit 94e35a8570 on xamarin-macios/master
comes from those same assumptions.

Now regarding bug #41204:
User is getting error "ERROR ITMS-90563: "Missing UIRequiredDeviceCapabilities value"
when publish WatchKitCatalog sample.
(https://bugzilla.xamarin.com/show_bug.cgi?id=41204)

This might happen because we're still creating an empty array for the
UIDeviceRequiredCapabilities key.

In any case there's no need to create it.
2016-05-23 10:18:34 +02:00
Vincent Dondain 686693ca47 [msbuild] Add AudioUnit key to ValidateAppBundleTaskBase (#68) 2016-05-19 16:53:44 +02:00
Jeffrey Stedfast 87153e47c0 [msbuild] Don't treat unsupported iCloud entitlements as errors in the build (#46)
Fixes bug #40961
2016-05-13 11:19:49 +02:00
Jeffrey Stedfast 7ee37c1803 [msbuild] Link storyboards as part of the IBTool task if Xcode >= 7.0
Fixes issue #40583
2016-05-12 15:24:54 -04:00
Vincent Dondain af283be95d [msbuild/tests] Add ValidateAppBundleTaskTests
Includes regression test for bug #38673:
https://bugzilla.xamarin.com/show_bug.cgi?id=38673

Description:
"Validate that CFBundleVersion and CFBundleShortVersionString
match across main app and all extensions".
2016-05-11 20:24:07 +02:00
Jeffrey Stedfast 0dc4cd2413 [msbuild] reverted accidental debug logging 2016-05-11 12:07:24 -04:00
Jeffrey Stedfast 351d429273 [msbuild] Fixed Optimize metadata parsing logic for BundleResources
Fixes bug #41019
2016-05-11 12:03:15 -04:00
Vincent Dondain 0970fce6ed [msbuild/tests] Add TVServicesExtension test (#21)
* [msbuild/tests] Remove car idiom from Contents.json

The car idiom is something new projects used to generate
and that actool doesn't handle anymore.

Logs were polluted by a warning: "The app icon set 'AppIcons' has an unassigned child".

* [msbuild/tests] Add tvOS extension test

We now have MyTVServicesExtension project which
comes from a simple tvOS extension template.
It is attached to MyTVApp.

The TVApp test has been updated to also build the extension.

* [msbuild/tests] Fix Action Extension version number

The action extension project now has a version number that
is matching the parent app.

Avoids warning message.
2016-05-03 13:17:38 -04:00
Emanuel d25da2a0e3 Set IsStreamable to false if the ODR are Embed 2016-05-02 15:48:57 -03:00
Emanuel b359fae77d [ODR] Sign app bundle if the AssetPackaManifest has changed 2016-05-02 15:48:50 -03:00
Emanuel b838b603f0 Avoid codesigning embedded assetpacks for AdHoc IPA 2016-05-02 15:48:41 -03:00
Jeffrey Stedfast 7344399ccf [msbuild] Added LinkDescription support for iOS
Fixes bug #40503
2016-04-26 16:15:18 -04:00
Vincent Dondain 2145c468a0 [msbuild] Add tvOS AppExtension targets 2016-04-26 10:19:54 -04:00
Rolf Bjarne Kvinge 94e35a8570 [msbuild] Xcode doesn't seem to add a UIRequiredDeviceCapabilities = 'watch-companion' anymore.
Xcode doesn't see to add a UIRequiredDeviceCapabilities = 'watch-companion'
anymore for watchos apps/extensions, not even when setting the deployment
version to 2.0.

This makes watchOS 2 apps launch in the simulator again.
2016-04-25 18:15:01 -04:00
Jeffrey Stedfast b0c55a87f6 [msbuild] Fixed FileWrites logic for OptimizeImage task 2016-04-25 18:14:55 -04:00
Jeffrey Stedfast e97d69b25c [msbuild] Don't write actool/ibtool/etc outputs to FileWrites
MSBuild compares what is in FileWrites with the Outputs of the target
and any file that exists in FileWrites but *doesn't* exist in Outputs
gets deleted with the assumption that it is no longer needed via the
IncrementalClean MSBuild target.

Since these tasks cannot know what the outputs will be until the task
is run, we cannot use FileWrites.
2016-04-25 18:14:55 -04:00
Rolf Bjarne Kvinge 68df944ad6 Build MSBuild targets & assemblies. 2016-04-24 14:48:44 -04:00