axmolengine / axmol

Axmol Engine – A Multi-platform Engine for Desktop, XBOX (UWP) and Mobile games. (A fork of Cocos2d-x-4.0)
https://axmol.dev
MIT License
922 stars 205 forks source link

Xcode General tab is missing #1310

Closed asnagni closed 1 year ago

asnagni commented 1 year ago

Hi guys, First of all, I would to say congrats for the first official release 👍. We are trying to migrate from Cocos2d-x to Axmol. Unfortunately, after creating an Axmol project (for Xcode simulator) by following the steps provided on the website (https://github.com/axmolengine/axmol/blob/dev/docs/DevSetup.md), we noticed that from Xcode when you select your target, the General tab is missing. Not having the General Tab in the project makes it challenging. These are few challenges that we have: 1) Select the orientation for iPhone independently 2) Select a different orientation for iPad independently 3) Integrating third party framework like “Firebase” or “onesignal” since they reference the General tab. 4) Configuring the Frameworks, Libraries, and Embedded Content 5) etc...

Please let me know if we missed something in your tutorial/guide for creating an Axmol project. If that was not the case, we would like to know if there is any plan to fix this issue in the near term?

Thank you, Stay safe

rh101 commented 1 year ago

@asnagni ~Does it also happen when you create a iOS real device project?~ Just to confirm, is it this "General" tab that you are referring to:

image

That is from a project using Axmol (iOS arm64 target Xcode project).

Also, 3rd party frameworks, libraries and embedded content should be added via CMakeLists.txt, for your own sanity, because every time you add new files or content to your project that requires a re-run of cmake, it will re-create the Xcode project. This means anything you added via the Xcode IDE will disappear.

rh101 commented 1 year ago

I can see the problem too when using the following to create a project for the simulator:

cmake -S . -B ./build-ios-sim -GXcode -DCMAKE_TOOLCHAIN_FILE=$AX_ROOT/cmake/ios.toolchain.cmake -DPLATFORM=SIMULATOR64

image

asnagni commented 1 year ago

Hi, 1) We just created an iOS project targeting the device (am64) and the General tab is present. Thus we can confirm that this issue is just happening for the simulator projects.

2) Thank you for the advice concerning the 3d party Framworks, Libraries, an Embedded Content, we do appreciate.

Do you have any plan in the near future to fix the issue for simulator project?

Thank you, Stay safe

On Aug 27, 2023, at 6:58 AM, RH @.***> wrote:

@asnagni https://github.com/asnagni Does it also happen when you create a iOS real device project? Just to confirm, is it this "General" tab that you are referring to:

https://user-images.githubusercontent.com/8603230/263523881-5267a656-00c5-40ec-b802-61ecf91ed505.png That is from a project using Axmol (iOS arm64 target Xcode project).

Also, 3rd party frameworks, libraries and embedded content should be added via CMakeLists.txt, for your own sanity, because every time you add new files or content to your project that requires a re-run of cmake, it will re-create the Xcode project. This means anything you added via the Xcode IDE will disappear.

— Reply to this email directly, view it on GitHub https://github.com/axmolengine/axmol/issues/1310#issuecomment-1694636064, or unsubscribe https://github.com/notifications/unsubscribe-auth/AI54DTB64LPM5WQUVXWA3TDXXMR6PANCNFSM6AAAAAA4AHJJSY. You are receiving this because you were mentioned.

rh101 commented 1 year ago

Do you have any plan in the near future to fix the issue for simulator project?

That's a question for @halx99

asnagni commented 1 year ago

Ah ok I see.

@halx99 https://github.com/halx99 is there any plan in the near future to fix this issue.

Thank you, Stay safe

On Aug 27, 2023, at 7:22 AM, RH @.***> wrote:

@halx99 https://github.com/halx99

halx99 commented 1 year ago

it's caused by explicit set CMAKE_OSX_SYSROOT to simulator https://github.com/axmolengine/axmol/blob/dev/1k/ios.cmake#L79C13-L79C30, only non-simualtor has General tab, even thourgh I use xcodebuild -version -sdk iphonesimulator Path query full path and set to CMAKE_OSX_SYSROOT, the General tab still missing.

asnagni commented 1 year ago

