Skip to content

Add NET_OSX (osx-arm64) build target for DynamoCLI - #17253

Open
saintentropy wants to merge 1 commit into
DynamoDS:masterfrom
saintentropy:feature/macos-arm64-build
Open

Add NET_OSX (osx-arm64) build target for DynamoCLI#17253
saintentropy wants to merge 1 commit into
DynamoDS:masterfrom
saintentropy:feature/macos-arm64-build

Conversation

@saintentropy

Copy link
Copy Markdown
Contributor

Purpose

WIP / draft — do not review yet. Jira ticket (DYN-####) and full PR template to be completed later.

Adds a NET_OSX (osx-arm64 / Apple Silicon) build target mirroring NET_Linux so DynamoCLI and the cross-platform core build and run on macOS.

  • Config/CS_SDK.props: NET_OSX/Publish_OSX platforms, osx-arm64 RID, _OSX define, AnyCPU PlatformTarget, portable pdbs
  • DynamoCore.sln: NET_OSX/Publish_OSX configs
  • DynamoCore.csproj: osx-arm64 LibGOsToken
  • StartupUtils.cs: macOS ASM search pattern (ASMahl.dylib)

Verified on Apple Silicon: DynamoCLI evaluates a geometry graph end-to-end via the arm64 LibG + ASM kernel. Pairs with the companion LibG osx-arm64 PR.

Declarations

Check these if you believe they are true

Release Notes

(FILL ME IN) Brief description of the fix / enhancement. Use N/A to indicate that the changes in this pull request do not apply to Release Notes. Mandatory section

Reviewers

(FILL ME IN) Reviewer 1 (If possible, assign the Reviewer for the PR)

(FILL ME IN, optional) Any additional notes to reviewers or testers.

FYIs

(FILL ME IN, Optional) Names of anyone else you wish to be notified of

Mirror the NET_Linux target so DynamoCLI and the cross-platform core build and
run on macOS / Apple Silicon:
- Config/CS_SDK.props: NET_OSX + Publish_OSX platforms, osx-arm64 RID, _OSX define,
  AnyCPU PlatformTarget, portable pdbs for OSX
- DynamoCore.sln: NET_OSX + Publish_OSX solution and per-project configurations
- DynamoCore.csproj: osx-arm64 LibGOsToken so the mac LibG payload is consumed
- StartupUtils.cs: macOS ASM search pattern (*ASMahl*.dylib) in PreloadASM

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 28, 2026 15:31

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a new macOS (Apple Silicon) build target (NET_OSX / Publish_OSX, osx-arm64) to align DynamoCore/DynamoCLI’s cross-platform build configuration with the existing Linux target, including OS-specific geometry/ASM loading behavior.

Changes:

  • Adds NET_OSX / Publish_OSX platforms/configurations to the shared SDK props and DynamoCore.sln.
  • Updates DynamoCore.csproj to select an OS X-specific LibGOsToken for pulling LibG assets.
  • Extends ASM binary discovery in StartupUtils.PreloadASM to handle .dylib on macOS.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
src/DynamoCore/DynamoCore.csproj Adds LibGOsToken selection for OSX builds to locate OS X LibG assets.
src/DynamoCore.sln Adds NET_OSX / Publish_OSX solution configurations and project mappings.
src/DynamoApplications/StartupUtils.cs Uses a macOS .dylib search pattern when extracting ASM version for LibG preload.
src/Config/CS_SDK.props Defines NET_OSX / Publish_OSX platforms, sets osx-arm64 RID, _OSX constant, and portable PDB settings.

throw new FileNotFoundException($"{nameof(asmPath)}:{asmPath}");
}
Version asmBinariesVersion = DynamoShapeManager.Utilities.GetVersionFromPath(asmPath, OSHelper.IsWindows() ? "*ASMAHL*.dll" : "*ASMahl*.so");
Version asmBinariesVersion = DynamoShapeManager.Utilities.GetVersionFromPath(asmPath, OSHelper.IsWindows() ? "*ASMAHL*.dll" : OperatingSystem.IsMacOS() ? "*ASMahl*.dylib" : "*ASMahl*.so");
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Maintainability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants