diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 9d5814a6..5442c82b 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -27,7 +27,6 @@ jobs: sudo rm -rf "/usr/local/share/boost" sudo rm -rf "$AGENT_TOOLSDIRECTORY" sudo rm -rf /usr/local/lib/android - mv ./Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs.legacy ./Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs TARGET=4.27 make python change_version.py 4.27.0 @@ -55,7 +54,6 @@ jobs: sudo rm -rf "/usr/local/share/boost" sudo rm -rf "$AGENT_TOOLSDIRECTORY" sudo rm -rf /usr/local/lib/android - mv ./Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs.legacy ./Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs TARGET=5.1 make python change_version.py 5.1.0 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a61a5718..d95011f5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,7 +24,6 @@ jobs: - name: Prepare PlayCppSdk run: | - mv ./Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs.legacy ./Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs TARGET=4.27 make python change_version.py 4.27.0 @@ -59,7 +58,6 @@ jobs: - name: Prepare PlayCppSdk run: | - mv ./Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs.legacy ./Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs TARGET=5.0 make python change_version.py 5.0.0 @@ -94,7 +92,6 @@ jobs: - name: Prepare PlayCppSdk run: | - mv ./Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs.legacy ./Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs TARGET=5.1 make python change_version.py 5.1.0 @@ -129,7 +126,6 @@ jobs: - name: Prepare PlayCppSdk run: | - rm ./Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs.legacy TARGET=5.2 make python change_version.py 5.2.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 35943ea3..77be0d2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## [Unreleased] +## [v0.0.16-alpha] - 2023-8-8 + - use universal library (x86_64 + arm64) for mac + ## [v0.0.13-alpha] - 2023-6-15 - Support apple arm64 - Support Unreal Engine 5.2.0 diff --git a/CronosPlayUnreal.uplugin b/CronosPlayUnreal.uplugin index 0d24eb59..6870a342 100644 --- a/CronosPlayUnreal.uplugin +++ b/CronosPlayUnreal.uplugin @@ -2,7 +2,7 @@ "FileVersion": 3, "FriendlyName": "Cronos Play for Unreal Engine", "Version": 1, - "VersionName": "v0.0.13-alpha", + "VersionName": "v0.0.16-alpha", "EngineVersion": "5.2.0", "Description": "Cronos labs", "Category": "Programming", diff --git a/Makefile b/Makefile index 3703255d..4f58d3c8 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ UNAME := $(shell uname) PWD = $(shell pwd) # Set the play cpp sdk version -PLAYCPPSDK=v0.0.21-alpha +PLAYCPPSDK=v0.0.23-alpha # Set the play-cpp-sdk cache path PLAYCPPSDK_CACHE_DIR=./install/$(PLAYCPPSDK) # Set the play-cpp-sdk target path @@ -29,7 +29,6 @@ ifndef NDK_VERSION NDK_VERSION=25.1.8937393 endif # Set names of play cpp sdk library files -MAC_FILE=play_cpp_sdk_Darwin_x86_64.tar.gz MACARM64_FILE=play_cpp_sdk_Darwin_arm64.tar.gz WINDOWS_FILE=play_cpp_sdk_Windows_x86_64.zip LINUX_FILE=play_cpp_sdk_libc++_Linux_x86_64.tar.gz @@ -47,8 +46,6 @@ ANDROID_ARMEABI_V7A_CHECKSUM_FILE=checksums-armv7-linux-androideabi-$(NDK_VERSIO ANDROID_X86_64_CHECKSUM_FILE=checksums-x86_64-linux-android-$(NDK_VERSION).txt IOS_CHECKSUM_FILE=checksums-aarch64-apple-ios.txt -MAC_SRC=https://github.com/cronos-labs/play-cpp-sdk/releases/download/$(PLAYCPPSDK)/$(MAC_FILE) -MAC_CHEKSUM_SRC=https://github.com/cronos-labs/play-cpp-sdk/releases/download/$(PLAYCPPSDK)/$(MAC_CHECKSUM_FILE) MACARM64_SRC=https://github.com/cronos-labs/play-cpp-sdk/releases/download/$(PLAYCPPSDK)/$(MACARM64_FILE) MACARM64_CHEKSUM_SRC=https://github.com/cronos-labs/play-cpp-sdk/releases/download/$(PLAYCPPSDK)/$(MACARM64_CHECKSUM_FILE) WINDOWS_SRC=https://github.com/cronos-labs/play-cpp-sdk/releases/download/$(PLAYCPPSDK)/$(WINDOWS_FILE) @@ -71,8 +68,8 @@ CACHE_OS_LIST := Mac/x86_64 Mac/arm64 Win64 Linux Android/arm64-v8a Android/arme download: for os in $(CACHE_OS_LIST); do \ if [ "$$os" = "Mac/x86_64" ]; then \ - cache_file=$(MAC_FILE); \ - cache_src=$(MAC_SRC); \ + cache_file=$(MACARM64_FILE); \ + cache_src=$(MACARM6_SRC); \ elif [ "$$os" = "Mac/arm64" ]; then \ cache_file=$(MACARM64_FILE); \ cache_src=$(MACARM64_SRC); \ @@ -107,7 +104,6 @@ download: checkhash: ifeq ($(UNAME), Darwin) - cd $(PLAYCPPSDK_CACHE_DIR)/Mac/x86_64 && curl -s -L $(MAC_CHEKSUM_SRC) | shasum -a 256 -c - cd $(PLAYCPPSDK_CACHE_DIR)/Mac/arm64 && curl -s -L $(MACARM64_CHEKSUM_SRC) | shasum -a 256 -c - cd $(PLAYCPPSDK_CACHE_DIR)/Win64 && curl -s -L $(WINDOWS_CHECKSUM_SRC) | shasum -a 256 -c - cd $(PLAYCPPSDK_CACHE_DIR)/Linux && curl -s -L $(LINUX_CHECKSUM_SRC) | shasum -a 256 -c - @@ -116,7 +112,6 @@ ifeq ($(UNAME), Darwin) cd $(PLAYCPPSDK_CACHE_DIR)/Android/x86_64 && curl -s -L $(ANDROID_X86_64_CHECKSUM_SRC) | shasum -a 256 -c - cd $(PLAYCPPSDK_CACHE_DIR)/iOS/arm64 && curl -s -L $(IOS_CHEKSUM_SRC) | shasum -a 256 -c - else - cd $(PLAYCPPSDK_CACHE_DIR)/Mac/x86_64 && curl -s -L $(MAC_CHEKSUM_SRC) | sha256sum -c - cd $(PLAYCPPSDK_CACHE_DIR)/Mac/arm64 && curl -s -L $(MACARM64_CHEKSUM_SRC) | sha256sum -c - cd $(PLAYCPPSDK_CACHE_DIR)/Win64 && curl -s -L $(WINDOWS_CHECKSUM_SRC) | sha256sum -c - cd $(PLAYCPPSDK_CACHE_DIR)/Linux && curl -s -L $(LINUX_CHECKSUM_SRC) | sha256sum -c - @@ -127,24 +122,22 @@ else endif prepare: - mkdir -p $(PLAYCPPSDK_TARGET_DIR)/Mac/x86_64 - mkdir -p $(PLAYCPPSDK_TARGET_DIR)/Mac/arm64 + mkdir -p $(PLAYCPPSDK_TARGET_DIR)/Mac mkdir -p $(PLAYCPPSDK_TARGET_DIR)/Win64 mkdir -p $(PLAYCPPSDK_TARGET_DIR)/Linux mkdir -p $(PLAYCPPSDK_TARGET_DIR)/Android/arm64-v8a mkdir -p $(PLAYCPPSDK_TARGET_DIR)/Android/armeabi-v7a mkdir -p $(PLAYCPPSDK_TARGET_DIR)/Android/x86_64 - mkdir -p $(PLAYCPPSDK_TARGET_DIR)/iOS/arm64 + mkdir -p $(PLAYCPPSDK_TARGET_DIR)/iOS uncompress: prepare - tar xvf $(PLAYCPPSDK_CACHE_DIR)/Mac/x86_64/$(MAC_FILE) -C $(PLAYCPPSDK_TARGET_DIR)/Mac/x86_64 --strip-components=2 sdk/lib/libplay_cpp_sdk.a - tar xvf $(PLAYCPPSDK_CACHE_DIR)/Mac/arm64/$(MACARM64_FILE) -C $(PLAYCPPSDK_TARGET_DIR)/Mac/arm64 --strip-components=2 sdk/lib/libplay_cpp_sdk.a + tar xvf $(PLAYCPPSDK_CACHE_DIR)/Mac/arm64/$(MACARM64_FILE) -C $(PLAYCPPSDK_TARGET_DIR)/Mac --strip-components=2 sdk/lib/libplay_cpp_sdk_universal.a && mv $(PLAYCPPSDK_TARGET_DIR)/Mac/libplay_cpp_sdk_universal.a $(PLAYCPPSDK_TARGET_DIR)/Mac/libplay_cpp_sdk.a unzip -j $(PLAYCPPSDK_CACHE_DIR)/Win64/$(WINDOWS_FILE) sdk/lib/play_cpp_sdk.lib -d $(PLAYCPPSDK_TARGET_DIR)/Win64 tar xvf $(PLAYCPPSDK_CACHE_DIR)/Linux/$(LINUX_FILE) -C $(PLAYCPPSDK_TARGET_DIR)/Linux --strip-components=2 sdk/lib/libplay_cpp_sdk.a tar xvf $(PLAYCPPSDK_CACHE_DIR)/Android/arm64-v8a/$(ARM64_V8A_FILE) -C $(PLAYCPPSDK_TARGET_DIR)/Android/arm64-v8a --strip-components=2 sdk/lib/libplay_cpp_sdk.a tar xvf $(PLAYCPPSDK_CACHE_DIR)/Android/armeabi-v7a/$(ARMEABI_V7A_FILE) -C $(PLAYCPPSDK_TARGET_DIR)/Android/armeabi-v7a --strip-components=2 sdk/lib/libplay_cpp_sdk.a tar xvf $(PLAYCPPSDK_CACHE_DIR)/Android/x86_64/$(X86_64_FILE) -C $(PLAYCPPSDK_TARGET_DIR)/Android/x86_64 --strip-components=2 sdk/lib/libplay_cpp_sdk.a - tar xvf $(PLAYCPPSDK_CACHE_DIR)/iOS/arm64/$(IOS_FILE) -C $(PLAYCPPSDK_TARGET_DIR)/iOS/arm64 --strip-components=2 sdk/lib/libplay_cpp_sdk.a + tar xvf $(PLAYCPPSDK_CACHE_DIR)/iOS/arm64/$(IOS_FILE) -C $(PLAYCPPSDK_TARGET_DIR)/iOS --strip-components=2 sdk/lib/libplay_cpp_sdk.a # FIXME Build Android/IOS with RunUAT.sh diff --git a/Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs b/Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs index e11c7862..a362b66c 100644 --- a/Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs +++ b/Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs @@ -40,15 +40,8 @@ public PlayCppSdkLibrary(ReadOnlyTargetRules Target) : base(Target) { PublicAdditionalLibraries.Add("ws2_32.lib"); } else if (Target.Platform == UnrealTargetPlatform.Mac) { - if (Target.Architecture == UnrealArch.X64) - PublicAdditionalLibraries.Add(Path.Combine( - LibrariesPath, "Mac/x86_64", "libplay_cpp_sdk.a")); - else if (Target.Architecture == UnrealArch.Arm64) - PublicAdditionalLibraries.Add(Path.Combine( - LibrariesPath, "Mac/arm64", "libplay_cpp_sdk.a")); - else { - throw new System.Exception("Unsupported architecture"); - } + PublicAdditionalLibraries.Add(Path.Combine( + LibrariesPath, "Mac", "libplay_cpp_sdk.a")); } else if (Target.Platform == UnrealTargetPlatform.Linux) { PublicAdditionalLibraries.Add( Path.Combine(LibrariesPath, "Linux", "libplay_cpp_sdk.a")); @@ -61,7 +54,7 @@ public PlayCppSdkLibrary(ReadOnlyTargetRules Target) : base(Target) { LibrariesPath, "Android", "x86_64", "libplay_cpp_sdk.a")); } else if (Target.Platform == UnrealTargetPlatform.IOS) { PublicAdditionalLibraries.Add(Path.Combine( - LibrariesPath, "iOS", "arm64", "libplay_cpp_sdk.a")); + LibrariesPath, "iOS", "libplay_cpp_sdk.a")); } } } diff --git a/Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs.legacy b/Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs.legacy deleted file mode 100644 index ce78f4fc..00000000 --- a/Source/ThirdParty/PlayCppSdkLibrary/PlayCppSdkLibrary.Build.cs.legacy +++ /dev/null @@ -1,60 +0,0 @@ -/* -Copyright 2022, Cronos Labs. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -using System.IO; -using UnrealBuildTool; -using System.Diagnostics; -public class PlayCppSdkLibrary : ModuleRules { - public PlayCppSdkLibrary(ReadOnlyTargetRules Target) : base(Target) { - Type = ModuleType.External; - CppStandard = CppStandardVersion.Cpp17; - - string IncludePath = Path.Combine(ModuleDirectory, "Include"); - string LibrariesPath = Path.Combine(ModuleDirectory, "Lib"); - - PublicIncludePaths.Add(IncludePath); - - if (Target.Platform == UnrealTargetPlatform.Win64) { - PublicAdditionalLibraries.Add( - Path.Combine(LibrariesPath, "Win64", "play_cpp_sdk.lib")); - - PublicAdditionalLibraries.Add("Ncrypt.lib"); - PublicAdditionalLibraries.Add("userenv.lib"); - PublicAdditionalLibraries.Add("bcrypt.lib"); - PublicAdditionalLibraries.Add("ntdll.lib"); - PublicAdditionalLibraries.Add("Secur32.lib"); - PublicAdditionalLibraries.Add("crypt32.lib"); - PublicAdditionalLibraries.Add("ws2_32.lib"); - - } else if (Target.Platform == UnrealTargetPlatform.Mac) { - PublicAdditionalLibraries.Add(Path.Combine( - LibrariesPath, "Mac/x86_64", "libplay_cpp_sdk.a")); - } else if (Target.Platform == UnrealTargetPlatform.Linux) { - PublicAdditionalLibraries.Add( - Path.Combine(LibrariesPath, "Linux", "libplay_cpp_sdk.a")); - } else if (Target.Platform == UnrealTargetPlatform.Android) { - PublicAdditionalLibraries.Add(Path.Combine( - LibrariesPath, "Android", "arm64-v8a", "libplay_cpp_sdk.a")); - PublicAdditionalLibraries.Add(Path.Combine( - LibrariesPath, "Android", "armeabi-v7a", "libplay_cpp_sdk.a")); - PublicAdditionalLibraries.Add(Path.Combine( - LibrariesPath, "Android", "x86_64", "libplay_cpp_sdk.a")); - } else if (Target.Platform == UnrealTargetPlatform.IOS) { - PublicAdditionalLibraries.Add(Path.Combine( - LibrariesPath, "iOS", "arm64", "libplay_cpp_sdk.a")); - } - } -}