Hi @halx99 https://github.com/halx99, If you check on cocos2d-x projects. The Simulators and the Devices have the General tab. You can use that Genral tab to configure both of them. I’m not sure why it is missing with Axmol? Do you have a way to activate it?

Thank you.

On Aug 27, 2023, at 11:27 AM, Deal @.***> wrote:

Closed #1310 https://github.com/axmolengine/axmol/issues/1310 as completed via 86a2062 https://github.com/axmolengine/axmol/commit/86a2062b982e31dd02f77ad8794fc32f6bcd0ee2.

— Reply to this email directly, view it on GitHub https://github.com/axmolengine/axmol/issues/1310#event-10202027661, or unsubscribe https://github.com/notifications/unsubscribe-auth/AI54DTA2EUS2PHI2MODNK2TXXNRMNANCNFSM6AAAAAA4AHJJSY. You are receiving this because you were mentioned.

halx99 commented 1 year ago

yes, the commit https://github.com/axmolengine/axmol/commit/86a2062b982e31dd02f77ad8794fc32f6bcd0ee2 remove sysroot, but break ci, and I can build for simulator by xcode

asnagni commented 1 year ago

Can you please reopen this issue?

Thank you

On Aug 27, 2023, at 11:27 AM, Deal @.***> wrote:

Closed #1310 https://github.com/axmolengine/axmol/issues/1310 as completed via 86a2062 https://github.com/axmolengine/axmol/commit/86a2062b982e31dd02f77ad8794fc32f6bcd0ee2.

— Reply to this email directly, view it on GitHub https://github.com/axmolengine/axmol/issues/1310#event-10202027661, or unsubscribe https://github.com/notifications/unsubscribe-auth/AI54DTA2EUS2PHI2MODNK2TXXNRMNANCNFSM6AAAAAA4AHJJSY. You are receiving this because you were mentioned.

halx99 commented 1 year ago

As rh101, said, since axmol is a fully cmake based, any configuration and thirdparty or embed content should write cmake, so fix simulator issue is pointless

asnagni commented 1 year ago

The issue is not to be able to build is to have it back

On Aug 27, 2023, at 12:01 PM, Deal @.***> wrote:

yes, the commit 86a2062 https://github.com/axmolengine/axmol/commit/86a2062b982e31dd02f77ad8794fc32f6bcd0ee2 remove sysroot, but break ci, and I can build for simulator by xcode

— Reply to this email directly, view it on GitHub https://github.com/axmolengine/axmol/issues/1310#issuecomment-1694702570, or unsubscribe https://github.com/notifications/unsubscribe-auth/AI54DTDSE4I6D6R7KNUZE53XXNVLZANCNFSM6AAAAAA4AHJJSY. You are receiving this because you were mentioned.

asnagni commented 1 year ago

I understand that. But I still believe that the issue is not resolved . I’m not arguing with you, I’m trying to make the system better. That’s all, and I do believe that it is confusing and a bit challenging to migrate. Believe me we are working together here.

Thank you, Stay safe

On Aug 27, 2023, at 12:04 PM, Deal @.***> wrote:

As rh101, said, since axmol is a fully cmake based, any configuration and thirdparty or embed content should write cmake, so fix simulator issue is pointness

— Reply to this email directly, view it on GitHub https://github.com/axmolengine/axmol/issues/1310#issuecomment-1694703240, or unsubscribe https://github.com/notifications/unsubscribe-auth/AI54DTEJNF56A4GROYFSB2LXXNVXBANCNFSM6AAAAAA4AHJJSY. You are receiving this because you were mentioned.

halx99 commented 1 year ago

I think that's xcode behavior, not axmol bug or cmake script bug.

asnagni commented 1 year ago

Hum, are you sure? So why it is working with coco2d-x. I think we missed something and maybe we could spend a bit a time looking into this. What do you think? Like I said we are still using cocos2d-x and we are trying to migrate to Axmol and we don’t see any of that with cocos2d-x project.

Thank you, Stay safe

On Aug 27, 2023, at 12:08 PM, Deal @.***> wrote:

I think that's xcode behavior, not axmol bug or cmake script bug.

— Reply to this email directly, view it on GitHub https://github.com/axmolengine/axmol/issues/1310#issuecomment-1694704233, or unsubscribe https://github.com/notifications/unsubscribe-auth/AI54DTARGOWHTLRKX2DOIODXXNWG7ANCNFSM6AAAAAA4AHJJSY. You are receiving this because you were mentioned.

