Is there any plan to support HarmonyOS?
I hadn't heard of HarmonyOS before now, and I like the idea of having more mobile platforms than Android and iOS supported.
We don't have a specific plan at the moment, but I might download the SDK and emulator and see how far I get.
(And even if I don't, we would presumably accept a patch to add support, if someone else did the work.)
Afaik even the latest HarmonyOS is compatible with android apks. Though they are planning to drop the support for android apps in the future it hasn't been done yet. The only downside is you can't run google apps or any app that depends on google's services.
Afaik even the latest HarmonyOS is compatible with android apks. Though they are planning to drop the support for android apps in the future it hasn't been done yet. The only downside is you can't run google apps or any app that depends on google's services.
The new version of HarmonyOS is not compatible with the Android system.
Oh, so they have already pulled the trigger. It will be interesting to see how it competes with android. It has a lot of potential. Anyways, I will also take a look at the SDK to see if I can get SDL to work on it. And maybe even submit a PR if Icculus or somebody else doesn't beat me to it.
Afaik even the latest HarmonyOS is compatible with android apks. Though they are planning to drop the support for android apps in the future it hasn't been done yet. The only downside is you can't run google apps or any app that depends on google's services.
The new version of HarmonyOS is not compatible with the Android system.
Good news, third party native port of open source SDL 2 has been completed and sent OHPM central warehouse of the OpenHarmony Gitee master repo within the special interest group for platform port adaptation, which essentially work on HarmonyOS NEXT with Galaxy Edition system version since it's also based on it which will be the replaced base for HarmonyOS 5.0 going forward that replaces AOSP after version 4.2 in China and worldwide where Huawei serves. I am a Eclipse Foundation Europe member based in the UK, an app developer for the global OpenHarmony Oniro OS that maintains and improve the open source libraries for the OS. OHPM is a HarmonyOS third-party repository that brings together HarmonyOS third-party libraries contributed by developers from all over the world to help you easily develop HarmonyOS applications and services, benefits with this structure, it reduces the system ROM volume. This benefit ease of ports with northbound and southbound applications. https://gitee.com/openharmony-sig/ohos_sdl2
Huawei's system wouldn't let me sign up for a developer account when I tried two weeks ago--looked like a temporary glitch, I'll try again soon--but if the existing SDL2 port is solid, we can maybe pull that in as a good starting point in any case.
(But it has an open issue on their bug tracker for "add a license," so we need to figure out if we're allowed to.)
Huawei's system wouldn't let me sign up for a developer account when I tried two weeks ago--looked like a temporary glitch, I'll try again soon--but if the existing SDL2 port is solid, we can maybe pull that in as a good starting point in any case.
(But it has an open issue on their bug tracker for "add a license," so we need to figure out if we're allowed to.)
Oh yeah probably glitch signing up. This will be great to pull and port over as a starting point. With the license, yeah I seen the issue around it, I think it has the Zlib permissive license for it already. https://github.com/libsdl-org/SDL/issues/9837#issuecomment-2153719583
Huawei's system wouldn't let me sign up for a developer account when I tried two weeks ago--looked like a temporary glitch, I'll try again soon--but if the existing SDL2 port is solid, we can maybe pull that in as a good starting point in any case.
(But it has an open issue on their bug tracker for "add a license," so we need to figure out if we're allowed to.)
Plus, I cloned that contains the "ohos-project" of ohos_sdl2 repo clone with the OpenHarmony documentation. It's written in English and one spelling mistake of "ArkTS" from "ArsTS" is fixed on Threads Model. https://github.com/BA489/ohos_sdl2/blob/master/docs/README-openharmony.md This will make it easier for us to grab the specific files and documentation of OpenHarmony specific platform from my GitHub clone to the official SDL Github repo
Huawei's system wouldn't let me sign up for a developer account when I tried two weeks ago--looked like a temporary glitch, I'll try again soon--but if the existing SDL2 port is solid, we can maybe pull that in as a good starting point in any case.
(But it has an open issue on their bug tracker for "add a license," so we need to figure out if we're allowed to.)
Have you tried to pull the SDL2 port?
I tried a few months ago to create an account with Huawei and it still wouldn't let me, and then I never revisited it.
Just tried again, same problem: it wants to text a code to a phone number, even if you register with email, and when I try to get it to send the code...
...I assume it's because it's a phone number from America (not for the modern political reasons, just likely an untested code path or they don't have SMS set up to target that region or whatever, I don't know).
The SDL2 port isn't useful to me in itself if I don't have documentation, build tools, maybe working hardware, etc, for further development, and I can't get those if it won't let me register a developer account. :/
(someone on Reddit says they got around this by listing their region as Canada, which also uses the +1 country code, but now the registration system thinks I've tried too many times, so I'll try again in a few days. :) )
(someone on Reddit says they got around this by listing their region as Canada, which also uses the +1 country code, but now the registration system thinks I've tried too many times, so I'll try again in a few days. :) )
You can check my project's action config file(https://GitHub.com/PirmogemStudio/openminecraft), it contains the openharmony toolchain's link. But I don't know how to use it in cmake. I tried to merge the SDL2 port, but it had so many conflicts, so I gave up
(someone on Reddit says they got around this by listing their region as Canada, which also uses the +1 country code, but now the registration system thinks I've tried too many times, so I'll try again in a few days. :) )
cmake -DOHOS_STL=c++_shared -DOHOS_ARCH=armeabi-v7a -DOHOS_PLATFORM=OHOS -DCMAKE_TOOLCHAIN_FILE={ohos-sdk}/linux/native/build/cmake/ohos.toolchain.cmake ..
I found this cmake command in the document, and the architecture can be x86_64, arm64-v8a and armeabi-v7a
https://repo.huaweicloud.com/openharmony/os/5.0.0-Release/ohos-sdk-windows_linux-public.tar.gz
And this port doesn't implemented the locale api, you may set it to "zh_cn" for default
https://repo.huaweicloud.com/openharmony/os/5.0.0-Release/ohos-sdk-windows_linux-public.tar.gz
Please join Oniro matrix team, they have expertise from the community and Huawei global engineers on OpenHarmony since, European/Western derivative is based on OpenHarmony @icculus @Jack253-png https://chat.eclipse.org/#/room/#oniro:matrix.eclipse.org
https://repo.huaweicloud.com/openharmony/os/5.0.0-Release/ohos-sdk-windows_linux-public.tar.gz
Please join Oniro matrix team, they have expertise from the community and Huawei global engineers on OpenHarmony since, European/Western derivative is based on OpenHarmony @icculus @Jack253-png https://chat.eclipse.org/#/room/#oniro:matrix.eclipse.org
Sorry, I can't create an account, I need to join a HarmonyOS developer team instead
https://repo.huaweicloud.com/openharmony/os/5.0.0-Release/ohos-sdk-windows_linux-public.tar.gz
Please join Oniro matrix team, they have expertise from the community and Huawei global engineers on OpenHarmony since, European/Western derivative is based on OpenHarmony @icculus @Jack253-png https://chat.eclipse.org/#/room/#oniro:matrix.eclipse.org
OK, I have joined the team
https://repo.huaweicloud.com/openharmony/os/5.0.0-Release/ohos-sdk-windows_linux-public.tar.gz
Please join Oniro matrix team, they have expertise from the community and Huawei global engineers on OpenHarmony since, European/Western derivative is based on OpenHarmony @icculus @Jack253-png https://chat.eclipse.org/#/room/#oniro:matrix.eclipse.org
OK, I have joined the team
https://repo.huaweicloud.com/openharmony/os/5.0.0-Release/ohos-sdk-windows_linux-public.tar.gz
Please join Oniro matrix team, they have expertise from the community and Huawei global engineers on OpenHarmony since, European/Western derivative is based on OpenHarmony @icculus @Jack253-png https://chat.eclipse.org/#/room/#oniro:matrix.eclipse.org
OK, I have joined the team
Great! I have sent a message there for SDL 3 port to OpenHarmony. https://github.com/BA489/ohos_sdl3/tree/main/ohos-project You can test it to see if it works and identify issues that need to be resolved. https://docs.oniroproject.org/ global Oniro/OpenHarmony Technical documentation for testing with a device board oniro v1.0.0 QEMU emulator to run Oniro with README instructions, please download it via this link if you don't have a Huawei, Raspberry Pi 4 Model B or HiHope HH-SCDAYU200 Development Kit physical device with DevEco Studio to recognise the device: https://github.com/eclipse-oniro4openharmony/device_board_oniro/tags + https://harmonyoshub.com/global-developers-can-now-download-final-api-12-release-deveco-studio-5-0-0-for-harmonyos-5-development/ (HarmonyOS/OpenHarmony 5.0.0 API 12, make sure OpenHarmony SDK is downloaded API 12, 5.0.0 from SDK settings on DevEco in order to run the SDL3 library demo app project). For HarmonyOS Next emulator download here via Google Drive, unzip, create a folder directory, click on Start Huawei logo icon and Please Choose 1 for Phone Emulator on Start.exe cmd. Before doing that make sure your Hyper V is on Windows 10/11.
under build-profile.json5
//
Changing from HarmonyOS - runtimeOS on build-profile.json5:
{ "app": { "signingConfigs": [ { "name": "default", "material": { "certpath": "C:/Users/Benja/.ohos/config/openharmony/default_HelloWorld_WTAo75EzIr46MuyPBBB6KZrIWuQfhAwOmzHKYBWDnUM=.cer", "keyAlias": "debugKey", "keyPassword": "0000001BDB14AF50C2801D6F897ECD1B35BF80F4F66FA392F0F946AAC6F82C4580C90E6DFE7803ADBAAA57", "profile": "C:/Users/Benja/.ohos/config/openharmony/default_HelloWorld_WTAo75EzIr46MuyPBBB6KZrIWuQfhAwOmzHKYBWDnUM=.p7b", "signAlg": "SHA256withECDSA", "storeFile": "C:/Users/Benja/.ohos/config/openharmony/default_HelloWorld_WTAo75EzIr46MuyPBBB6KZrIWuQfhAwOmzHKYBWDnUM=.p12", "storePassword": "0000001B13B15C59FBA06463B86ECB16875DF530391C568965774BD3C016D89AF1D86D7C693493C1F63B60" } } ], "products": [ { "name": "default", "signingConfig": "default", "compatibleSdkVersion": "5.0.0(12)", "runtimeOS": "HarmonyOS" } ], "buildModeSet": [ { "name": "debug", }, { "name": "release" } ] }, "modules": [ { "name": "entry", "srcPath": "./entry", "targets": [ { "name": "default", "applyToProducts": [ "default" ] } ] } ] }
https://repo.huaweicloud.com/openharmony/os/5.0.0-Release/ohos-sdk-windows_linux-public.tar.gz
Please join Oniro matrix team, they have expertise from the community and Huawei global engineers on OpenHarmony since, European/Western derivative is based on OpenHarmony @icculus @Jack253-png https://chat.eclipse.org/#/room/#oniro:matrix.eclipse.org
OK, I have joined the team
Great! I have sent a message there for SDL 3 port to OpenHarmony. https://github.com/BA489/ohos_sdl3/tree/main/ohos-project You can test it to see if it works and identify issues that need to be resolved. https://docs.oniroproject.org/ global Oniro/OpenHarmony Technical documentation for testing with a device board oniro v1.0.0 QEMU emulator to run Oniro with README instructions, please download it via this link if you don't have a Huawei, Raspberry Pi 4 Model B or HiHope HH-SCDAYU200 Development Kit physical device with DevEco Studio to recognise the device: https://github.com/eclipse-oniro4openharmony/device_board_oniro/tags + https://harmonyoshub.com/global-developers-can-now-download-final-api-12-release-deveco-studio-5-0-0-for-harmonyos-5-development/ (HarmonyOS/OpenHarmony 5.0.0 API 12, make sure OpenHarmony SDK is downloaded API 12, 5.0.0 from SDK settings on DevEco in order to run the SDL3 library demo app project). For HarmonyOS Next emulator download here via Google Drive, unzip, create a folder directory, click on Start Huawei logo icon and Please Choose 1 for Phone Emulator on Start.exe cmd. Before doing that make sure your Hyper V is on Windows 10/11.
under build-profile.json5
//
/MyApplication/build-profile.json5 { "app": { //... "products": [ { //... "compatibleSdkVersion": 12, "compileSdkVersion": 12, "runtimeOS": "OpenHarmony", //... } ] //... } } Changing from HarmonyOS - runtimeOS on build-profile.json5:
{ "app": { "signingConfigs": [ { "name": "default", "material": { "certpath": "C:/Users/Benja/.ohos/config/openharmony/default_HelloWorld_WTAo75EzIr46MuyPBBB6KZrIWuQfhAwOmzHKYBWDnUM=.cer", "keyAlias": "debugKey", "keyPassword": "0000001BDB14AF50C2801D6F897ECD1B35BF80F4F66FA392F0F946AAC6F82C4580C90E6DFE7803ADBAAA57", "profile": "C:/Users/Benja/.ohos/config/openharmony/default_HelloWorld_WTAo75EzIr46MuyPBBB6KZrIWuQfhAwOmzHKYBWDnUM=.p7b", "signAlg": "SHA256withECDSA", "storeFile": "C:/Users/Benja/.ohos/config/openharmony/default_HelloWorld_WTAo75EzIr46MuyPBBB6KZrIWuQfhAwOmzHKYBWDnUM=.p12", "storePassword": "0000001B13B15C59FBA06463B86ECB16875DF530391C568965774BD3C016D89AF1D86D7C693493C1F63B60" } } ], "products": [ { "name": "default", "signingConfig": "default", "compatibleSdkVersion": "5.0.0(12)", "runtimeOS": "HarmonyOS" } ], "buildModeSet": [ { "name": "debug", }, { "name": "release" } ] }, "modules": [ { "name": "entry", "srcPath": "./entry", "targets": [ { "name": "default", "applyToProducts": [ "default" ] } ] } ] }
Sorry, I don't get familiar with HarmonyOS development, but I have a real Huawei HarmonyOS device (Mate 30), it can be used to test the sdl port But in the ohos_sdl3 repo, I can't find the openharmony platform, perhaps we need to merge the ohos_sdl2 first
https://repo.huaweicloud.com/openharmony/os/5.0.0-Release/ohos-sdk-windows_linux-public.tar.gz
Please join Oniro matrix team, they have expertise from the community and Huawei global engineers on OpenHarmony since, European/Western derivative is based on OpenHarmony @icculus @Jack253-png https://chat.eclipse.org/#/room/#oniro:matrix.eclipse.org
OK, I have joined the team
Great! I have sent a message there for SDL 3 port to OpenHarmony. https://github.com/BA489/ohos_sdl3/tree/main/ohos-project You can test it to see if it works and identify issues that need to be resolved. https://docs.oniroproject.org/ global Oniro/OpenHarmony Technical documentation for testing with a device board oniro v1.0.0 QEMU emulator to run Oniro with README instructions, please download it via this link if you don't have a Huawei, Raspberry Pi 4 Model B or HiHope HH-SCDAYU200 Development Kit physical device with DevEco Studio to recognise the device: https://github.com/eclipse-oniro4openharmony/device_board_oniro/tags + https://harmonyoshub.com/global-developers-can-now-download-final-api-12-release-deveco-studio-5-0-0-for-harmonyos-5-development/ (HarmonyOS/OpenHarmony 5.0.0 API 12, make sure OpenHarmony SDK is downloaded API 12, 5.0.0 from SDK settings on DevEco in order to run the SDL3 library demo app project). For HarmonyOS Next emulator download here via Google Drive, unzip, create a folder directory, click on Start Huawei logo icon and Please Choose 1 for Phone Emulator on Start.exe cmd. Before doing that make sure your Hyper V is on Windows 10/11. under build-profile.json5 ///MyApplication/build-profile.json5 { "app": { //... "products": [ { //... "compatibleSdkVersion": 12, "compileSdkVersion": 12, "runtimeOS": "OpenHarmony", //... } ] //... } } Changing from HarmonyOS - runtimeOS on build-profile.json5: { "app": { "signingConfigs": [ { "name": "default", "material": { "certpath": "C:/Users/Benja/.ohos/config/openharmony/default_HelloWorld_WTAo75EzIr46MuyPBBB6KZrIWuQfhAwOmzHKYBWDnUM=.cer", "keyAlias": "debugKey", "keyPassword": "0000001BDB14AF50C2801D6F897ECD1B35BF80F4F66FA392F0F946AAC6F82C4580C90E6DFE7803ADBAAA57", "profile": "C:/Users/Benja/.ohos/config/openharmony/default_HelloWorld_WTAo75EzIr46MuyPBBB6KZrIWuQfhAwOmzHKYBWDnUM=.p7b", "signAlg": "SHA256withECDSA", "storeFile": "C:/Users/Benja/.ohos/config/openharmony/default_HelloWorld_WTAo75EzIr46MuyPBBB6KZrIWuQfhAwOmzHKYBWDnUM=.p12", "storePassword": "0000001B13B15C59FBA06463B86ECB16875DF530391C568965774BD3C016D89AF1D86D7C693493C1F63B60" } } ], "products": [ { "name": "default", "signingConfig": "default", "compatibleSdkVersion": "5.0.0(12)", "runtimeOS": "HarmonyOS" } ], "buildModeSet": [ { "name": "debug", }, { "name": "release" } ] }, "modules": [ { "name": "entry", "srcPath": "./entry", "targets": [ { "name": "default", "applyToProducts": [ "default" ] } ] } ] }
Sorry, I don't get familiar with HarmonyOS development, but I have a real Huawei HarmonyOS device (Mate 30), it can be used to test the sdl port But in the ohos_sdl3 repo, I can't find the openharmony platform, perhaps we need to merge the ohos_sdl2 first
Sure we can deal with merging ohos_sdl2 first as foundation in order to test sdl port. For the real Huawei HarmonyOS device, since you have a really pretty old obselete Mate 30 from 2019, you may need Chinese models for now, that is subject to change as Huawei plans to expand HarmonyOS NEXT version 5.1-6.0 overseas to Nova 13, Pura 70, Mate X6, Mate XT EMUI Android 12 handsets and future ones e.g. Nova 14 and Pura 80.
So we need to rebase ohos_sdl2 to sdl3? There are so many conflicts, I can't solve it by myself
https://repo.huaweicloud.com/openharmony/os/5.0.0-Release/ohos-sdk-windows_linux-public.tar.gz
Please join Oniro matrix team, they have expertise from the community and Huawei global engineers on OpenHarmony since, European/Western derivative is based on OpenHarmony @icculus @Jack253-png https://chat.eclipse.org/#/room/#oniro:matrix.eclipse.org
OK, I have joined the team
Great! I have sent a message there for SDL 3 port to OpenHarmony. https://github.com/BA489/ohos_sdl3/tree/main/ohos-project You can test it to see if it works and identify issues that need to be resolved. https://docs.oniroproject.org/ global Oniro/OpenHarmony Technical documentation for testing with a device board oniro v1.0.0 QEMU emulator to run Oniro with README instructions, please download it via this link if you don't have a Huawei, Raspberry Pi 4 Model B or HiHope HH-SCDAYU200 Development Kit physical device with DevEco Studio to recognise the device: https://github.com/eclipse-oniro4openharmony/device_board_oniro/tags + https://harmonyoshub.com/global-developers-can-now-download-final-api-12-release-deveco-studio-5-0-0-for-harmonyos-5-development/ (HarmonyOS/OpenHarmony 5.0.0 API 12, make sure OpenHarmony SDK is downloaded API 12, 5.0.0 from SDK settings on DevEco in order to run the SDL3 library demo app project). For HarmonyOS Next emulator download here via Google Drive, unzip, create a folder directory, click on Start Huawei logo icon and Please Choose 1 for Phone Emulator on Start.exe cmd. Before doing that make sure your Hyper V is on Windows 10/11. under build-profile.json5 ///MyApplication/build-profile.json5 { "app": { //... "products": [ { //... "compatibleSdkVersion": 12, "compileSdkVersion": 12, "runtimeOS": "OpenHarmony", //... } ] //... } } Changing from HarmonyOS - runtimeOS on build-profile.json5: { "app": { "signingConfigs": [ { "name": "default", "material": { "certpath": "C:/Users/Benja/.ohos/config/openharmony/default_HelloWorld_WTAo75EzIr46MuyPBBB6KZrIWuQfhAwOmzHKYBWDnUM=.cer", "keyAlias": "debugKey", "keyPassword": "0000001BDB14AF50C2801D6F897ECD1B35BF80F4F66FA392F0F946AAC6F82C4580C90E6DFE7803ADBAAA57", "profile": "C:/Users/Benja/.ohos/config/openharmony/default_HelloWorld_WTAo75EzIr46MuyPBBB6KZrIWuQfhAwOmzHKYBWDnUM=.p7b", "signAlg": "SHA256withECDSA", "storeFile": "C:/Users/Benja/.ohos/config/openharmony/default_HelloWorld_WTAo75EzIr46MuyPBBB6KZrIWuQfhAwOmzHKYBWDnUM=.p12", "storePassword": "0000001B13B15C59FBA06463B86ECB16875DF530391C568965774BD3C016D89AF1D86D7C693493C1F63B60" } } ], "products": [ { "name": "default", "signingConfig": "default", "compatibleSdkVersion": "5.0.0(12)", "runtimeOS": "HarmonyOS" } ], "buildModeSet": [ { "name": "debug", }, { "name": "release" } ] }, "modules": [ { "name": "entry", "srcPath": "./entry", "targets": [ { "name": "default", "applyToProducts": [ "default" ] } ] } ] }
Sorry, I don't get familiar with HarmonyOS development, but I have a real Huawei HarmonyOS device (Mate 30), it can be used to test the sdl port But in the ohos_sdl3 repo, I can't find the openharmony platform, perhaps we need to merge the ohos_sdl2 first
Sure we can deal with merging ohos_sdl2 first as foundation in order to test sdl port. For the real Huawei HarmonyOS device, since you have a really pretty old obselete Mate 30 from 2019, you may need Chinese models for now, that is subject to change as Huawei plans to expand HarmonyOS NEXT version 5.1-6.0 overseas to Nova 13, Pura 70, Mate X6, Mate XT EMUI Android 12 handsets and future ones e.g. Nova 14 and Pura 80.
So we need to rebase ohos_sdl2 to sdl3? There are so many conflicts, I can't solve it by myself
For a new port, it's imho important to give it test coverage. Does there exist a github action or docker container with a working HarmonyOS SDK?
For a new port, it's imho important to give it test coverage. Does there exist a github action or docker container with a working HarmonyOS SDK?
I have one in my project (https://github.com/Jack253-png/openminecraft),and it is just an clang cross compile toolchain, we need to get the binary first, then run the basic tests
cmake -DOHOS_STL=c++_shared -DOHOS_ARCH=armeabi-v7a -DOHOS_PLATFORM=OHOS -DCMAKE_TOOLCHAIN_FILE={ohos-sdk}/linux/native/build/cmake/ohos.toolchain.cmake ..
This is the cmake configuration command, find the ohos.toolchain.cmake file in the sdk directory
For a new port, it's imho important to give it test coverage. Does there exist a github action or docker container with a working HarmonyOS SDK?
The port may contain a lot of issues, since the original port is based on the old version of SDL2 which is 10000+ commits behind the mainline development, I tried to deal with the conflicts. If it doesn't work, it's better to reimplement this based on the mainline, since the code can be reused. Plus, I have a simple project to test SDL dialog, locale and vulkan context.
For a new port, it's imho important to give it test coverage. Does there exist a github action or docker container with a working HarmonyOS SDK?
Any progress?
I recommend not trying to port SDL2 and instead focus on SDL3 main code, where changes can be submitted as PRs upstream.