@@ -9,6 +9,7 @@ BUILD_VISION=$(to_bool ${BUILD_VISION:=false}) # disable by default for now
99BUILD_MACOS=$( to_bool ${BUILD_MACOS:= false} ) # disable by default for now
1010VERBOSE=$( to_bool ${VERBOSE:= false} )
1111BUILD_MACOS_CLI=$( to_bool ${BUILD_MACOS_CLI:= false} )
12+ BUILD_MACOS_NODE_API=$( to_bool ${BUILD_MACOS_NODE_API:= false} )
1213EMBED_METADATA=$( to_bool ${EMBED_METADATA:= false} )
1314CONFIG_BUILD=RelWithDebInfo
1415
@@ -22,11 +23,13 @@ for arg in $@; do
2223 --sim|--simulator) BUILD_SIMULATOR=true ;;
2324 --no-sim|--no-simulator) BUILD_SIMULATOR=false ;;
2425 --iphone|--device) BUILD_IPHONE=true ;;
25- --no-iphone|--no-device) BUILD_IPHONE=false ;;
26+ --no-iphone|--no-device|--no-phone|--no-ios ) BUILD_IPHONE=false ;;
2627 --xr|--vision) BUILD_VISION=true ;;
2728 --no-xr|--no-vision) BUILD_VISION=false ;;
2829 --macos) BUILD_MACOS=true ;;
2930 --no-macos) BUILD_MACOS=false ;;
31+ --macos-napi) BUILD_MACOS_NODE_API=true ;;
32+ --no-macos-napi) BUILD_MACOS_NODE_API=false ;;
3033 --macos-cli) BUILD_MACOS_CLI=true ;;
3134 --no-macos-cli) BUILD_MACOS_CLI=false ;;
3235 --verbose|-v) VERBOSE=true ;;
@@ -35,7 +38,7 @@ for arg in $@; do
3538 --jsc) TARGET_ENGINE=jsc ;;
3639 --embed-metadata) EMBED_METADATA=true ;;
3740 --hermes) TARGET_ENGINE=hermes ;;
38- --no-engine) TARGET_ENGINE=none ;;
41+ --no-engine|--generic-napi ) TARGET_ENGINE=none ;;
3942 * ) ;;
4043 esac
4144done
@@ -62,9 +65,14 @@ function cmake_build () {
6265 is_macos_cli=true
6366 fi
6467
68+ if [ " $platform " == " macos-napi" ]; then
69+ platform=" macos"
70+ is_macos_napi=true
71+ fi
72+
6573 mkdir -p $DIST /intermediates/$platform
6674
67- if $EMBED_METADATA || $is_macos_cli ; then
75+ if $EMBED_METADATA || $is_macos_cli || $is_macos_napi ; then
6876
6977 for arch in " ${archs[@]} " ; do
7078
@@ -74,7 +82,7 @@ function cmake_build () {
7482
7583 fi
7684
77- cmake -S=./NativeScript -B=$DIST /intermediates/$platform -GXcode -DTARGET_PLATFORM=$platform -DTARGET_ENGINE=$TARGET_ENGINE -DMETADATA_SIZE=$METADATA_SIZE -DBUILD_CLI_BINARY=$is_macos_cli
85+ cmake -S=./NativeScript -B=$DIST /intermediates/$platform -GXcode -DTARGET_PLATFORM=$platform -DTARGET_ENGINE=$TARGET_ENGINE -DMETADATA_SIZE=$METADATA_SIZE -DBUILD_CLI_BINARY=$is_macos_cli -DBUILD_MACOS_NODE_API= $is_macos_napi
7886
7987 cmake --build $DIST /intermediates/$platform --config $CONFIG_BUILD
8088}
@@ -127,6 +135,12 @@ cmake_build macos-cli x86_64 arm64
127135
128136fi
129137
138+ if $BUILD_MACOS_NODE_API ; then
139+ checkpoint " Building NativeScript for macOS Node API"
140+
141+ cmake_build macos-napi x86_64 arm64
142+ fi
143+
130144XCFRAMEWORKS=()
131145if $BUILD_CATALYST ; then
132146 XCFRAMEWORKS+=( -framework " $DIST /intermediates/catalyst/$CONFIG_BUILD -maccatalyst/NativeScript.framework"
@@ -143,6 +157,11 @@ if $BUILD_IPHONE; then
143157 -debug-symbols " $DIST /intermediates/ios/$CONFIG_BUILD -iphoneos/NativeScript.framework.dSYM" )
144158fi
145159
160+ if $BUILD_MACOS ; then
161+ XCFRAMEWORKS+=( -framework " $DIST /intermediates/macos/$CONFIG_BUILD /NativeScript.framework"
162+ -debug-symbols " $DIST /intermediates/macos/$CONFIG_BUILD /NativeScript.framework.dSYM" )
163+ fi
164+
146165if $BUILD_VISION ; then
147166 XCFRAMEWORKS+=( -framework " $DIST /intermediates/visionos/$CONFIG_BUILD -xros/NativeScript.framework"
148167 -debug-symbols " $DIST /intermediates/visionos/$CONFIG_BUILD -xros/NativeScript.framework.dSYM" )
175194# As such, there's no point bundling both UIKit-based and AppKit-based into a
176195# single XCFramework.
177196if $BUILD_MACOS ; then
178- XCFRAMEWORKS=( -framework " $DIST /intermediates/macos/$CONFIG_BUILD /NativeScript.framework"
179- -debug-symbols " $DIST /intermediates/macos/$CONFIG_BUILD /NativeScript.framework.dSYM" )
180-
181197 if [[ " $TARGET_ENGINE " == " none" ]]; then
182198 checkpoint " Creating the XCFramework for macOS (NativeScript.apple.node)"
183199
@@ -186,12 +202,14 @@ if $BUILD_MACOS; then
186202 OUTPUT_DIR=" packages/macos/build/$CONFIG_BUILD /NativeScript.apple.node"
187203 rm -rf $OUTPUT_DIR
188204 deno run -A ./scripts/build_xcframework.mts --output " $OUTPUT_DIR " ${XCFRAMEWORKS[@]}
189- else
190- checkpoint " Creating NativeScript.node for macOS"
191- cp -r " $DIST /intermediates/macos/$CONFIG_BUILD /libNativeScript.dylib" " $DIST /NativeScript.node"
192205 fi
193206fi
194207
208+ if $BUILD_MACOS_NODE_API ; then
209+ checkpoint " Creating NativeScript.node for macOS"
210+ cp -r " $DIST /intermediates/macos/$CONFIG_BUILD /libNativeScript.dylib" " $DIST /NativeScript.node"
211+ fi
212+
195213if $BUILD_MACOS_CLI ; then
196214
197215checkpoint " Creating NativeScript CLI"
0 commit comments