halx99 commented 1 year ago

maybe cocos2dx not set CMAKE_OSX_SYSROOT explicit

halx99 commented 1 year ago

which cocos2dx version do you use?

asnagni commented 1 year ago

Thank you for reopening it, I do appreciate.

On Aug 27, 2023, at 12:14 PM, Deal @.***> wrote:

Reopened #1310 https://github.com/axmolengine/axmol/issues/1310.

— Reply to this email directly, view it on GitHub https://github.com/axmolengine/axmol/issues/1310#event-10202093245, or unsubscribe https://github.com/notifications/unsubscribe-auth/AI54DTEWBDAIYPVRCNW52XLXXNW5PANCNFSM6AAAAAA4AHJJSY. You are receiving this because you were mentioned.

asnagni commented 1 year ago

We are using the versions 4.0 and 3.17.2+

I’m saying 3.17.2+ because they released unofficial fixes after the official 3.17.2

Thank you, Stay safe

On Aug 27, 2023, at 12:17 PM, Deal @.***> wrote:

halx99 commented 1 year ago

image cocos2d-x also missing General tab for simulator, cmake gen command is (from cocos2d-x official github):'

cmake -B build_ios -GXcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator
asnagni commented 1 year ago

I’m not sure you my project based on Coco2d-x . I’m not sure how you created that, but if you use the normal common that create a cpp project (iOS & Android) for you I have both:

Example: cocos new MyGame -p com.example.mygame -l cpp -d ~/Documents/

Once it’s created just click on the Xcoded project. You don’t need any additional command.

Thank you, Stay safe

On Aug 27, 2023, at 9:39 PM, Deal @.***> wrote:

https://user-images.githubusercontent.com/6977319/263569397-65315e17-b4b0-4001-9b9d-67ce7c6c3218.png cocos2d-x also missing General tab for simulator, cmake gen command is (from cocos2d-x official github):'

cmake -B build_ios -GXcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator — Reply to this email directly, view it on GitHub https://github.com/axmolengine/axmol/issues/1310#issuecomment-1694869510, or unsubscribe https://github.com/notifications/unsubscribe-auth/AI54DTEJN4QUGIL3VUHXYXTXXPZFRANCNFSM6AAAAAA4AHJJSY. You are receiving this because you were mentioned.

halx99 commented 1 year ago

I use cmake https://github.com/cocos2d/cocos2d-x/tree/v4/cmake

halx99 commented 1 year ago

At least, you needs use cmake to generate xcodeproj, right? and the command cocos new MyGame -p com.example.mygame -l cpp -d ~/Documents/ not generate xcodeproj for you.

asnagni commented 1 year ago

Ok, I see what you are doing. It looks to me that they have an issue too. I’m not sure what is the issue here. But don’t you think that it will make more sense from a design/architure point to have the Simulator and Device behave the same way?

Thank you, Stay safe

On Aug 27, 2023, at 9:51 PM, Deal @.***> wrote:

I use cmake https://github.com/cocos2d/cocos2d-x/tree/v4/cmake

— Reply to this email directly, view it on GitHub https://github.com/axmolengine/axmol/issues/1310#issuecomment-1694878903, or unsubscribe https://github.com/notifications/unsubscribe-auth/AI54DTDYCA5F5DMAIP2T57DXXP2SZANCNFSM6AAAAAA4AHJJSY. You are receiving this because you were mentioned.

rh101 commented 1 year ago

Hum, are you sure? So why it is working with coco2d-x.

It feels like there is be a bit of misunderstanding here. The only reason it is working in cocos2d-x is that it never set CMAKE_OSX_SYSROOT, so while you can see the "General" tab, cocos2d-x doesn't seem to have CI builds enabled, so they would have never noticed that the CI build would be broken as a result of not setting CMAKE_OSX_SYSROOT.

Commit https://github.com/axmolengine/axmol/commit/86a2062b982e31dd02f77ad8794fc32f6bcd0ee2 allows the Xcode simulator project to be generated with the "General" tab, so it address the issue in your original post. The side effect of not setting CMAKE_OSX_SYSROOT is that the CI builds broke.

