Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ryantrem/BabylonReactNative
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.0.7-alpha.5
Choose a base ref
...
head repository: ryantrem/BabylonReactNative
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: binary-builds
Choose a head ref
  • 8 commits
  • 6 files changed
  • 2 contributors

Commits on Jul 8, 2020

  1. Update publish.yml

    ryantrem authored Jul 8, 2020
    Configuration menu
    Copy the full SHA
    0ded9fb View commit details
    Browse the repository at this point in the history
  2. Binary package build (BabylonJS#44)

    This change supports building an NPM package with pre-compiled binaries. Notable pieces of this change:
    
    - There is a new Package directory, which contains a few static support files, and a Gulp based build script. I decided to use Gulp because it is cross platform, commonly used for web-tech based projects, and makes it easy to break the build script into separable pieces. My plan is to have a PR build that does gulp buildIOS and gulp buildAndroid in parallel, and have the CI build that does gulp (invokes the default function) to build both iOS and Android and then publish the package. These PR/CI build changes will come in a later PR.
    - The build script builds Android by just building the Playground app and then copying over the libBabylonNative.so files for different architectures, plus some Android specific interop source code files that are compiled into the consuming app.
    - For Android, we additionally include a static build.gradle that is exactly what is generated by the React Native CLI tools for new packages (which is compatible with React Native consuming apps), plus two additions: 1) It produces a build error if the min SDK version is less than 18 (required for GLES3), 2) it adds a dependency on ARCore.
    - The build script builds iOS through a CMakeLists.txt that includes the regular iOS CMakeLists.txt from the source package, and then adds a few extra steps to scoop up all the static libs we care about into a single directory. These libs are run through the lipo tool to combine the different architectures for each lib into a set of "universal libs" for all supported architectures. This makes them compatible with CocoaPods, where we do not have the ability to specify different static libs for different architectures. The "universal libs" plus some iOS specific interop source code files are copied over to the precompiled package directory.
    - For iOS, we additionally include a static podspec that includes all the static libs, plus the loose source files that the consuming app needs to compile.
    - The PackageTest app's @babylonjs/react-native dependency now points to the locally built binary package (rather than the source package).
    - The PackageTest app's xcworkspace no longer references a ReactNativeBabylon xcodeproj since it is now pulling in precompiled binaries.
    
    Other smaller changes included in this PR:
    
    - Update to the BabylonNative submodule to the latest master, which includes fixes for warnings as errors on iOS and Android. This pulled in an updated version of glslang, which produces two additional libs, which needed to be added to the list of libs to link in the source-based package's podspec.
    - I updated the iOS deployment target of the PackageTest app to be 12 instead of 9. This just got missed on the initial checkin, and actually results in build errors for Release (since the Babylon React Native package declares a minimum deployment target of 12).
    - The iOS CMakeLists.txt now explicitly uses ${CMAKE_CURRENT_LIST_DIR} since paths are relative to the CMakeLists.txt file itself. Without specifying this, paths are relative to the "top level" CMakeLists.txt (in this case, the one in the Package directory that includes this CMakeLists.txt.
    - Updates to the README.md to reflect the changes around the binary packaging.
    ryantrem authored Jul 8, 2020
    Configuration menu
    Copy the full SHA
    4bbfb84 View commit details
    Browse the repository at this point in the history
  3. Merge master

    ryantrem committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    a7a811b View commit details
    Browse the repository at this point in the history
  4. Switch back to npmjs.org

    ryantrem authored Jul 8, 2020
    Configuration menu
    Copy the full SHA
    83e70e5 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6870a4f View commit details
    Browse the repository at this point in the history
  6. Fix bad merge

    Fix NDK version in README.md
    ryantrem committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    89542f8 View commit details
    Browse the repository at this point in the history
  7. Update pr.yml

    ryantrem authored Jul 8, 2020
    Configuration menu
    Copy the full SHA
    e56cba3 View commit details
    Browse the repository at this point in the history
  8. Remove unnecessary steps

    ryantrem authored Jul 8, 2020
    Configuration menu
    Copy the full SHA
    841775b View commit details
    Browse the repository at this point in the history
Loading