xamarin-macios/docs
Peter Collins 448999982c
[msbuild] Add @(XcodeProject) action (#21232)
Context: https://github.com/CommunityToolkit/Maui.NativeLibraryInterop

Introduces a `@(XcodeProject)` build action which can be used to build
and consume the outputs of Xcode framework projects.

The following metadata are supported on this item:

```xml
  <XcodeProject Include="path/to/myproject.xcodeproj" >
    <Configuration>Release</Configuration>
    <CreateNativeReference>true</CreateNativeReference>
    <ForceLoad></ForceLoad>
    <Frameworks></Frameworks>
    <Kind>Framework</Kind>
    <OutputPath></OutputPath>
    <SchemeName></SchemeName>
    <SmartLink></SmartLink>
    <Visible></Visible>
  </XcodeProject>
```

 * `%(SchemeName)`: The name of the build scheme or target that should
    be used to build the project.

 * `%(Configuration)`: The name of the configuration to use to build the
    project. The default value is `Release`.

 * `%(CreateNativeReference)`: Output XCFRAMEWORK files will be added as
    a `@(NativeReference)` to the project. Metadata supported by
    `@(NativeReference)` like `%(Kind)`, `%(Frameworks)`, or `%(SmartLink)`
    will be forwarded if set. The default value is `true`.

 * `%(OutputPath)`: Can be set to override the XCARCHIVE and XCFRAMEWORK
    output path of the Xcode project. The default value is
    `$(IntermediateOutputPath)xcode/{SchemeName}-{Hash}`.

A new `_BuildXcodeProjects` target will attempt to build XCARCHIVE and
XCFRAMEWORK files for each `@(XcodeProject)` item. These outputs will be
created for the platform specified in the target framework. If multiple
target frameworks are specified, the project will be built for each
platform during each inner build.

A new `$(MaciOSPrepareForBuildDependsOn)` build extension point has been
added to allow customer projects to more easily hook into the beginning
of the build process.

---------

Co-authored-by: Peter Collins <pecolli@microsoft.com>
Co-authored-by: Alex Soto <alex@soto.dev>
2024-09-24 23:47:09 +02:00
..
api [src/docs] Add xml documentation for types. (#20672) 2024-06-06 07:37:52 +02:00
build-apps [msbuild] Add @(XcodeProject) action (#21232) 2024-09-24 23:47:09 +02:00
website [bgen] Add support for more backing field types. (#21172) 2024-09-06 12:44:14 +02:00
CORECLR.md [configure] Add option to use a locally built dotnet/runtime. (#11643) 2021-05-21 22:18:25 +02:00
apple-privacy-manifest.md Apple Privacy Manifest doc updates (#20391) 2024-04-02 13:33:37 -04:00
bindas.md [docs] Document how to add support for new BindAs types. 2017-09-25 16:38:21 +02:00
bug-repro.md [fabricbot] Handle the 'need-repro' label. (#17272) 2023-01-18 18:33:48 +01:00
code-sharing-with-user-frameworks.md [docs] Clearify wording a bit about code sharing occuring once per architecture. 2017-02-20 17:14:14 +01:00
configuration-properties.md [msbuild] Disable stripping symbols by default for Debug builds (#20308) 2024-03-18 08:13:47 -07:00
managed-static-registrar.md [docs] Improve a few things in the managed static registrar doc. (#19368) 2023-10-29 13:09:03 -04:00
multi-target-framework.md [xcode16] Use [Experimental] instead of [RequiresPreviewFeatures]. (#21178) 2024-09-10 16:11:58 +02:00
native-library-interop.md [msbuild] Add @(XcodeProject) action (#21232) 2024-09-24 23:47:09 +02:00
nativeaot.md [docs] Document NativeAOT support. Fixes #18585. (#19362) 2023-11-09 16:05:54 +01:00
objective-c-protocols.md [bgen] Implement support for using default interface members to bind protocols. (#20681) 2024-06-07 16:35:48 +02:00
preparing-your-app-for-testflight.md [docs]Created a doc for preparing an app for TestFlight (#18125) 2023-05-30 17:46:10 -04:00
preview-apis.md [xcode16] Use [Experimental] instead of [RequiresPreviewFeatures]. (#21178) 2024-09-10 16:11:58 +02:00
required-reasons-bcl.md Add documentation on how to provide the Apple Privacy Manifest (#20292) 2024-03-21 07:04:27 -04:00
required-reasons-dotnet-maui.md Add documentation on how to provide the Apple Privacy Manifest (#20292) 2024-03-21 07:04:27 -04:00
required-reasons-macios.md Add documentation on how to provide the Apple Privacy Manifest (#20292) 2024-03-21 07:04:27 -04:00