From a63ed65f4066acfa2dd991178ade1387cd7df2f4 Mon Sep 17 00:00:00 2001 From: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com> Date: Tue, 10 Jun 2025 10:34:09 +0200 Subject: [PATCH 01/13] Fix BRN build sourcetree --- Dependencies/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dependencies/CMakeLists.txt b/Dependencies/CMakeLists.txt index a21a45e6f..6cfe5f79b 100644 --- a/Dependencies/CMakeLists.txt +++ b/Dependencies/CMakeLists.txt @@ -3,7 +3,7 @@ set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) # -------------------------------------------------- # AndroidExtensions # -------------------------------------------------- -if(ANDROID) +if(ANDROID OR BABYLON_NATIVE_BUILD_SOURCETREE) FetchContent_MakeAvailable_With_Message(AndroidExtensions) endif() From 21911774d516e677e99baecbee6054de9429f4b6 Mon Sep 17 00:00:00 2001 From: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com> Date: Tue, 10 Jun 2025 11:03:54 +0200 Subject: [PATCH 02/13] Android Extensions --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b54d726f8..3dd71ff67 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ include(FetchContent) # -------------------------------------------------- FetchContent_Declare(AndroidExtensions GIT_REPOSITORY https://github.com/BabylonJS/AndroidExtensions.git - GIT_TAG 7d88a601fda9892791e7b4e994e375e049615688) + GIT_TAG ab708dcbd0ef827a1efa6332f08b385041ed274b) FetchContent_Declare(arcana.cpp GIT_REPOSITORY https://github.com/microsoft/arcana.cpp.git GIT_TAG 1a8a5d6e95413ed14b38a6ac9419048f9a9c8009) From 7dd5bd439ee51adc77d0a71eb033c0c1e6f3ba54 Mon Sep 17 00:00:00 2001 From: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com> Date: Fri, 13 Jun 2025 16:39:56 +0200 Subject: [PATCH 03/13] ios-cmake --- CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3dd71ff67..daa92b302 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,18 +48,18 @@ FetchContent_Declare(libwebp FetchContent_MakeAvailable(CMakeExtensions) -if(VISIONOS) +if (VISIONOS OR IOS OR BABYLON_NATIVE_BUILD_SOURCETREE) FetchContent_MakeAvailable_With_Message(ios-cmake) set(CMAKE_TOOLCHAIN_FILE "${ios-cmake_SOURCE_DIR}/ios.toolchain.cmake" CACHE PATH "") + set(ENABLE_ARC OFF CACHE STRING "Enables or disables ARC support.") +endif() + +if(VISIONOS) set(PLATFORM "VISIONOSCOMBINED" CACHE STRING "") set(DEPLOYMENT_TARGET "1.0" CACHE STRING "") - set(ENABLE_ARC OFF CACHE STRING "Enables or disables ARC support.") elseif(IOS) - FetchContent_MakeAvailable_With_Message(ios-cmake) - set(CMAKE_TOOLCHAIN_FILE "${ios-cmake_SOURCE_DIR}/ios.toolchain.cmake" CACHE PATH "") set(PLATFORM "OS64COMBINED" CACHE STRING "") set(DEPLOYMENT_TARGET "13" CACHE STRING "") - set(ENABLE_ARC OFF CACHE STRING "Enables or disables ARC support.") endif() project(BabylonNative) From 4b170e1d07aa6158532bef02420c80bef5191167 Mon Sep 17 00:00:00 2001 From: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com> Date: Mon, 16 Jun 2025 10:50:01 +0200 Subject: [PATCH 04/13] ios cmake populate --- CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index daa92b302..8fa834fed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,7 +49,11 @@ FetchContent_Declare(libwebp FetchContent_MakeAvailable(CMakeExtensions) if (VISIONOS OR IOS OR BABYLON_NATIVE_BUILD_SOURCETREE) - FetchContent_MakeAvailable_With_Message(ios-cmake) + if (BABYLON_NATIVE_BUILD_SOURCETREE) + FetchContent_Populate(ios-cmake) + else() + FetchContent_MakeAvailable_With_Message(ios-cmake) + endif() set(CMAKE_TOOLCHAIN_FILE "${ios-cmake_SOURCE_DIR}/ios.toolchain.cmake" CACHE PATH "") set(ENABLE_ARC OFF CACHE STRING "Enables or disables ARC support.") endif() From d4d77e992d94159290c545ad50e1c96dc3dfea20 Mon Sep 17 00:00:00 2001 From: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com> Date: Mon, 16 Jun 2025 11:19:23 +0200 Subject: [PATCH 05/13] ioscmake --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8fa834fed..80a0ad240 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,7 +50,7 @@ FetchContent_MakeAvailable(CMakeExtensions) if (VISIONOS OR IOS OR BABYLON_NATIVE_BUILD_SOURCETREE) if (BABYLON_NATIVE_BUILD_SOURCETREE) - FetchContent_Populate(ios-cmake) + #FetchContent_Populate(ios-cmake) else() FetchContent_MakeAvailable_With_Message(ios-cmake) endif() From a736d2d675c4733e70186237d39412f187139b48 Mon Sep 17 00:00:00 2001 From: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com> Date: Mon, 16 Jun 2025 11:26:23 +0200 Subject: [PATCH 06/13] ioscmake --- CMakeLists.txt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 80a0ad240..053310e5d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,12 +49,10 @@ FetchContent_Declare(libwebp FetchContent_MakeAvailable(CMakeExtensions) if (VISIONOS OR IOS OR BABYLON_NATIVE_BUILD_SOURCETREE) - if (BABYLON_NATIVE_BUILD_SOURCETREE) - #FetchContent_Populate(ios-cmake) - else() - FetchContent_MakeAvailable_With_Message(ios-cmake) + FetchContent_MakeAvailable_With_Message(ios-cmake) + if (NOT BABYLON_NATIVE_BUILD_SOURCETREE) + set(CMAKE_TOOLCHAIN_FILE "${ios-cmake_SOURCE_DIR}/ios.toolchain.cmake" CACHE PATH "") endif() - set(CMAKE_TOOLCHAIN_FILE "${ios-cmake_SOURCE_DIR}/ios.toolchain.cmake" CACHE PATH "") set(ENABLE_ARC OFF CACHE STRING "Enables or disables ARC support.") endif() From 65d3136cc830b4feb754420d5ce639796a139db5 Mon Sep 17 00:00:00 2001 From: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com> Date: Thu, 19 Jun 2025 17:22:37 +0200 Subject: [PATCH 07/13] android extensions missing include --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 053310e5d..9a05490da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ include(FetchContent) # -------------------------------------------------- FetchContent_Declare(AndroidExtensions GIT_REPOSITORY https://github.com/BabylonJS/AndroidExtensions.git - GIT_TAG ab708dcbd0ef827a1efa6332f08b385041ed274b) + GIT_TAG 24370fff52a03ef43dcf5e5fcb8b84338b779a05) FetchContent_Declare(arcana.cpp GIT_REPOSITORY https://github.com/microsoft/arcana.cpp.git GIT_TAG 1a8a5d6e95413ed14b38a6ac9419048f9a9c8009) From 100b2db2cd4386fb49793f2516756b17e6ac0f15 Mon Sep 17 00:00:00 2001 From: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com> Date: Thu, 19 Jun 2025 18:00:20 +0200 Subject: [PATCH 08/13] Android Extensions --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a05490da..99af9ce92 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ include(FetchContent) # -------------------------------------------------- FetchContent_Declare(AndroidExtensions GIT_REPOSITORY https://github.com/BabylonJS/AndroidExtensions.git - GIT_TAG 24370fff52a03ef43dcf5e5fcb8b84338b779a05) + GIT_TAG 66520bff9b57030b67894a4934d18ad7e161ba6f) FetchContent_Declare(arcana.cpp GIT_REPOSITORY https://github.com/microsoft/arcana.cpp.git GIT_TAG 1a8a5d6e95413ed14b38a6ac9419048f9a9c8009) From afb170210fb0f8658ba6125f7279b3c4ccdc67f0 Mon Sep 17 00:00:00 2001 From: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com> Date: Sat, 21 Jun 2025 18:40:07 +0200 Subject: [PATCH 09/13] Update CMakeLists.txt --- Dependencies/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dependencies/CMakeLists.txt b/Dependencies/CMakeLists.txt index 6cfe5f79b..5081ac2db 100644 --- a/Dependencies/CMakeLists.txt +++ b/Dependencies/CMakeLists.txt @@ -190,7 +190,7 @@ endif() # xr # -------------------------------------------------- # Currently supported on Android via ARCore, and iOS via ARKit. -if(BABYLON_NATIVE_PLUGIN_NATIVEXR AND (ANDROID OR IOS)) +if((BABYLON_NATIVE_PLUGIN_NATIVEXR AND (ANDROID OR IOS)) OR BABYLON_NATIVE_BUILD_SOURCETREE) add_subdirectory(xr) set_property(TARGET xr PROPERTY FOLDER Dependencies/xr) warnings_as_errors(xr) From ffba8e72f5d10d0d2939b6634894a85213ef39c3 Mon Sep 17 00:00:00 2001 From: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com> Date: Sat, 21 Jun 2025 18:45:40 +0200 Subject: [PATCH 10/13] Update CMakeLists.txt --- Dependencies/xr/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dependencies/xr/CMakeLists.txt b/Dependencies/xr/CMakeLists.txt index 8c3b6d9d8..6d01b532e 100644 --- a/Dependencies/xr/CMakeLists.txt +++ b/Dependencies/xr/CMakeLists.txt @@ -33,7 +33,7 @@ if (ANDROID) set(SOURCES ${SOURCES} "Source/ARCore/Include/IXrContextARCore.h" "Source/ARCore/XR.cpp") -elseif (IOS) +elseif (IOS OR BABYLON_NATIVE_BUILD_SOURCETREE) set(SOURCES ${SOURCES} "Source/ARKit/Include/IXrContextARKit.h" "Source/ARKit/XR.mm") From 6c25966e8f8c0f3a0c13fdf77064f1bde790391f Mon Sep 17 00:00:00 2001 From: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com> Date: Thu, 26 Jun 2025 10:58:11 +0200 Subject: [PATCH 11/13] arcore-android-sdk dep --- Dependencies/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dependencies/CMakeLists.txt b/Dependencies/CMakeLists.txt index 5081ac2db..9aa56f48b 100644 --- a/Dependencies/CMakeLists.txt +++ b/Dependencies/CMakeLists.txt @@ -15,7 +15,7 @@ FetchContent_MakeAvailable_With_Message(arcana.cpp) # -------------------------------------------------- # arcore-android-sdk # -------------------------------------------------- -if(ANDROID) +if(ANDROID OR BABYLON_NATIVE_BUILD_SOURCETREE) FetchContent_MakeAvailable_With_Message(arcore-android-sdk) endif() From 9d812f532e30dbab2518f9675a75b9ce21f4e55e Mon Sep 17 00:00:00 2001 From: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com> Date: Wed, 9 Jul 2025 18:28:14 +0200 Subject: [PATCH 12/13] Apply suggestions from code review Co-authored-by: Drew Fillebrown --- CMakeLists.txt | 4 ++-- Dependencies/xr/CMakeLists.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 99af9ce92..232910cd6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,9 +48,9 @@ FetchContent_Declare(libwebp FetchContent_MakeAvailable(CMakeExtensions) -if (VISIONOS OR IOS OR BABYLON_NATIVE_BUILD_SOURCETREE) +if(VISIONOS OR IOS OR BABYLON_NATIVE_BUILD_SOURCETREE) FetchContent_MakeAvailable_With_Message(ios-cmake) - if (NOT BABYLON_NATIVE_BUILD_SOURCETREE) + if(NOT BABYLON_NATIVE_BUILD_SOURCETREE) set(CMAKE_TOOLCHAIN_FILE "${ios-cmake_SOURCE_DIR}/ios.toolchain.cmake" CACHE PATH "") endif() set(ENABLE_ARC OFF CACHE STRING "Enables or disables ARC support.") diff --git a/Dependencies/xr/CMakeLists.txt b/Dependencies/xr/CMakeLists.txt index 6d01b532e..0b4677980 100644 --- a/Dependencies/xr/CMakeLists.txt +++ b/Dependencies/xr/CMakeLists.txt @@ -33,7 +33,7 @@ if (ANDROID) set(SOURCES ${SOURCES} "Source/ARCore/Include/IXrContextARCore.h" "Source/ARCore/XR.cpp") -elseif (IOS OR BABYLON_NATIVE_BUILD_SOURCETREE) +elseif(IOS OR BABYLON_NATIVE_BUILD_SOURCETREE) set(SOURCES ${SOURCES} "Source/ARKit/Include/IXrContextARKit.h" "Source/ARKit/XR.mm") From b901432faca6a6778f7dc7c7400292ef8d053ce7 Mon Sep 17 00:00:00 2001 From: Cedric Guillemet <1312968+CedricGuillemet@users.noreply.github.com> Date: Thu, 17 Jul 2025 19:31:48 +0200 Subject: [PATCH 13/13] BABYLON_NATIVE_BUILD_SOURCETREE documentation --- CMakeLists.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index f52f873ae..69e52a33a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,6 +48,13 @@ FetchContent_Declare(libwebp FetchContent_MakeAvailable(CMakeExtensions) +# BABYLON_NATIVE_BUILD_SOURCETREE flag is used by BabylonReactNative NPM build process. +# CMake script is run twice. At package creation, BABYLON_NATIVE_BUILD_SOURCETREE is ON +# which makes all dependencies to be fetched and packaged. +# At build time, cmake is run again on BabylonNative root but FETCHCONTENT_FULLY_DISCONNECTED is ON +# and FetchContent_MakeAvailable_With_Message will use provided local folder provided to cmake command line +# like '-DFETCHCONTENT_SOURCE_DIR_BGFX.CMAKE=../shared/Babylon/....' + if(VISIONOS OR IOS OR BABYLON_NATIVE_BUILD_SOURCETREE) FetchContent_MakeAvailable_With_Message(ios-cmake) if(NOT BABYLON_NATIVE_BUILD_SOURCETREE)