Skip to content

Commit

Permalink
Updated build toolchain with XCode 14.2, macOS 13.1 and iOS 16.2 (#7480)
Browse files Browse the repository at this point in the history
* Updated version numbers for sdk.py

* Updated extension manifest

* indentation fixes

# Conflicts:
#	share/extender/build_input.yml
  • Loading branch information
JCash committed Mar 20, 2023
1 parent 83c9081 commit f5dc1cd
Show file tree
Hide file tree
Showing 5 changed files with 81 additions and 70 deletions.
1 change: 1 addition & 0 deletions .github/workflows/engine-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ jobs:
steps: [
{ name: 'Checkout', uses: actions/checkout@v3 },
{ name: 'Install Python', uses: actions/setup-python@v3, with: { python-version: 3.x, architecture: x64 } },
{ name: 'XCode', uses: maxim-lobanov/setup-xcode@v1, with: { xcode-version: '14.2' } },
{ name: 'Install Java', uses: actions/setup-java@v3, with: { java-version: '11.0.15', distribution: 'microsoft'} },
{ name: 'Install dependencies', run: 'ci/ci.sh install' },
{
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/main-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ jobs:
steps: [
{ name: 'Checkout', uses: actions/checkout@v3, with: { ref: '${{env.BUILD_BRANCH}}' } },
{ name: 'Install Python', uses: actions/setup-python@v3, with: { python-version: 3.x, architecture: x64 } },
{ name: 'XCode', uses: maxim-lobanov/setup-xcode@v1, with: { xcode-version: '13.2.1' } },
{ name: 'XCode', uses: maxim-lobanov/setup-xcode@v1, with: { xcode-version: '14.2' } },
{ name: 'Install Java', uses: actions/setup-java@v3, with: { java-version: '11.0.15', distribution: 'microsoft'} },
{
name: 'Build engine',
Expand Down
18 changes: 9 additions & 9 deletions build_tools/sdk.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,19 +36,18 @@
## **********************************************************************************************
# Darwin

VERSION_XCODE="13.2.1" # we also use this to match version on Github Actions
VERSION_MACOSX="12.1"
VERSION_IPHONEOS="15.2"
VERSION_XCODE_CLANG="13.0.0"
VERSION_IPHONESIMULATOR="15.2"
VERSION_XCODE="14.2" # we also use this to match version on Github Actions
VERSION_MACOSX="13.1"
VERSION_IPHONEOS="16.2"
VERSION_XCODE_CLANG="14.0.0"
VERSION_IPHONESIMULATOR="16.2"
MACOS_ASAN_PATH="usr/lib/clang/%s/lib/darwin/libclang_rt.asan_osx_dynamic.dylib"

# NOTE: Minimum iOS-version is also specified in Info.plist-files
# (MinimumOSVersion and perhaps DTPlatformVersion)
VERSION_IPHONEOS_MIN="9.0"
VERSION_MACOSX_MIN="10.7"

VERSION_XCODE_CLANG="13.0.0"
SWIFT_VERSION="5.5"

VERSION_LINUX_CLANG="13.0.0"
Expand Down Expand Up @@ -131,15 +130,16 @@ def get_local_darwin_toolchain_path():
def get_local_darwin_toolchain_version():
if not os.path.exists('/usr/bin/xcodebuild'):
return VERSION_XCODE
# Xcode 12.5.1
# Build version 12E507
# Xcode 14.2
# Build version 14C18
xcode_version_full = run.shell_command('/usr/bin/xcodebuild -version')
xcode_version_lines = xcode_version_full.split("\n")
xcode_version = xcode_version_lines[0].split()[1].strip()
return xcode_version

def get_local_darwin_clang_version():
# Apple clang version 13.1.6 (clang-1316.0.21.2.5)
# Apple clang version 14.0.0 (clang-1400.0.29.202)
# Target: x86_64-apple-darwin22.3.0
version_full = run.shell_command('clang --version')
version_lines = version_full.split("\n")
version = version_lines[0].split()[3].strip()
Expand Down
100 changes: 55 additions & 45 deletions scripts/package/package_xcode_and_sdks.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,14 @@

# Note: I wasn't able to rename the top folder when packaging, since it messed up symlinks (also the packages became unnecessarily bloated)

# Note 2: Due to the MacOS file resource links, packing using the built-in ´tar´command is not advised.
# Note 2: Due to the MacOS file resource links, packing using the built-in ´tar´ command is not advised.
# Instead, we recommend using ´gnu-tar`: https://formulae.brew.sh/formula/gnu-tar

# You can unpack the tar files and prettify them in one go
# $ mkdir iPhoneOS12.1.sdk && tar xf ../new_packages/iPhoneOS12.1.sdk.tar.gz -C iPhoneOS12.1.sdk --strip-components 1

# Original command lines:
# $ (cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs && tar zcf ~/work/defold/footest/iPhoneOS12.1.sdk.tar.gz iPhoneOS.sdk)
# $ (cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs && tar zcf ~/work/defold/footest/iPhoneOS12.1.sdk.tar.gz iPhoneOS.sdk)

set -e

Expand All @@ -35,60 +34,60 @@ XCODE="/Applications/Xcode.app/Contents/Developer/Toolchains"
VERBOSE=

if [ ! -d "$TARGET_DIR" ]; then
mkdir -p "$TARGET_DIR"
mkdir -p "$TARGET_DIR"
fi

# E.g. make_archive ./iPhoneOS.sdk ./iPhoneOS12.1.sdk -> ${TARGET_DIR}/iPhoneOS12.1.sdk.tar.gz
function make_archive() {
local src=$1
local tgtname=$(basename $2)
local srcname=$(basename $1)
shift
shift
local archive=${TARGET_DIR}/${tgtname}.tar.gz
if [ ! -e "$archive" ]; then
echo Packaging ${src} to ${archive}

local tarflags=-cz
if [ "${VERBOSE}" != "" ]; then
tarflags=${tarflags}v
fi

echo EXTRA ARGS: $@
echo tar ${tarflags} $@ -f ${archive} ${src}
tar ${tarflags} $@ -f ${archive} ${src}
else
echo "Found existing $archive"
fi
local src=$1
local tgtname=$(basename $2)
local srcname=$(basename $1)
shift
shift
local archive=${TARGET_DIR}/${tgtname}.tar.gz
if [ ! -e "$archive" ]; then
echo Packaging ${src} to ${archive}

local tarflags=-cz
if [ "${VERBOSE}" != "" ]; then
tarflags=${tarflags}v
fi

echo EXTRA ARGS: $@
echo tar ${tarflags} $@ -f ${archive} ${src}
tar ${tarflags} $@ -f ${archive} ${src}
else
echo "Found existing $archive"
fi
}

function package_platform() {
local platform=$1
pushd $PLATFORMS/${platform}.platform/Developer/SDKs/
PLATFORM_SYMLINK=$(find . -iname "${platform}*" -maxdepth 1 -type l | head -1)
PLATFORM_FOLDER=$(readlink ${PLATFORM_SYMLINK})
local platform=$1
pushd $PLATFORMS/${platform}.platform/Developer/SDKs/
PLATFORM_SYMLINK=$(find . -iname "${platform}*" -maxdepth 1 -type l | head -1)
PLATFORM_FOLDER=$(readlink ${PLATFORM_SYMLINK})

EXTRA_ARGS=""
EXTRA_ARGS=""

echo FOUND $PLATFORM_SYMLINK "->" $PLATFORM_FOLDER
make_archive $PLATFORM_FOLDER $PLATFORM_SYMLINK ${EXTRA_ARGS}
popd
echo FOUND $PLATFORM_SYMLINK "->" $PLATFORM_FOLDER
make_archive $PLATFORM_FOLDER $PLATFORM_SYMLINK ${EXTRA_ARGS}
popd
}

function package_xcode() {
local host_platform=$2
local folder=$(find $XCODE -iname "Xcode*" -maxdepth 1 -type d)
# split XcodeDefault.xctoolchain -> (XcodeDefault, xctoolchain)
local _name=$(basename $folder)
local name=${_name%%.*}
local namesuffix=${_name#*.}
echo SPLIT $name " and " $namesuffix
local version=$(/usr/bin/xcodebuild -version | grep -e "Xcode" | awk '{print $2}')
local target=${name}${version}.${namesuffix}.${host_platform}
local folder=$(find $XCODE -iname "Xcode*" -maxdepth 1 -type d)
# split XcodeDefault.xctoolchain -> (XcodeDefault, xctoolchain)
local _name=$(basename $folder)
local name=${_name%%.*}
local namesuffix=${_name#*.}
echo SPLIT $name " and " $namesuffix
local version=$(/usr/bin/xcodebuild -version | grep -e "Xcode" | awk '{print $2}')
local target=${name}${version}.${namesuffix}.${host_platform}

echo FOUND ${XCODE}/${_name} "->" ${target}
echo FOUND ${XCODE}/${_name} "->" ${target}

pushd ${XCODE}
pushd ${XCODE}

# No need to include executables on linux, where we run vanilla clang
if [ $host_platform != "darwin" ]
Expand All @@ -110,10 +109,21 @@ function package_xcode() {
EXTRA_ARGS="--exclude=${_name}/usr/lib/swift/watchsimulator ${EXTRA_ARGS}"
EXTRA_ARGS="--exclude=${_name}/usr/lib/swift/appletvos ${EXTRA_ARGS}"
EXTRA_ARGS="--exclude=${_name}/usr/lib/swift/appletvsimulator ${EXTRA_ARGS}"

EXTRA_ARGS="--exclude=${_name}/Developer/Platforms --exclude=${_name}/usr/lib/sourcekitd.framework --exclude=${_name}/usr/metal ${EXTRA_ARGS}"
make_archive ${_name} ${target} ${EXTRA_ARGS}
popd
EXTRA_ARGS="--exclude=${_name}/usr/lib/swift-5.0/watchos ${EXTRA_ARGS}"
EXTRA_ARGS="--exclude=${_name}/usr/lib/swift-5.0/watchsimulator ${EXTRA_ARGS}"
EXTRA_ARGS="--exclude=${_name}/usr/lib/swift-5.0/appletvos ${EXTRA_ARGS}"
EXTRA_ARGS="--exclude=${_name}/usr/lib/swift-5.0/appletvsimulator ${EXTRA_ARGS}"
EXTRA_ARGS="--exclude=${_name}/usr/lib/swift-5.5/watchos ${EXTRA_ARGS}"
EXTRA_ARGS="--exclude=${_name}/usr/lib/swift-5.5/watchsimulator ${EXTRA_ARGS}"
EXTRA_ARGS="--exclude=${_name}/usr/lib/swift-5.5/appletvos ${EXTRA_ARGS}"
EXTRA_ARGS="--exclude=${_name}/usr/lib/swift-5.5/appletvsimulator ${EXTRA_ARGS}"

EXTRA_ARGS="--exclude=${_name}/Developer/Platforms ${EXTRA_ARGS}"
EXTRA_ARGS="--exclude=${_name}/usr/lib/sourcekitd.framework ${EXTRA_ARGS}"
EXTRA_ARGS="--exclude=${_name}/usr/lib/sourcekitdlnProc.framework ${EXTRA_ARGS}"
EXTRA_ARGS="--exclude=${_name}/usr/metal ${EXTRA_ARGS}"
make_archive ${_name} ${target} ${EXTRA_ARGS}
popd
}

package_platform "iPhoneOS"
Expand Down
30 changes: 15 additions & 15 deletions share/extender/build_input.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,12 +114,12 @@ platforms:
env:
PLATFORMSDK_DIR: "{{env.PLATFORMSDK_DIR}}"
MANIFEST_MERGE_TOOL: "{{env.MANIFEST_MERGE_TOOL}}"
XCODE_VERSION: "{{env.XCODE_13_VERSION}}"
XCODE_CLANG_VERSION: "{{env.XCODE_13_CLANG_VERSION}}"
MACOS_VERSION: "{{env.MACOS_12_VERSION}}"
XCODE_VERSION: "{{env.XCODE_14_VERSION}}"
XCODE_CLANG_VERSION: "{{env.XCODE_14_CLANG_VERSION}}"
MACOS_VERSION: "{{env.MACOS_13_VERSION}}"
MACOS_VERSION_MIN: "{{env.MACOS_VERSION_MIN}}"
SWIFT_VERSION: "{{env.SWIFT_5_5_VERSION}}"
LD_LIBRARY_PATH: "{{env.LIB_TAPI_1_6_PATH}}:{{env.LD_LIBRARY_PATH}}"
SYSROOT: "{{env.PLATFORMSDK_DIR}}/MacOSX{{env.MACOS_12_VERSION}}.sdk"
SYSROOT: "{{env.PLATFORMSDK_DIR}}/MacOSX{{env.MACOS_13_VERSION}}.sdk"
context:
frameworks: ["Foundation", "AppKit", "Cocoa", "OpenGL", "OpenAL", "AGL", "IOKit", "Carbon", "CoreVideo", "QuartzCore"]
engineLibs: ["engine", "engine_service", "mbedtls", "zip", "webviewext", "profile", "remotery", "profilerext", "facebookext", "iapext", "pushext", "iacext", "record", "gameobject", "ddf", "resource", "gamesys", "graphics", "graphics_transcoder_basisu", "basis_transcoder", "physics", "BulletDynamics", "BulletCollision", "LinearMath", "Box2D", "render", "script", "luajit-5.1", "extension", "hid", "input", "particle", "rig", "dlib", "dmglfw", "gui", "crashext", "sound", "tremolo", "vpx", "liveupdate"]
Expand Down Expand Up @@ -164,12 +164,12 @@ platforms:
env:
PLATFORMSDK_DIR: "{{env.PLATFORMSDK_DIR}}"
MANIFEST_MERGE_TOOL: "{{env.MANIFEST_MERGE_TOOL}}"
XCODE_VERSION: "{{env.XCODE_13_VERSION}}"
XCODE_CLANG_VERSION: "{{env.XCODE_13_CLANG_VERSION}}"
XCODE_VERSION: "{{env.XCODE_14_VERSION}}"
XCODE_CLANG_VERSION: "{{env.XCODE_14_CLANG_VERSION}}"
SWIFT_VERSION: "{{env.SWIFT_5_5_VERSION}}"
IOS_VERSION: "{{env.IOS_15_VERSION}}"
LD_LIBRARY_PATH: "{{env.LIB_TAPI_1_6_PATH}}:{{env.LD_LIBRARY_PATH}}"
SYSROOT: "{{env.PLATFORMSDK_DIR}}/iPhoneOS{{env.IOS_15_VERSION}}.sdk"
IOS_VERSION: "{{env.IOS_16_VERSION}}"
IOS_VERSION_MIN: "{{env.IOS_VERSION_MIN}}"
SYSROOT: "{{env.PLATFORMSDK_DIR}}/iPhoneOS{{env.IOS_16_VERSION}}.sdk"
context:
frameworks: ["OpenGLES", "OpenAL", "QuartzCore", "CoreGraphics", "AudioToolbox", "SystemConfiguration", "CoreVideo", "UIKit", "AVFoundation"]
weakFrameworks: ["Foundation"]
Expand Down Expand Up @@ -207,12 +207,12 @@ platforms:
env:
PLATFORMSDK_DIR: "{{env.PLATFORMSDK_DIR}}"
MANIFEST_MERGE_TOOL: "{{env.MANIFEST_MERGE_TOOL}}"
XCODE_VERSION: "{{env.XCODE_13_VERSION}}"
XCODE_CLANG_VERSION: "{{env.XCODE_13_CLANG_VERSION}}"
XCODE_VERSION: "{{env.XCODE_14_VERSION}}"
XCODE_CLANG_VERSION: "{{env.XCODE_14_CLANG_VERSION}}"
SWIFT_VERSION: "{{env.SWIFT_5_5_VERSION}}"
IOS_VERSION: "{{env.IOS_15_VERSION}}"
LD_LIBRARY_PATH: "{{env.LIB_TAPI_1_6_PATH}}:{{env.LD_LIBRARY_PATH}}"
SYSROOT: "{{env.PLATFORMSDK_DIR}}/iPhoneSimulator{{env.IOS_15_VERSION}}.sdk"
IOS_VERSION: "{{env.IOS_16_VERSION}}"
IOS_VERSION_MIN: "{{env.IOS_VERSION_MIN}}"
SYSROOT: "{{env.PLATFORMSDK_DIR}}/iPhoneSimulator{{env.IOS_16_VERSION}}.sdk"
context:
frameworks: ["OpenGLES", "OpenAL", "QuartzCore", "CoreGraphics", "AudioToolbox", "SystemConfiguration", "CoreVideo", "UIKit", "AVFoundation"]
weakFrameworks: ["Foundation"]
Expand Down

0 comments on commit f5dc1cd

Please sign in to comment.