[DRAFT] Remove CMake from the build process #227
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Presently, we're using CMake to build the GDExtension (aka the C++ bits) on Android, but using scons to build for every other platform.
This causes a couple of problems:
#define
s to exist, because I know godot-cpp adds them, only to realize they weren't there when doing Android builds because they weren't in our custom CMake configuration hereThis PR switches to always using scons to build everything C++-related, and then Gradle just pulls those
.so
's into the.aar
files. This is similar to how Godot is built for Android.This has some follow on effects:
META_VENDOR_ENABLED
,PICO_VENDOR_ENABLED
, etc. We never ended up using those defines for anything, though. This will just save us build time :-)libopenxr_loader.so
to ourlibgodotopenxrvendors.so
. We never really needed to do this - we just need to make sure thatlibopenxr_loader.so
gets loaded early enough. This PR switches to loading it explicitly in the Android plugin, which is working in my testing. (Note: thelibopenxr_loader.so
may be a different actual loader depending on the vendor, but it always has that same file name.)abiFilters
doesn't seem to work for excluding certain architectures in different flavors. So, I had shuffle around the directories for those binaries, so I could instead usejniLibs.srcDirs
to point at the architectures we want. I also just removed thearmeabi-v7a
binaries for the Meta loader, because I think that's for like GearVR or Oculus Go or some other unsupported platform.TODO:
Marking as a DRAFT until those TODO's are completed.