diff --git a/Kha/Kore/Tools/macos_arm64/kmake b/Kha/Kore/Tools/macos_arm64/kmake index 891f1812..f367e61f 100755 Binary files a/Kha/Kore/Tools/macos_arm64/kmake and b/Kha/Kore/Tools/macos_arm64/kmake differ diff --git a/Krom/Krom.app/Contents/MacOS/Krom b/Krom/Krom.app/Contents/MacOS/Krom index e0b30211..71d49f3f 100755 Binary files a/Krom/Krom.app/Contents/MacOS/Krom and b/Krom/Krom.app/Contents/MacOS/Krom differ diff --git a/leenkx/blender/lnx/make.py b/leenkx/blender/lnx/make.py index 6ee5b86a..25197e5e 100644 --- a/leenkx/blender/lnx/make.py +++ b/leenkx/blender/lnx/make.py @@ -1286,13 +1286,23 @@ def build_success(): else: krom_location = sdk_path + '/Krom/Krom.app' shutil.copytree(krom_location, files_path + '/Krom.app') + app_path = files_path + '/Krom.app' + app_name = lnx.utils.safestr(wrd.lnx_project_name) + os.rename(os.path.join(app_path, 'Contents/MacOS/Krom'), + os.path.join(app_path, 'Contents/MacOS/' + app_name)) + subprocess.call(['/usr/libexec/PlistBuddy', '-c', 'Set :CFBundleExecutable ' + app_name, + os.path.join(app_path, 'Contents/Info.plist')]) + deploy_dir = os.path.join(app_path, 'Contents/Resources/Deployment') + os.makedirs(deploy_dir, exist_ok=True) game_files = os.listdir(files_path) for f in game_files: f = files_path + '/' + f if os.path.isfile(f): - shutil.move(f, files_path + '/Krom.app/Contents/MacOS') - krom_exe = lnx.utils.safestr(wrd.lnx_project_name) + '.app' - os.rename(files_path + '/Krom.app', files_path + '/' + krom_exe) + shutil.move(f, deploy_dir) + shutil.rmtree(os.path.join(app_path, 'Contents/_CodeSignature'), ignore_errors=True) + subprocess.call(['codesign', '--force', '--deep', '--sign', '-', app_path]) + krom_exe = app_name + '.app' + os.rename(app_path, files_path + '/' + krom_exe) # Rename ext = state.target.split('-')[-1] # krom-windows diff --git a/lib/datachannel/kincfile.js b/lib/datachannel/kincfile.js index 4eb0b012..550f1d7b 100644 --- a/lib/datachannel/kincfile.js +++ b/lib/datachannel/kincfile.js @@ -16,16 +16,39 @@ project.addDefine('RTC_STATIC'); project.addDefine('MBEDTLS_ALLOW_PRIVATE_ACCESS'); project.addDefine('MBEDTLS_SSL_DTLS_SRTP'); -project.addLibFor('x64', path.join(__dirname, 'lib/datachannel-static')); -project.addLibFor('x64', path.join(__dirname, 'lib/juice-static')); -project.addLibFor('x64', path.join(__dirname, 'lib/usrsctp')); -project.addLibFor('x64', path.join(__dirname, 'lib/MbedTLS')); - if (platform === Platform.Windows) { + project.addLibFor('x64', path.join(__dirname, 'lib/datachannel-static')); + project.addLibFor('x64', path.join(__dirname, 'lib/juice-static')); + project.addLibFor('x64', path.join(__dirname, 'lib/usrsctp')); + project.addLibFor('x64', path.join(__dirname, 'lib/MbedTLS')); project.addLib('ws2_32'); project.addLib('Crypt32'); project.addLib('bcrypt'); } +else if (platform === Platform.OSX) { + // macOS links prebuilt .a (libdatachannel 0.24.6, mbedtls 3.6.4, OpenSSL backend) with 'brew install openssl@3' for the static ssl/crypto archives below + const isArm64 = arch === 'arm64' || (arch === 'default' && process.arch === 'arm64'); + const libdir = path.join(__dirname, 'lib', isArm64 ? 'macos_arm64' : 'macos_x64'); + project.addLinkerFlag(path.join(libdir, 'libdatachannel-static.a')); + project.addLinkerFlag(path.join(libdir, 'libjuice-static.a')); + project.addLinkerFlag(path.join(libdir, 'libusrsctp.a')); + project.addLinkerFlag(path.join(libdir, 'libsrtp2.a')); + project.addLinkerFlag(path.join(libdir, 'libMbedTLS.a')); + const odir = '/opt/homebrew/opt/openssl@3/lib'; + project.addLinkerFlag(path.join(odir, 'libssl.a')); + project.addLinkerFlag(path.join(odir, 'libcrypto.a')); +} +else if (platform === Platform.Linux) { + // TODO + const libdir = path.join(__dirname, 'lib/linux_x64'); + project.addLinkerFlag(path.join(libdir, 'libdatachannel-static.a')); + project.addLinkerFlag(path.join(libdir, 'libjuice-static.a')); + project.addLinkerFlag(path.join(libdir, 'libusrsctp.a')); + project.addLinkerFlag(path.join(libdir, 'libsrtp2.a')); + project.addLinkerFlag(path.join(libdir, 'libMbedTLS.a')); + project.addLinkerFlag('-lssl'); + project.addLinkerFlag('-lcrypto'); +} if (parentProject) { for (let sub of parentProject.subProjects) { diff --git a/lib/datachannel/lib/macos_arm64/libMbedTLS.a b/lib/datachannel/lib/macos_arm64/libMbedTLS.a new file mode 100644 index 00000000..06a4998f Binary files /dev/null and b/lib/datachannel/lib/macos_arm64/libMbedTLS.a differ diff --git a/lib/datachannel/lib/macos_arm64/libdatachannel-static.a b/lib/datachannel/lib/macos_arm64/libdatachannel-static.a new file mode 100644 index 00000000..e1e14ad9 Binary files /dev/null and b/lib/datachannel/lib/macos_arm64/libdatachannel-static.a differ diff --git a/lib/datachannel/lib/macos_arm64/libjuice-static.a b/lib/datachannel/lib/macos_arm64/libjuice-static.a new file mode 100644 index 00000000..12265584 Binary files /dev/null and b/lib/datachannel/lib/macos_arm64/libjuice-static.a differ diff --git a/lib/datachannel/lib/macos_arm64/libsrtp2.a b/lib/datachannel/lib/macos_arm64/libsrtp2.a new file mode 100644 index 00000000..ebf78fe4 Binary files /dev/null and b/lib/datachannel/lib/macos_arm64/libsrtp2.a differ diff --git a/lib/datachannel/lib/macos_arm64/libusrsctp.a b/lib/datachannel/lib/macos_arm64/libusrsctp.a new file mode 100644 index 00000000..abf72277 Binary files /dev/null and b/lib/datachannel/lib/macos_arm64/libusrsctp.a differ diff --git a/lib/datachannel/lib/macos_x64/libMbedTLS.a b/lib/datachannel/lib/macos_x64/libMbedTLS.a new file mode 100644 index 00000000..2d5f3f1d Binary files /dev/null and b/lib/datachannel/lib/macos_x64/libMbedTLS.a differ diff --git a/lib/datachannel/lib/macos_x64/libdatachannel-static.a b/lib/datachannel/lib/macos_x64/libdatachannel-static.a new file mode 100644 index 00000000..e2406415 Binary files /dev/null and b/lib/datachannel/lib/macos_x64/libdatachannel-static.a differ diff --git a/lib/datachannel/lib/macos_x64/libjuice-static.a b/lib/datachannel/lib/macos_x64/libjuice-static.a new file mode 100644 index 00000000..0ef82781 Binary files /dev/null and b/lib/datachannel/lib/macos_x64/libjuice-static.a differ diff --git a/lib/datachannel/lib/macos_x64/libsrtp2.a b/lib/datachannel/lib/macos_x64/libsrtp2.a new file mode 100644 index 00000000..56a451c6 Binary files /dev/null and b/lib/datachannel/lib/macos_x64/libsrtp2.a differ diff --git a/lib/datachannel/lib/macos_x64/libusrsctp.a b/lib/datachannel/lib/macos_x64/libusrsctp.a new file mode 100644 index 00000000..3fe2db4c Binary files /dev/null and b/lib/datachannel/lib/macos_x64/libusrsctp.a differ