This is not an issue specific to Axmol.

asnagni commented 1 year ago

No that is not the way we did it and we did a long time ago now. So I don’t remember exactly. But I think you are right.

On Aug 27, 2023, at 9:53 PM, Deal @.***> wrote:

At least, you needs use cmake to generate xcodeproj, right? and the command cocos new MyGame -p com.example.mygame -l cpp -d ~/Documents/ not generate xcodeproj for you.

— Reply to this email directly, view it on GitHub https://github.com/axmolengine/axmol/issues/1310#issuecomment-1694879918, or unsubscribe https://github.com/notifications/unsubscribe-auth/AI54DTERHSJOTBAZWPDWBCTXXP2YXANCNFSM6AAAAAA4AHJJSY. You are receiving this because you were mentioned.

asnagni commented 1 year ago

Anyway we are moving actively to Axmol and fixing the issues that we are facing during the migration. I hope like in a week or so we will be over all of this 😊.

Thank you, Stay safe

On Aug 27, 2023, at 9:53 PM, Deal @.***> wrote:

At least, you needs use cmake to generate xcodeproj, right? and the command cocos new MyGame -p com.example.mygame -l cpp -d ~/Documents/ not generate xcodeproj for you.

— Reply to this email directly, view it on GitHub https://github.com/axmolengine/axmol/issues/1310#issuecomment-1694879918, or unsubscribe https://github.com/notifications/unsubscribe-auth/AI54DTERHSJOTBAZWPDWBCTXXP2YXANCNFSM6AAAAAA4AHJJSY. You are receiving this because you were mentioned.

halx99 commented 1 year ago

Hum, are you sure? So why it is working with coco2d-x.

It feels like there is be a bit of misunderstanding here. The only reason it is working in cocos2d-x is that it never set CMAKE_OSX_SYSROOT, so while you can see the "General" tab, cocos2d-x doesn't seem to have CI builds enabled, so they would have never noticed that the CI build would be broken as a result of not setting CMAKE_OSX_SYSROOT.

Commit 86a2062 allows the Xcode simulator project to be generated with the "General" tab, so it address the issue in your original post. The side effect of not setting CMAKE_OSX_SYSROOT is that the CI builds broke.

This is not an issue specific to Axmol.

I add parameter -sdk iphonesimulator for ci: https://github.com/axmolengine/axmol/blob/dev/1k/build1k.ps1#L1082, should make ci works

rh101 commented 1 year ago

@halx99 ~For CI builds, would it be possible to pass some setting to cmake when generating the project to ensure that it still does set CMAKE_OSX_SYSROOT?~

Never-mind! You answered my question just as I posted this.

asnagni commented 1 year ago

Hi, I show you the project that I have and it’s there but again it was done few years ago now so I’m not sure but I can dig into it if that can help.

But I still think that Axmol should aim to be better than coco2dx that is why we are migrating 😊.

Thank you, Stay safe

On Aug 27, 2023, at 10:00 PM, Deal @.***> wrote:

Hum, are you sure? So why it is working with coco2d-x.

It feels like there is be a bit of misunderstanding here. The only reason it is working in cocos2d-x is that it never set CMAKE_OSX_SYSROOT, so while you can see the "General" tab, cocos2d-x doesn't seem to have CI builds enabled, so they would have never noticed that the CI build would be broken as a result of not setting CMAKE_OSX_SYSROOT.

Commit 86a2062 https://github.com/axmolengine/axmol/commit/86a2062b982e31dd02f77ad8794fc32f6bcd0ee2 allows the Xcode simulator project to be generated with the "General" tab, so it address the issue in your original post. The side effect of not setting CMAKE_OSX_SYSROOT is that the CI builds broke.

This is not an issue specific to Axmol.

I add parameter -sdk iphonesimulator for ci: https://github.com/axmolengine/axmol/blob/dev/1k/build1k.ps1#L1082, should make ci works

— Reply to this email directly, view it on GitHub https://github.com/axmolengine/axmol/issues/1310#issuecomment-1694884986, or unsubscribe https://github.com/notifications/unsubscribe-auth/AI54DTHZWJXFCOBP565OJUTXXP3ULANCNFSM6AAAAAA4AHJJSY. You are receiving this because you were mentioned.