mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-14 10:01:08 +08:00

This provides for better ability to target platform > sdk > majorVersion specific features. For example, iOS 26 does not render titles when a background color is set on the actionbar. this allows that style to be overridden only on iOS 26 if desired.
65 lines
2.2 KiB
Bash
Executable File
65 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e -o pipefail
|
|
|
|
IOS_RUNTIME_VERSION=$1
|
|
METADATA_GENERATOR_PATH=$2
|
|
|
|
if [ -z "$1" ]
|
|
then
|
|
printf "Usage:\n"
|
|
printf "./typings-gen.sh <tns-ios-npm-version> [<objc-metadata-generator-binary>]\n"
|
|
printf "\n\nExample:\n"
|
|
printf "./typings-gen.sh rc ~/work/ios-runtime/cmake-build/metadataGenerator/bin/objc-metadata-generator\n\n"
|
|
exit -1
|
|
fi
|
|
|
|
if [ -n "$METADATA_GENERATOR_PATH" -a ! -f "$METADATA_GENERATOR_PATH" ]
|
|
then
|
|
echo "error: Specified metadata generator binary \"$METADATA_GENERATOR_PATH\" does not exist!"
|
|
exit -2
|
|
fi
|
|
|
|
echo "Creating typings project with @nativescript/ios@$IOS_RUNTIME_VERSION..."
|
|
rm -rf ios-typings-prj
|
|
ns create --template @nativescript/template-blank@latest ios-typings-prj
|
|
ns platform add ios@$IOS_RUNTIME_VERSION --path ios-typings-prj/
|
|
|
|
# For iOS 26
|
|
echo "FRAMEWORK_SEARCH_PATHS = \$(inherited) \$(SDKDIR)/System/Library/SubFrameworks" >> ios-typings-prj/App_Resources/iOS/build.xcconfig
|
|
|
|
|
|
if [ -n "$METADATA_GENERATOR_PATH" ]
|
|
then
|
|
echo "Replacing metadata generator binary with: $METADATA_GENERATOR_PATH"
|
|
rm ios-typings-prj/platforms/ios/internal/metadata-generator/bin/objc-metadata-generator
|
|
cp $METADATA_GENERATOR_PATH ios-typings-prj/platforms/ios/internal/metadata-generator/bin/objc-metadata-generator
|
|
|
|
fi
|
|
|
|
echo "Building project and generating typings..."
|
|
TNS_TYPESCRIPT_DECLARATIONS_PATH=$(pwd)/ios-typings-prj/typings ns build ios --debug --path ios-typings-prj/
|
|
|
|
echo "Deleting old ios typings (ios/objc-x86_64)..."
|
|
rm -f packages/types-ios/src/lib/ios/objc-x86_64/*
|
|
|
|
# echo "Deleting Material Components typings..."
|
|
# rm ios-typings-prj/typings/x86_64/objc\!MaterialComponents.d.ts
|
|
# Remove methods attached to other modules via extensions (UIKit, QuartzCore)
|
|
# perl -pi -e 's/.*\s(mdc_|MDCFontTextStyle|MDCAnimationTimingFunction).*\s*//g' ios-typings-prj/typings/x86_64/*.d.ts
|
|
|
|
echo "Moving generated typings to ios/objc-x86_64..."
|
|
mv ios-typings-prj/typings/x86_64/* packages/types-ios/src/lib/ios/objc-x86_64/
|
|
|
|
echo "Emitting (ios/ios.d.ts)..."
|
|
|
|
pushd packages/types-ios/src/lib/ios
|
|
|
|
rm ios.d.ts
|
|
echo '/// <reference path="runtime.d.ts" />' > ios.d.ts
|
|
|
|
for i in `ls objc-x86_64/*.d.ts`; do
|
|
echo "/// <reference path=\"$i\" />" >> ios.d.ts
|
|
done
|
|
|
|
popd
|