diff --git a/.github/workflows/github-actions.yml b/.github/workflows/github-actions.yml
index ed8a8f87..f2bf6c1b 100644
--- a/.github/workflows/github-actions.yml
+++ b/.github/workflows/github-actions.yml
@@ -14,6 +14,11 @@ env:
SCL_AZURE_ARTIFACTS_API_KEY: ${{ secrets.SCL_AZURE_ARTIFACTS_API_KEY }}
SCL_GITHUB_NUGET_FEED_USERNAME: ${{ secrets.SCL_GITHUB_NUGET_FEED_USERNAME }}
+ BINDINGS_IOS___SDK_VERSION: "17.2"
+ BINDINGS_IOS___XCODE_IDE_DEV_PATH: "/Applications/Xcode_15.2.app/Contents/Developer"
+
+ BINDINGS_MACCATALYST___SDK_VERSION: "14.2"
+ BINDINGS_MACCATALYST___XCODE_IDE_DEV_PATH: "/Applications/Xcode_15.2.app/Contents/Developer"
on:
workflow_call: # so that other workflows can trigger this
@@ -57,20 +62,26 @@ jobs:
- name: '🏗 📦 Build, Pack & Announce New Release (if appropriate)'
shell: 'bash'
run: |
- cd "${{env.BUILD_REPOSITORY_FOLDERPATH}}/Laerdal.Scripts" \
- && \
- dotnet \
- msbuild \
- "Laerdal.Builder.targets" \
- -m:1 \
- -p:Should_Skip_MacCatalyst="false" \
- \
- -p:PackageOutputPath="${{env.BUILD_REPOSITORY_FOLDERPATH}}/Artifacts" \
- -p:Laerdal_Gradle_Path="/opt/homebrew/opt/gradle@7/bin/gradle" \
- -p:Laerdal_Source_Branch="${{env.LAERDAL_SOURCE_BRANCH}}" \
- -p:Laerdal_Repository_Path="${{env.LAERDAL_REPOSITORY_PATH}}" \
- -p:Laerdal_Github_Access_Token="${{env.SCL_GITHUB_ACCESS_TOKEN}}" \
- -p:Laerdal_Test_Results_Folderpath="${{env.BUILD_REPOSITORY_FOLDERPATH}}/TestResults"
+ cd "${{env.BUILD_REPOSITORY_FOLDERPATH}}/Laerdal.Scripts" \
+ && \
+ dotnet \
+ msbuild \
+ "Laerdal.Builder.targets" \
+ -m:1 \
+ -p:Should_Skip_MacCatalyst="false" \
+ \
+ -p:PackageOutputPath="${{env.BUILD_REPOSITORY_FOLDERPATH}}/Artifacts" \
+ -p:Laerdal_Gradle_Path="/opt/homebrew/opt/gradle@7/bin/gradle" \
+ -p:Laerdal_Source_Branch="${{env.LAERDAL_SOURCE_BRANCH}}" \
+ -p:Laerdal_Repository_Path="${{env.LAERDAL_REPOSITORY_PATH}}" \
+ -p:Laerdal_Github_Access_Token="${{env.SCL_GITHUB_ACCESS_TOKEN}}" \
+ -p:Laerdal_Test_Results_Folderpath="${{env.BUILD_REPOSITORY_FOLDERPATH}}/TestResults" \
+ \
+ -p:Laerdal_Bindings_iOS___Sdk_Version="${{env.BINDINGS_IOS___SDK_VERSION}}" \
+ -p:Laerdal_Bindings_iOS___Xcode_Ide_Dev_Path="${{env.BINDINGS_IOS___XCODE_IDE_DEV_PATH}}" \
+ \
+ -p:Laerdal_Bindings_MacCatalyst___Sdk_Version="${{env.BINDINGS_MACCATALYST___SDK_VERSION}}" \
+ -p:Laerdal_Bindings_MacCatalyst___Xcode_Ide_Dev_Path="${{env.BINDINGS_MACCATALYST___XCODE_IDE_DEV_PATH}}"
- name: '📡 Publish Test Results' # https://github.com/marketplace/actions/publish-test-results
uses: 'EnricoMi/publish-unit-test-result-action/macos@v2'
diff --git a/Laerdal.McuMgr.Bindings.MacCatalyst/Laerdal.McuMgr.Bindings.MacCatalyst.csproj b/Laerdal.McuMgr.Bindings.MacCatalyst/Laerdal.McuMgr.Bindings.MacCatalyst.csproj
index daeb7303..592d54bb 100644
--- a/Laerdal.McuMgr.Bindings.MacCatalyst/Laerdal.McuMgr.Bindings.MacCatalyst.csproj
+++ b/Laerdal.McuMgr.Bindings.MacCatalyst/Laerdal.McuMgr.Bindings.MacCatalyst.csproj
@@ -33,6 +33,9 @@
$([System.IO.Path]::Combine($(MSBuildThisFileDirectory), 'Frameworks'))
$(NativeFrameworkParentFolderpath)/McuMgrBindingsiOS.framework
+
+ 14.2
+ /Applications/Xcode_15.2.app/Contents/Developer
@@ -158,7 +161,18 @@
-
+
+
+
+ <_CliCommand>$(_Cli) XCODE_IDE_DEV_PATH='$(Laerdal_Bindings_MacCatalyst___Xcode_Ide_Dev_Path)'
+ <_CliCommand>$(_Cli) XCODEBUILD_TARGET_SDK='iphoneos'
+ <_CliCommand>$(_Cli) XCODEBUILD_TARGET_SDK_VERSION='$(Laerdal_Bindings_MacCatalyst___Sdk_Version)'
+ <_CliCommand>$(_Cli) SWIFT_OUTPUT_PATH='$(NativeFrameworkParentFolderpath)'
+ <_CliCommand>$(_Cli) ./Laerdal.Mac.CompileAndGenerateFatLibs.sh
+
+
+
+
diff --git a/Laerdal.McuMgr.Bindings.MacCatalystAndIos.Native/Laerdal.Mac.CompileAndGenerateFatLibs.sh b/Laerdal.McuMgr.Bindings.MacCatalystAndIos.Native/Laerdal.Mac.CompileAndGenerateFatLibs.sh
index 2e7c9e2b..2a730996 100755
--- a/Laerdal.McuMgr.Bindings.MacCatalystAndIos.Native/Laerdal.Mac.CompileAndGenerateFatLibs.sh
+++ b/Laerdal.McuMgr.Bindings.MacCatalystAndIos.Native/Laerdal.Mac.CompileAndGenerateFatLibs.sh
@@ -8,6 +8,8 @@
#
# Note that all parameters passed to xcodebuild must be in the form of -parameter value instead of --parameter
+declare XCODE_IDE_DEV_PATH="${XCODE_IDE_DEV_PATH:-/Applications/Xcode_15.2.app/Contents/Developer}"
+
declare XCODEBUILD_TARGET_SDK="${XCODEBUILD_TARGET_SDK:-iphoneos}"
declare XCODEBUILD_TARGET_SDK_VERSION="${XCODEBUILD_TARGET_SDK_VERSION}" # xcodebuild -showsdks
@@ -38,8 +40,8 @@ else
OUTPUT_FOLDER_POSTFIX="$XCODEBUILD_TARGET_SDK"
fi
-declare OUTPUT_FOLDER_NAME="$SWIFT_BUILD_CONFIGURATION-$OUTPUT_FOLDER_POSTFIX" # Release-iphoneos or Release-maccatalyst note that we intentionally *omitted* the sdk-version from the folder name
-declare OUTPUT_SHARPIE_HEADER_FILES_PATH="SharpieOutput/SwiftFrameworkProxy.Binding" # contains the resulting files ApiDefinitions.cs and StructsAndEnums.cs
+declare OUTPUT_FOLDER_NAME="$SWIFT_BUILD_CONFIGURATION-$OUTPUT_FOLDER_POSTFIX" # Release-iphoneos or Release-maccatalyst note that we intentionally *omitted* the sdk-version
+declare OUTPUT_SHARPIE_HEADER_FILES_PATH="SharpieOutput/SwiftFrameworkProxy.Binding" # from the folder name contains the resulting files ApiDefinitions.cs and StructsAndEnums.cs
function print_macos_sdks() {
echo "** xcode path : '$( "xcode-select" -p )'"
@@ -68,6 +70,18 @@ function print_macos_sdks() {
echo
}
+function set_system_wide_default_xcode_ide() {
+ echo "** Set Xcode IDE path to '$XCODE_IDE_DEV_PATH'"
+
+ sudo xcode-select -s "$XCODE_IDE_DEV_PATH"
+ local exitCode=$?
+
+ if [ $exitCode -ne 0 ]; then
+ echo "** [FAILED] Failed to set xcode-select to '$XCODE_IDE_DEV_PATH'"
+ exit 1
+ fi
+}
+
function build() {
echo "** Build $OUTPUT_FOLDER_NAME framework for device"
@@ -326,6 +340,7 @@ function create_fat_binaries() {
function main() {
print_macos_sdks
+ set_system_wide_default_xcode_ide
build
create_fat_binaries
diff --git a/Laerdal.McuMgr.Bindings.iOS/Laerdal.McuMgr.Bindings.iOS.csproj b/Laerdal.McuMgr.Bindings.iOS/Laerdal.McuMgr.Bindings.iOS.csproj
index 73425131..bed8fcde 100644
--- a/Laerdal.McuMgr.Bindings.iOS/Laerdal.McuMgr.Bindings.iOS.csproj
+++ b/Laerdal.McuMgr.Bindings.iOS/Laerdal.McuMgr.Bindings.iOS.csproj
@@ -34,6 +34,9 @@
$([System.IO.Path]::Combine($(MSBuildThisFileDirectory), 'Frameworks'))
$(NativeFrameworkParentFolderpath)/McuMgrBindingsiOS.framework
+
+ 17.2
+ /Applications/Xcode_15.2.app/Contents/Developer
@@ -159,7 +162,18 @@
-
+
+
+
+ <_CliCommand>$(_Cli) XCODE_IDE_DEV_PATH='$(Laerdal_Bindings_iOS___Xcode_Ide_Dev_Path)'
+ <_CliCommand>$(_Cli) XCODEBUILD_TARGET_SDK='iphoneos'
+ <_CliCommand>$(_Cli) XCODEBUILD_TARGET_SDK_VERSION='$(Laerdal_Bindings_iOS___Sdk_Version)'
+ <_CliCommand>$(_Cli) SWIFT_OUTPUT_PATH='$(NativeFrameworkParentFolderpath)'
+ <_CliCommand>$(_Cli) ./Laerdal.Mac.CompileAndGenerateFatLibs.sh
+
+
+
+
diff --git a/Laerdal.Scripts/Laerdal.Builder.targets b/Laerdal.Scripts/Laerdal.Builder.targets
index d30f82fa..01aa6c8e 100644
--- a/Laerdal.Scripts/Laerdal.Builder.targets
+++ b/Laerdal.Scripts/Laerdal.Builder.targets
@@ -29,6 +29,7 @@
%0A
+
Release
true
@@ -42,7 +43,17 @@
true
false
-
+
+
+
+
+
+
+
+
+
+
+
gradle
$(BUILD_SOURCEBRANCH)
$(BUILD_REPOSITORY_NAME)
@@ -193,6 +204,7 @@
<_Laerdal_Build_Parameters>$(_Laerdal_Build_Parameters)GradlePath=$(Laerdal_Gradle_Path);
<_Laerdal_Build_Parameters>$(_Laerdal_Build_Parameters)Configuration=$(Configuration);
<_Laerdal_Build_Parameters>$(_Laerdal_Build_Parameters)PackageOutputPath=$(PackageOutputPath);
+ <_Laerdal_Build_Parameters>$(_Laerdal_Build_Parameters)ContinuousIntegrationBuild=$(Is_CI_Build);
<_Laerdal_Build_Parameters>$(_Laerdal_Build_Parameters)Should_Skip_MacCatalyst=$(Should_Skip_MacCatalyst);
@@ -209,14 +221,15 @@
-
+
-
-
-
+
+
+
+
-
+
diff --git a/Laerdal.Scripts/Laerdal.SetupBuildEnvironment.sh b/Laerdal.Scripts/Laerdal.SetupBuildEnvironment.sh
index bce73781..d0bb10c9 100644
--- a/Laerdal.Scripts/Laerdal.SetupBuildEnvironment.sh
+++ b/Laerdal.Scripts/Laerdal.SetupBuildEnvironment.sh
@@ -134,13 +134,13 @@ echo "** XCode Installations:"
ls -ld /Applications/Xcode* || exit 90
-sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer
-declare exitCode=$?
-if [ $exitCode != 0 ]; then
- echo "##vso[task.logissue type=error]Failed to apply 'xcode-select'."
- exit 90
-fi
-echo
+#sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer
+#declare exitCode=$?
+#if [ $exitCode != 0 ]; then
+# echo "##vso[task.logissue type=error]Failed to apply 'xcode-select'."
+# exit 90
+#fi
+#echo
echo
echo "** XCode SDKs:"