diff --git a/.github/workflows/postsubmit.yml b/.github/workflows/postsubmit.yml index b2fd0c582638..b96f9e098f9e 100644 --- a/.github/workflows/postsubmit.yml +++ b/.github/workflows/postsubmit.yml @@ -31,6 +31,8 @@ jobs: with: fetch-depth: 0 - uses: ./.github/actions/mac-prereq + - name: Select Xcode 16.2 + run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer - name: Run build script run: | cd build/ios && printf "y" | ./build.sh continuous diff --git a/.github/workflows/presubmit.yml b/.github/workflows/presubmit.yml index 1ad434daa561..e7726b43a721 100644 --- a/.github/workflows/presubmit.yml +++ b/.github/workflows/presubmit.yml @@ -184,6 +184,8 @@ jobs: with: fetch-depth: 0 - uses: ./.github/actions/mac-prereq + - name: Select Xcode 16.2 + run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer - name: Run build script run: | cd build/ios && printf "y" | ./build.sh presubmit diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 89428e6e5802..c54ecc7401d0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -286,6 +286,8 @@ jobs: with: ref: ${{ steps.git_ref.outputs.ref }} - uses: ./.github/actions/mac-prereq + - name: Select Xcode 16.2 + run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer - name: Run build script env: TAG: ${{ steps.git_ref.outputs.tag }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e0c79117d76..dc807296604a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -732,6 +732,9 @@ string(TOLOWER "${DIST_ARCH}" DIST_ARCH) string(REPLACE "amd64" "x86_64" DIST_ARCH "${DIST_ARCH}") if (NOT DIST_DIR) set(DIST_DIR "${DIST_ARCH}") + if (PLATFORM_NAME) + set(DIST_DIR "${DIST_DIR}-${PLATFORM_NAME}") + endif() endif() # ================================================================================================== diff --git a/NEW_RELEASE_NOTES.md b/NEW_RELEASE_NOTES.md index 5f0a5b8fd5f7..2a1fed885c7f 100644 --- a/NEW_RELEASE_NOTES.md +++ b/NEW_RELEASE_NOTES.md @@ -7,4 +7,5 @@ appropriate header in [RELEASE_NOTES.md](./RELEASE_NOTES.md). ## Release notes for next branch cut +- iOS: add Apple silicon (`arm64`) iOS Simulator support. The sample Xcode projects now require Xcode 16+ (CI is pinned to Xcode 16.2). - WEBGL_PTHREADS renamed to WASM_PTHREADS in CMakeLists.txt diff --git a/build.sh b/build.sh index 3fb90f4b10bf..e7fc6a89f0ec 100755 --- a/build.sh +++ b/build.sh @@ -53,8 +53,8 @@ function print_help { echo " -e" echo " Enable EGL on Linux support for desktop builds." echo " -l" - echo " Build arm64/x86_64 universal libraries." - echo " For iOS, this builds universal binaries for devices and the simulator (implies -s)." + echo " Build universal libraries/frameworks." + echo " For iOS, this builds XCFrameworks for devices and the simulator (implies -s)." echo " For macOS, this builds universal binaries for both Apple silicon and Intel-based Macs." echo " -k sample1,sample2,..." echo " When building for Android, also build select sample APKs." @@ -685,9 +685,9 @@ function build_ios_target { local platform=$3 echo "Building iOS ${lc_target} (${arch}) for ${platform}..." - mkdir -p "out/cmake-ios-${lc_target}-${arch}" + mkdir -p "out/cmake-ios-${lc_target}-${arch}-${platform}" - pushd "out/cmake-ios-${lc_target}-${arch}" > /dev/null + pushd "out/cmake-ios-${lc_target}-${arch}-${platform}" > /dev/null if [[ ! -d "CMakeFiles" ]] || [[ "${ISSUE_CMAKE_ALWAYS}" == "true" ]]; then cmake \ @@ -746,38 +746,79 @@ function build_ios { # only arm64 devices support OpenGL 3.0 / Metal if [[ "${ISSUE_DEBUG_BUILD}" == "true" ]]; then + local out_dir="out/ios-debug/filament" + local lib_dir="${out_dir}/lib" + build_ios_target "Debug" "arm64" "iphoneos" + if [[ "${IOS_BUILD_SIMULATOR}" == "true" ]]; then + build_ios_target "Debug" "arm64" "iphonesimulator" build_ios_target "Debug" "x86_64" "iphonesimulator" + + # Create a universal library for the simulator + build/ios/create-universal-libs.sh \ + -o "${lib_dir}/universal" \ + "${lib_dir}/arm64-iphonesimulator" \ + "${lib_dir}/x86_64-iphonesimulator" fi - if [[ "${BUILD_UNIVERSAL_LIBRARIES}" == "true" ]]; then - build/ios/create-universal-libs.sh \ - -o out/ios-debug/filament/lib/universal \ - out/ios-debug/filament/lib/arm64 \ - out/ios-debug/filament/lib/x86_64 - rm -rf out/ios-debug/filament/lib/arm64 - rm -rf out/ios-debug/filament/lib/x86_64 + # Always create XCFrameworks + local xcframework_paths=("${lib_dir}/arm64-iphoneos") + if [[ -d "${lib_dir}/universal" ]]; then + xcframework_paths+=("${lib_dir}/universal") + elif [[ -d "${lib_dir}/arm64-iphonesimulator" ]]; then + # If we built only one simulator arch but not both + xcframework_paths+=("${lib_dir}/arm64-iphonesimulator") + elif [[ -d "${lib_dir}/x86_64-iphonesimulator" ]]; then + xcframework_paths+=("${lib_dir}/x86_64-iphonesimulator") fi + build/ios/create-xc-frameworks.sh -o "${lib_dir}" "${xcframework_paths[@]}" + + rm -rf \ + "${lib_dir}/arm64-iphoneos" \ + "${lib_dir}/arm64-iphonesimulator" \ + "${lib_dir}/x86_64-iphonesimulator" \ + "${lib_dir}/universal" + archive_ios "Debug" fi if [[ "${ISSUE_RELEASE_BUILD}" == "true" ]]; then + local out_dir="out/ios-release/filament" + local lib_dir="${out_dir}/lib" + build_ios_target "Release" "arm64" "iphoneos" + if [[ "${IOS_BUILD_SIMULATOR}" == "true" ]]; then + build_ios_target "Release" "arm64" "iphonesimulator" build_ios_target "Release" "x86_64" "iphonesimulator" + + # Create a universal library for the simulator + build/ios/create-universal-libs.sh \ + -o "${lib_dir}/universal" \ + "${lib_dir}/arm64-iphonesimulator" \ + "${lib_dir}/x86_64-iphonesimulator" fi - if [[ "${BUILD_UNIVERSAL_LIBRARIES}" == "true" ]]; then - build/ios/create-universal-libs.sh \ - -o out/ios-release/filament/lib/universal \ - out/ios-release/filament/lib/arm64 \ - out/ios-release/filament/lib/x86_64 - rm -rf out/ios-release/filament/lib/arm64 - rm -rf out/ios-release/filament/lib/x86_64 + # Always create XCFrameworks + local xcframework_paths=("${lib_dir}/arm64-iphoneos") + if [[ -d "${lib_dir}/universal" ]]; then + xcframework_paths+=("${lib_dir}/universal") + elif [[ -d "${lib_dir}/arm64-iphonesimulator" ]]; then + xcframework_paths+=("${lib_dir}/arm64-iphonesimulator") + elif [[ -d "${lib_dir}/x86_64-iphonesimulator" ]]; then + xcframework_paths+=("${lib_dir}/x86_64-iphonesimulator") fi + build/ios/create-xc-frameworks.sh -o "${lib_dir}" "${xcframework_paths[@]}" + + rm -rf \ + "${lib_dir}/arm64-iphoneos" \ + "${lib_dir}/arm64-iphonesimulator" \ + "${lib_dir}/x86_64-iphonesimulator" \ + "${lib_dir}/universal" + archive_ios "Release" fi } diff --git a/build/ios/create-xc-frameworks.sh b/build/ios/create-xc-frameworks.sh new file mode 100755 index 000000000000..28619f361890 --- /dev/null +++ b/build/ios/create-xc-frameworks.sh @@ -0,0 +1,87 @@ +#!/usr/bin/env bash + +set -e + +function print_help { + local SELF_NAME + SELF_NAME=$(basename "$0") + echo "$SELF_NAME. Combine multiple platform-specific libraries into XCFramework bundles." + echo "" + echo "Usage:" + echo " $SELF_NAME [options] ..." + echo "" + echo "Options:" + echo " -h" + echo " Print this help message." + echo " -o" + echo " Output directory to store the XCFrameworks." + echo "" + echo "Example:" + echo " $SELF_NAME -o xcframeworks/ iphoneos/ iphonesimulator/" + echo "" +} + +OUTPUT_DIR="" +while getopts "ho:" opt; do + case ${opt} in + h) + print_help + exit 1 + ;; + o) + OUTPUT_DIR="${OPTARG}" + ;; + *) + print_help + exit 1 + ;; + esac +done + +shift $((OPTIND - 1)) + +PATHS=("$@") + +if [[ ! "${PATHS[*]}" ]]; then + echo "One or more paths required." + print_help + exit 1 +fi + +if [[ ! "${OUTPUT_DIR}" ]]; then + echo "Output directory required." + print_help + exit 1 +fi + +mkdir -p "${OUTPUT_DIR}" + +# Use the first path as the leader to find all .a files +LEADER_PATH="${PATHS[0]}" + +for FILE in "${LEADER_PATH}"/*.a; do + [ -f "${FILE}" ] || continue + + LIBRARY_NAME="${FILE##*/}" + FRAMEWORK_NAME="${LIBRARY_NAME%.a}.xcframework" + + echo "Creating XCFramework for: ${LIBRARY_NAME}" + + CMD="xcodebuild -create-xcframework" + + for PLATFORM_PATH in "${PATHS[@]}"; do + LIB_PATH="${PLATFORM_PATH}/${LIBRARY_NAME}" + if [[ -f "${LIB_PATH}" ]]; then + CMD="${CMD} -library ${LIB_PATH}" + else + echo "Warning: ${LIB_PATH} does not exist, skipping this platform for ${LIBRARY_NAME}" + fi + done + + CMD="${CMD} -output ${OUTPUT_DIR}/${FRAMEWORK_NAME}" + + # Remove existing framework if it exists + rm -rf "${OUTPUT_DIR}/${FRAMEWORK_NAME}" + + eval "${CMD}" +done diff --git a/filament/backend/src/metal/MetalDriver.mm b/filament/backend/src/metal/MetalDriver.mm index f156083bbf11..a749914df742 100644 --- a/filament/backend/src/metal/MetalDriver.mm +++ b/filament/backend/src/metal/MetalDriver.mm @@ -14,6 +14,7 @@ * limitations under the License. */ +#include #include "backend/PresentCallable.h" #include "private/backend/CommandStream.h" #include "CommandStreamDispatcher.h" @@ -160,9 +161,11 @@ } mContext->supportsDepthClamp = false; +#if !TARGET_OS_SIMULATOR if (@available(macOS 10.11, iOS 11.0, *)) { mContext->supportsDepthClamp = true; } +#endif // In order to support resolve store action on depth attachment, the GPU needs to support it. // Note that support for depth resolve implies support for stencil resolve using .sample0 resolve filter. diff --git a/ios/CocoaPods/Filament.podspec b/ios/CocoaPods/Filament.podspec index 0b2aecfb4c39..4ac4d610fc47 100644 --- a/ios/CocoaPods/Filament.podspec +++ b/ios/CocoaPods/Filament.podspec @@ -10,12 +10,6 @@ Pod::Spec.new do |spec| spec.libraries = 'c++' - # Fix linking error with Xcode 12; we do not yet support the simulator on Apple silicon. - spec.pod_target_xcconfig = { - 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' - } - spec.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } - spec.subspec "filament" do |ss| ss.source_files = "include/filament/*.h", @@ -25,13 +19,13 @@ Pod::Spec.new do |spec| "include/ibl/*.h", "include/geometry/*.h" ss.header_mappings_dir = "include" - ss.vendored_libraries = - "lib/universal/libfilament.a", - "lib/universal/libbackend.a", - "lib/universal/libfilabridge.a", - "lib/universal/libfilaflat.a", - "lib/universal/libibl.a", - "lib/universal/libgeometry.a" + ss.vendored_frameworks = + "lib/libfilament.xcframework", + "lib/libbackend.xcframework", + "lib/libfilabridge.xcframework", + "lib/libfilaflat.xcframework", + "lib/libibl.xcframework", + "lib/libgeometry.xcframework" ss.dependency "Filament/utils" ss.dependency "Filament/math" end @@ -42,11 +36,10 @@ Pod::Spec.new do |spec| "include/filament/MaterialChunkType.h", "include/filament/MaterialEnums.h" ss.header_mappings_dir = "include" - ss.vendored_libraries = - "lib/universal/libfilamat.a", - "lib/universal/libshaders.a", - "lib/universal/libsmol-v.a", - "lib/universal/libfilabridge.a" + ss.vendored_frameworks = + "lib/libfilamat.xcframework", + "lib/libshaders.xcframework", + "lib/libsmol-v.xcframework" ss.dependency "Filament/utils" ss.dependency "Filament/math" end @@ -54,11 +47,11 @@ Pod::Spec.new do |spec| spec.subspec "gltfio_core" do |ss| ss.source_files = "include/gltfio/**/*.h" ss.header_mappings_dir = "include" - ss.vendored_libraries = - "lib/universal/libgltfio_core.a", - "lib/universal/libdracodec.a", - "lib/universal/libuberarchive.a", - "lib/universal/libstb.a" + ss.vendored_frameworks = + "lib/libgltfio_core.xcframework", + "lib/libdracodec.xcframework", + "lib/libuberarchive.xcframework", + "lib/libstb.xcframework" ss.dependency "Filament/filament" ss.dependency "Filament/ktxreader" ss.dependency "Filament/uberz" @@ -66,23 +59,23 @@ Pod::Spec.new do |spec| spec.subspec "camutils" do |ss| ss.source_files = "include/camutils/*.h" - ss.vendored_libraries = "lib/universal/libcamutils.a" + ss.vendored_frameworks = "lib/libcamutils.xcframework" ss.header_dir = "camutils" ss.dependency "Filament/math" end spec.subspec "filameshio" do |ss| ss.source_files = "include/filameshio/*.h" - ss.vendored_libraries = - "lib/universal/libfilameshio.a", - "lib/universal/libmeshoptimizer.a" + ss.vendored_frameworks = + "lib/libfilameshio.xcframework", + "lib/libmeshoptimizer.xcframework" ss.header_dir = "filameshio" ss.dependency "Filament/filament" end spec.subspec "image" do |ss| ss.source_files = "include/image/*.h" - ss.vendored_libraries = "lib/universal/libimage.a" + ss.vendored_frameworks = "lib/libimage.xcframework" ss.header_dir = "image" ss.dependency "Filament/filament" end @@ -90,7 +83,7 @@ Pod::Spec.new do |spec| spec.subspec "utils" do |ss| ss.source_files = "include/utils/**/*.h" ss.header_mappings_dir = "include" - ss.vendored_libraries = "lib/universal/libutils.a" + ss.vendored_frameworks = "lib/libutils.xcframework" ss.dependency "Filament/tsl" end @@ -107,9 +100,9 @@ Pod::Spec.new do |spec| spec.subspec "ktxreader" do |ss| ss.source_files = "include/ktxreader/*.h" ss.header_mappings_dir = "include" - ss.vendored_libraries = - "lib/universal/libktxreader.a", - "lib/universal/libbasis_transcoder.a" + ss.vendored_frameworks = + "lib/libktxreader.xcframework", + "lib/libbasis_transcoder.xcframework" ss.dependency "Filament/image" ss.dependency "Filament/filament" end @@ -117,9 +110,9 @@ Pod::Spec.new do |spec| spec.subspec "viewer" do |ss| ss.source_files = "include/viewer/*.h" ss.header_mappings_dir = "include" - ss.vendored_libraries = - "lib/universal/libviewer.a", - "lib/universal/libcivetweb.a" + ss.vendored_frameworks = + "lib/libviewer.xcframework", + "lib/libcivetweb.xcframework" ss.dependency "Filament/filament" ss.dependency "Filament/gltfio_core" end @@ -127,9 +120,9 @@ Pod::Spec.new do |spec| spec.subspec "uberz" do |ss| ss.source_files = "include/uberz/*.h" ss.header_mappings_dir = "include" - ss.vendored_libraries = - "lib/universal/libuberzlib.a", - "lib/universal/libzstd.a" + ss.vendored_frameworks = + "lib/libuberzlib.xcframework", + "lib/libzstd.xcframework" ss.header_dir = "uberz" ss.dependency "Filament/filamat" ss.dependency "Filament/tsl" diff --git a/ios/samples/README.md b/ios/samples/README.md index 789af0ee04e2..d52f56d2eb41 100644 --- a/ios/samples/README.md +++ b/ios/samples/README.md @@ -47,14 +47,16 @@ build Filament in Release mode, replace `debug` with `release` in the above `bui If you also want to be able to run on the iOS simulator, add the `-s` flag to the `build.sh` command. For example, the following command will build for both devices (ARM64) and the simulator -(x86_64) in Debug mode: +(both Apple silicon `arm64` and Intel `x86_64`) in Debug mode: ``` $ ./build.sh -s -p ios -i debug ``` -When building for the simulator, the sample will then link against the libraries present in -`out/ios-debug/filament/lib/x86_64`. +When building for the simulator, the samples link against the libraries present in +`out/ios-debug/filament/lib/arm64` (Apple silicon simulators) or +`out/ios-debug/filament/lib/x86_64` (Intel simulators). The Filament `.xcframework`s expose both +slices, so Xcode automatically picks the right one for the active simulator runtime. ## Xcode @@ -88,17 +90,20 @@ from scratch. ## XcodeGen -[XcodeGen](https://github.com/yonaskolb/XcodeGen) version 2.43.0 is used to generate the Xcode -projects. While not required to run the samples, XcodeGen makes modifying them easier. Each sample -folder contains the `project.yml` file used for the sample, which includes a global -`app-template.yml` file. Simply run +[XcodeGen](https://github.com/yonaskolb/XcodeGen) is used to generate the Xcode projects. While not +required to run the samples, XcodeGen makes modifying them easier. Each sample folder contains the +`project.yml` file used for the sample, which includes a global `app-template.yml` file. Either run ``` $ xcodegen ``` -within a sample folder to re-generate the Xcode project. You may need to close and re-open the -project in Xcode to see changes take effect. +within a sample folder, or run `./generate-samples.sh` from this directory to regenerate all of +them at once. + +The committed `project.pbxproj` files use `objectVersion = 77`, which requires **Xcode 16 or newer** +to open. CI pins Xcode 16.2 for this reason. You may need to close and re-open the project in Xcode +to see changes take effect. ## Building iOS Samples with ASan / UBSan diff --git a/ios/samples/app-template.yml b/ios/samples/app-template.yml index 83ba3143f5ba..934b1119cae3 100644 --- a/ios/samples/app-template.yml +++ b/ios/samples/app-template.yml @@ -13,30 +13,35 @@ targetTemplates: - path: ${target_name}/Materials buildPhase: none optional: true + dependencies: + - framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework + - framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework + - framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework + - framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework + - framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework + - framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework + - framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework + - framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework + - framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework + - framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework + - framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework scheme: configVariants: - Metal - OpenGL settings: base: - OTHER_LDFLAGS: ["-lfilament", "-lbackend", "-lfilaflat", "-lktxreader", - "-lfilabridge", "-lutils", "-lsmol-v", "-lgeometry", "-libl", - "-labseil", "-lzstd"] ENABLE_BITCODE: NO CLANG_CXX_LANGUAGE_STANDARD: c++20 # This allows users to not have to specify a unique bundle ID when building the sample apps. SAMPLE_CODE_DISAMBIGUATOR: ${DEVELOPMENT_TEAM} configs: debug: - HEADER_SEARCH_PATHS: ["../../../out/ios-debug/filament/include", "generated"] - LIBRARY_SEARCH_PATHS: - - "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)" - - "../../../out/ios-debug/filament/lib/universal" + FILAMENT_OUT_NAME: ios-debug + HEADER_SEARCH_PATHS: ["$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", "generated"] release: - HEADER_SEARCH_PATHS: ["../../../out/ios-release/filament/include", "generated"] - LIBRARY_SEARCH_PATHS: - - "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)" - - "../../../out/ios-release/filament/lib/universal" + FILAMENT_OUT_NAME: ios-release + HEADER_SEARCH_PATHS: ["$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", "generated"] metal: GCC_PREPROCESSOR_DEFINITIONS: ["FILAMENT_APP_USE_METAL=1", "$(inherited)"] opengl: diff --git a/ios/samples/backend-test/backend-test.xcodeproj/project.pbxproj b/ios/samples/backend-test/backend-test.xcodeproj/project.pbxproj index c11009be3aa4..0de0accec28e 100644 --- a/ios/samples/backend-test/backend-test.xcodeproj/project.pbxproj +++ b/ios/samples/backend-test/backend-test.xcodeproj/project.pbxproj @@ -3,34 +3,117 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 77; objects = { /* Begin PBXBuildFile section */ + 0DE5DD77BF1B9049D63B76D0 /* libutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 7C969D515221A7739C68F3AC /* libutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 20863805FC626BF952BA3275 /* ViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 33D80A4472074C601C57C773 /* ViewController.mm */; }; + 2AABB2C1262EBA9553666078 /* libsmol-v.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8F108854ADC54BBAA29C2055 /* libsmol-v.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 305D6C983D22F7BC74FC76C7 /* libabseil.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0ED51915983DAE97083D44EF /* libabseil.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 32AC9F2183DD11F130D4A91D /* libfilament.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 912652335565C18B252345DE /* libfilament.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 376F63E72973F07BF618082D /* FilamentView.mm in Sources */ = {isa = PBXBuildFile; fileRef = B54DFEB4DB6ACC0289FA3046 /* FilamentView.mm */; }; + 3D73E90782CC3A2124DF046F /* libfilaflat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9E8375B927AFDFD1069016D1 /* libfilaflat.xcframework */; }; 477A2A67D32B7A3AF2E7B2F4 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = EB0A767D257F3D05BE9F0960 /* LaunchScreen.storyboard */; }; + 66014C413BCBF00E8E6DAF76 /* libgeometry.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB3F32D8D3D7310FA3A0C1A1 /* libgeometry.xcframework */; }; + 6A5D5E984CA862B943742745 /* libgeometry.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DB3F32D8D3D7310FA3A0C1A1 /* libgeometry.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 6C8A7D49A8F689E20D60F4D4 /* libabseil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0ED51915983DAE97083D44EF /* libabseil.xcframework */; }; + 7D8D3494388D7BF4D9FE4FCE /* libfilamat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = C4BDDF85AADA2069C0F9FBAE /* libfilamat.xcframework */; }; + 7E671E777FDB5F34AAA13D5A /* libutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C969D515221A7739C68F3AC /* libutils.xcframework */; }; + 8095A6D37F6F1C9C13BBFEA8 /* libfilamat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C4BDDF85AADA2069C0F9FBAE /* libfilamat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 8402B2AC6D081D1E8E065552 /* libbackend.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8632D4625CFCBD32A46772B5 /* libbackend.xcframework */; }; + 88C039F10343B8598FD5FF7F /* libfilabridge.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2A3753419FC4A7D4C039868 /* libfilabridge.xcframework */; }; 91CCBA3BA96DC289D0E8E975 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = AE6C78F32A0494087B0CEF32 /* main.mm */; }; + AA5AB498C5A6117057B06824 /* libfilaflat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9E8375B927AFDFD1069016D1 /* libfilaflat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + AE63AFEA7E7D507BB677C158 /* libbackend.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8632D4625CFCBD32A46772B5 /* libbackend.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; B3684DB18E82C867020294F1 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FDB89AD408A508D6CB74C32 /* AppDelegate.m */; }; + BFE92829375EE1DBA1E4A689 /* libfilabridge.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B2A3753419FC4A7D4C039868 /* libfilabridge.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; C74DDEF71B6F3C060BB56189 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B63A6E45E40F58037ABD8F84 /* Main.storyboard */; }; + C8C8BF3416B9B37003F1031E /* libktxreader.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 19CBBB6C426E8D038BDAC97B /* libktxreader.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + D0E54C592A378E549C96A54D /* libibl.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D1E30700B368B5F84196FD97 /* libibl.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + D472EB54D462394FE99DCE2B /* libibl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = D1E30700B368B5F84196FD97 /* libibl.xcframework */; }; + D5B2F0A85F7C6F352AA99DF1 /* libsmol-v.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F108854ADC54BBAA29C2055 /* libsmol-v.xcframework */; }; + E090ED826EE54CA2EA611D83 /* libzstd.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4C3E6E0AB2BA7D686E424D8F /* libzstd.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + E6163776920A1643B1ED01FA /* libzstd.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C3E6E0AB2BA7D686E424D8F /* libzstd.xcframework */; }; + F5E844BFD77174F770543A87 /* libfilament.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 912652335565C18B252345DE /* libfilament.xcframework */; }; + FB393C813D7A30404A2DEF23 /* libktxreader.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 19CBBB6C426E8D038BDAC97B /* libktxreader.xcframework */; }; FC9D623AC5CF31BA9FB0C47B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 93394D7D4A78C56A2BD31A7D /* Assets.xcassets */; }; /* End PBXBuildFile section */ +/* Begin PBXCopyFilesBuildPhase section */ + 0ABB76F2D4011A4AF5186FCA /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 32AC9F2183DD11F130D4A91D /* libfilament.xcframework in Embed Frameworks */, + AE63AFEA7E7D507BB677C158 /* libbackend.xcframework in Embed Frameworks */, + AA5AB498C5A6117057B06824 /* libfilaflat.xcframework in Embed Frameworks */, + C8C8BF3416B9B37003F1031E /* libktxreader.xcframework in Embed Frameworks */, + BFE92829375EE1DBA1E4A689 /* libfilabridge.xcframework in Embed Frameworks */, + 0DE5DD77BF1B9049D63B76D0 /* libutils.xcframework in Embed Frameworks */, + 2AABB2C1262EBA9553666078 /* libsmol-v.xcframework in Embed Frameworks */, + 6A5D5E984CA862B943742745 /* libgeometry.xcframework in Embed Frameworks */, + D0E54C592A378E549C96A54D /* libibl.xcframework in Embed Frameworks */, + 305D6C983D22F7BC74FC76C7 /* libabseil.xcframework in Embed Frameworks */, + E090ED826EE54CA2EA611D83 /* libzstd.xcframework in Embed Frameworks */, + 8095A6D37F6F1C9C13BBFEA8 /* libfilamat.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 056C16E7805E8D33D4C8F7B4 /* FilamentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentView.h; sourceTree = ""; }; + 0ED51915983DAE97083D44EF /* libabseil.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libabseil.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework"; sourceTree = ""; }; 13DDE7723EC1A6EFCA4D2D58 /* backend-test.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "backend-test.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 17364ECD407006EEBDC06024 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 19CBBB6C426E8D038BDAC97B /* libktxreader.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libktxreader.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework"; sourceTree = ""; }; 276A0ADD5B521719BBB1DA21 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; 33D80A4472074C601C57C773 /* ViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = ViewController.mm; sourceTree = ""; }; + 4C3E6E0AB2BA7D686E424D8F /* libzstd.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libzstd.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework"; sourceTree = ""; }; 5FDB89AD408A508D6CB74C32 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 603475CEE63507AA04A9B21A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 7C969D515221A7739C68F3AC /* libutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework"; sourceTree = ""; }; + 8632D4625CFCBD32A46772B5 /* libbackend.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbackend.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework"; sourceTree = ""; }; + 8F108854ADC54BBAA29C2055 /* libsmol-v.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libsmol-v.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework"; sourceTree = ""; }; + 912652335565C18B252345DE /* libfilament.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilament.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework"; sourceTree = ""; }; 93394D7D4A78C56A2BD31A7D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 9E8375B927AFDFD1069016D1 /* libfilaflat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilaflat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework"; sourceTree = ""; }; A283B2D6DB365368855E2D7A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; AE6C78F32A0494087B0CEF32 /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = ""; }; + B2A3753419FC4A7D4C039868 /* libfilabridge.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilabridge.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework"; sourceTree = ""; }; B54DFEB4DB6ACC0289FA3046 /* FilamentView.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FilamentView.mm; sourceTree = ""; }; + C4BDDF85AADA2069C0F9FBAE /* libfilamat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilamat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilamat.xcframework"; sourceTree = ""; }; C76230D48038E8109EC121B0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + D1E30700B368B5F84196FD97 /* libibl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libibl.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework"; sourceTree = ""; }; + DB3F32D8D3D7310FA3A0C1A1 /* libgeometry.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgeometry.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework"; sourceTree = ""; }; /* End PBXFileReference section */ +/* Begin PBXFrameworksBuildPhase section */ + 5E31B50ED1338E6ADE1FA49A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F5E844BFD77174F770543A87 /* libfilament.xcframework in Frameworks */, + 8402B2AC6D081D1E8E065552 /* libbackend.xcframework in Frameworks */, + 3D73E90782CC3A2124DF046F /* libfilaflat.xcframework in Frameworks */, + FB393C813D7A30404A2DEF23 /* libktxreader.xcframework in Frameworks */, + 88C039F10343B8598FD5FF7F /* libfilabridge.xcframework in Frameworks */, + 7E671E777FDB5F34AAA13D5A /* libutils.xcframework in Frameworks */, + D5B2F0A85F7C6F352AA99DF1 /* libsmol-v.xcframework in Frameworks */, + 66014C413BCBF00E8E6DAF76 /* libgeometry.xcframework in Frameworks */, + D472EB54D462394FE99DCE2B /* libibl.xcframework in Frameworks */, + 6C8A7D49A8F689E20D60F4D4 /* libabseil.xcframework in Frameworks */, + E6163776920A1643B1ED01FA /* libzstd.xcframework in Frameworks */, + 7D8D3494388D7BF4D9FE4FCE /* libfilamat.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + /* Begin PBXGroup section */ 05CA69F10D830E40A8FB561D /* Products */ = { isa = PBXGroup; @@ -44,10 +127,30 @@ isa = PBXGroup; children = ( FE198F0E1EF047534F8F3128 /* backend-test */, + 81BF22C13654E58F622E6BEC /* Frameworks */, 05CA69F10D830E40A8FB561D /* Products */, ); sourceTree = ""; }; + 81BF22C13654E58F622E6BEC /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0ED51915983DAE97083D44EF /* libabseil.xcframework */, + 8632D4625CFCBD32A46772B5 /* libbackend.xcframework */, + B2A3753419FC4A7D4C039868 /* libfilabridge.xcframework */, + 9E8375B927AFDFD1069016D1 /* libfilaflat.xcframework */, + C4BDDF85AADA2069C0F9FBAE /* libfilamat.xcframework */, + 912652335565C18B252345DE /* libfilament.xcframework */, + DB3F32D8D3D7310FA3A0C1A1 /* libgeometry.xcframework */, + D1E30700B368B5F84196FD97 /* libibl.xcframework */, + 19CBBB6C426E8D038BDAC97B /* libktxreader.xcframework */, + 8F108854ADC54BBAA29C2055 /* libsmol-v.xcframework */, + 7C969D515221A7739C68F3AC /* libutils.xcframework */, + 4C3E6E0AB2BA7D686E424D8F /* libzstd.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; FE198F0E1EF047534F8F3128 /* backend-test */ = { isa = PBXGroup; children = ( @@ -57,11 +160,11 @@ 056C16E7805E8D33D4C8F7B4 /* FilamentView.h */, B54DFEB4DB6ACC0289FA3046 /* FilamentView.mm */, A283B2D6DB365368855E2D7A /* Info.plist */, - EB0A767D257F3D05BE9F0960 /* LaunchScreen.storyboard */, AE6C78F32A0494087B0CEF32 /* main.mm */, - B63A6E45E40F58037ABD8F84 /* Main.storyboard */, 276A0ADD5B521719BBB1DA21 /* ViewController.h */, 33D80A4472074C601C57C773 /* ViewController.mm */, + EB0A767D257F3D05BE9F0960 /* LaunchScreen.storyboard */, + B63A6E45E40F58037ABD8F84 /* Main.storyboard */, ); path = "backend-test"; sourceTree = ""; @@ -75,6 +178,8 @@ buildPhases = ( 445863ED54C294354A388281 /* Sources */, BD71575ED7ED3237FEFD94C7 /* Resources */, + 5E31B50ED1338E6ADE1FA49A /* Frameworks */, + 0ABB76F2D4011A4AF5186FCA /* Embed Frameworks */, ); buildRules = ( ); @@ -95,9 +200,10 @@ attributes = { BuildIndependentTargetsInParallel = YES; LastUpgradeCheck = 1430; + TargetAttributes = { + }; }; buildConfigurationList = E89E1EEA671E49DBAC9D5A9C /* Build configuration list for PBXProject "backend-test" */; - compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -106,7 +212,8 @@ ); mainGroup = 3D2B936C924E0DB70941EE6D; minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 54; + preferredProjectObjectVersion = 77; + productRefGroup = 05CA69F10D830E40A8FB561D /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -168,7 +275,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -224,12 +331,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-debug"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_OPENGL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "backend-test/Info.plist"; @@ -238,24 +350,8 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-debug/filament/lib/universal", - ); OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lfilamat", - "-force_load ../../../out/ios-debug/filament/lib/arm64/libbackend_test.a", + "-force_load $(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/lib/$(CURRENT_ARCH)-$(PLATFORM_NAME)/libbackend_test.a", ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.backend-test"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; @@ -270,7 +366,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -333,12 +429,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-release"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_OPENGL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-release/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "backend-test/Info.plist"; @@ -347,24 +448,8 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-release/filament/lib/universal", - ); OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lfilamat", - "-force_load ../../../out/ios-debug/filament/lib/arm64/libbackend_test.a", + "-force_load $(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/lib/$(CURRENT_ARCH)-$(PLATFORM_NAME)/libbackend_test.a", ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.backend-test"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; @@ -379,7 +464,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -435,12 +520,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-debug"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_METAL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "backend-test/Info.plist"; @@ -449,24 +539,8 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-debug/filament/lib/universal", - ); OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lfilamat", - "-force_load ../../../out/ios-debug/filament/lib/arm64/libbackend_test.a", + "-force_load $(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/lib/$(CURRENT_ARCH)-$(PLATFORM_NAME)/libbackend_test.a", ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.backend-test"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; @@ -482,12 +556,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-release"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_METAL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-release/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "backend-test/Info.plist"; @@ -496,24 +575,8 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-release/filament/lib/universal", - ); OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lfilamat", - "-force_load ../../../out/ios-debug/filament/lib/arm64/libbackend_test.a", + "-force_load $(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/lib/$(CURRENT_ARCH)-$(PLATFORM_NAME)/libbackend_test.a", ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.backend-test"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; @@ -528,7 +591,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; diff --git a/ios/samples/backend-test/project.yml b/ios/samples/backend-test/project.yml index 37c28b099feb..bd17c7c1e3aa 100644 --- a/ios/samples/backend-test/project.yml +++ b/ios/samples/backend-test/project.yml @@ -6,8 +6,10 @@ targets: backend-test: templates: - FilamentApp + dependencies: + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilamat.xcframework settings: base: # Because each test case is a separate file, the -force_load flag is necessary to prevent the # linker from removing "unused" symbols. - OTHER_LDFLAGS: ["-lfilamat", "-force_load ../../../out/ios-debug/filament/lib/arm64/libbackend_test.a"] + OTHER_LDFLAGS: ["-force_load $(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/lib/$(CURRENT_ARCH)-$(PLATFORM_NAME)/libbackend_test.a"] diff --git a/ios/samples/gltf-viewer/build-resources.sh b/ios/samples/gltf-viewer/build-resources.sh index 9818e87aa222..9862eb239a5a 100755 --- a/ios/samples/gltf-viewer/build-resources.sh +++ b/ios/samples/gltf-viewer/build-resources.sh @@ -10,7 +10,7 @@ set -e HOST_TOOLS_PATH="${HOST_TOOLS_PATH:-../../../out/release/filament/bin}" -cmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1` +cmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1` # Ensure that the required tools are present in the out/ directory. # These can be built by running ./build.sh -p desktop -i release at Filament's root directory. diff --git a/ios/samples/gltf-viewer/gltf-viewer.xcodeproj/project.pbxproj b/ios/samples/gltf-viewer/gltf-viewer.xcodeproj/project.pbxproj index bca11d6f8d09..86c1554f00f6 100644 --- a/ios/samples/gltf-viewer/gltf-viewer.xcodeproj/project.pbxproj +++ b/ios/samples/gltf-viewer/gltf-viewer.xcodeproj/project.pbxproj @@ -3,40 +3,178 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 77; objects = { /* Begin PBXBuildFile section */ 00101E55E74547D6C2FD8C03 /* default_env_ibl.ktx in Resources */ = {isa = PBXBuildFile; fileRef = A027015F6F283E92C379F0B1 /* default_env_ibl.ktx */; }; + 0A6463A23D9E0C766EF24559 /* libgeometry.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61B9468E1B7FED7F00513152 /* libgeometry.xcframework */; }; + 10A51B4DB601FEF9A6F1C0E3 /* libgeometry.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 61B9468E1B7FED7F00513152 /* libgeometry.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 10EB5B0EBD334A09BFC3B9DF /* libibl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D2FB034B2AD911A82D44F4E /* libibl.xcframework */; }; 1297B48507BF2849751AE0E6 /* FILViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3B5A2C1598614ED63098A783 /* FILViewController.mm */; }; + 1404696E6E1E5E4D265773B8 /* libsmol-v.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = C766C894259479FC62B7C8B4 /* libsmol-v.xcframework */; }; + 14D3627324AE91F7B9C74745 /* libuberzlib.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F7030A0C0BABAD05CDEAFDE8 /* libuberzlib.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 174327B08EFFA8255829FF49 /* libbackend.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 1CFC9093A6EF27302A37326E /* libbackend.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 1E42FEC5AE043BDDCE3CB0A4 /* libcamutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 2B534EACCD70A2DA1623F743 /* libcamutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 22EBD00922E4FBAE5F20AF3B /* libviewer.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52712E0BD50CA883190B6C1D /* libviewer.xcframework */; }; 285A74424AF5E3014363F8E6 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 14BA4B8B6A697847DA9934D2 /* Main.storyboard */; }; + 2B0B9C8428D402D919CAC47E /* libimageio-lite.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 60330C4B6F21AA47B5524999 /* libimageio-lite.xcframework */; }; + 318A6749D6D4258385B67447 /* libzstd.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75EFC385D49A53E005466F45 /* libzstd.xcframework */; }; + 36E0764917CB1EE729C6B771 /* libfilaflat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CF656283054DABCE73A96F57 /* libfilaflat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 379B9C62A9AB782FDBC0E16C /* libabseil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6BFA0007FC472C65083E2452 /* libabseil.xcframework */; }; + 3CF14DE9557B15702D1CC5A9 /* libstb.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 487A93E37417074697C5AEE1 /* libstb.xcframework */; }; + 4033B9273D8B4C4631200EC1 /* libimage.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F6D55F40189E2AD59138BFC /* libimage.xcframework */; }; 453F7CCB3A029F9604857C1C /* FILModelView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1F16324F2F287CB27E1A84EB /* FILModelView.mm */; }; 45F28F70A616F4B5C67FEC66 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DF545E3F8FD553E334F5D6D6 /* Assets.xcassets */; }; + 4C287DB6F93BD352927F003A /* libabseil.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6BFA0007FC472C65083E2452 /* libabseil.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 4FE0C24C9B962C9F7439C9D4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FF7EE9D5DD74F1A740C0D88 /* main.m */; }; 58EBAAC97B7EA63E102CDCDB /* BusterDrone in Resources */ = {isa = PBXBuildFile; fileRef = 7F78E613984102280C822052 /* BusterDrone */; }; 5C706EF98086B64B4CB3EF9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A0A866F9B1B8D315E88D3D12 /* AppDelegate.m */; }; + 5FA818045C43856C7FFED3DB /* libcivetweb.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B41054C75146CF46900EB674 /* libcivetweb.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 60EB0B4391BB0FB171A4481D /* libmeshoptimizer.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = F696C8553E8CC1A6416678CB /* libmeshoptimizer.xcframework */; }; + 698BA8E8638E7BD46D6BC337 /* libcamutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B534EACCD70A2DA1623F743 /* libcamutils.xcframework */; }; + 700D3E15E852F06C5D8AD28B /* libfilament.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 515259657B354C8F37272D16 /* libfilament.xcframework */; }; + 701EA9C2DFA93FC8D27E4831 /* libimage.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8F6D55F40189E2AD59138BFC /* libimage.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 7922299F8548416D6E8504AB /* libfilabridge.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 020557AD44AE2D4F9D99EC33 /* libfilabridge.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 7FB58BE1AF39FD8710F6903E /* libzstd.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 75EFC385D49A53E005466F45 /* libzstd.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 847436C12F9597E494EDD811 /* libutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 91CAACDECFDED76D0DBD8404 /* libutils.xcframework */; }; + 872D52205E6A17C440CEFB8B /* libbackend.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CFC9093A6EF27302A37326E /* libbackend.xcframework */; }; + 8949CFB77397BDDBB71B155C /* libfilaflat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = CF656283054DABCE73A96F57 /* libfilaflat.xcframework */; }; 8A03666082048B85BDE1C1CE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 21CA7296309BBFADBB0B00C3 /* LaunchScreen.storyboard */; }; + 902D317731C0347ED896B7D2 /* libuberzlib.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = F7030A0C0BABAD05CDEAFDE8 /* libuberzlib.xcframework */; }; + A5D1D0F914C22A76A15EF93E /* libktxreader.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = AF19593AAD6D35C6A9198C27 /* libktxreader.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + A6C04B690A802EBF133E23C4 /* libfilament.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 515259657B354C8F37272D16 /* libfilament.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; A7C7D42BDE57B77CB9D9C5D2 /* default_env_skybox.ktx in Resources */ = {isa = PBXBuildFile; fileRef = 5271315876D6BC61346DFD97 /* default_env_skybox.ktx */; }; + AB07A9DD1861F9233ADC5A9F /* libibl.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4D2FB034B2AD911A82D44F4E /* libibl.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + AE30134D543B24298D96BC03 /* libdracodec.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 7A57517D52C2BDCA859338D1 /* libdracodec.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + AEDF1CEAF183E92426DA594A /* libmeshoptimizer.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F696C8553E8CC1A6416678CB /* libmeshoptimizer.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + AFAD827230601E60E38FA771 /* libstb.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 487A93E37417074697C5AEE1 /* libstb.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + B54C62933C17714E465A76A5 /* libutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 91CAACDECFDED76D0DBD8404 /* libutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + C0D8E3E2C38F674A23427224 /* libuberarchive.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 25D5A93890B91F8C86BE2F0A /* libuberarchive.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + C427F6D58A977156565AE677 /* libcivetweb.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = B41054C75146CF46900EB674 /* libcivetweb.xcframework */; }; + C7A64F27B1A83023C1212E1C /* libdracodec.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7A57517D52C2BDCA859338D1 /* libdracodec.xcframework */; }; + CB3A6143B788613B58BAB28A /* libgltfio_core.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B9B11A731D26A94397D4B9B /* libgltfio_core.xcframework */; }; + CDD73BDF196F559F671AE616 /* libbasis_transcoder.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4EDA245B8F43311DD75A1F81 /* libbasis_transcoder.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + D3AE8B47D9F8509C8A875E39 /* libgltfio_core.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 5B9B11A731D26A94397D4B9B /* libgltfio_core.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + D89F33EFEDE5814BFA8D9892 /* libimageio-lite.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 60330C4B6F21AA47B5524999 /* libimageio-lite.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + D93CA0A2E8A487D040934121 /* libsmol-v.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C766C894259479FC62B7C8B4 /* libsmol-v.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + EFBDF01BC780CE2F40B83CE0 /* libbasis_transcoder.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EDA245B8F43311DD75A1F81 /* libbasis_transcoder.xcframework */; }; + F14C52ECDB8C27794AD54DB0 /* libuberarchive.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 25D5A93890B91F8C86BE2F0A /* libuberarchive.xcframework */; }; + F5B36F9395DFC29EA677B406 /* libktxreader.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF19593AAD6D35C6A9198C27 /* libktxreader.xcframework */; }; + F682DAD214D9F8E2DD36A110 /* libviewer.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 52712E0BD50CA883190B6C1D /* libviewer.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + FC3919370067F7747B9C4C53 /* libfilabridge.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 020557AD44AE2D4F9D99EC33 /* libfilabridge.xcframework */; }; /* End PBXBuildFile section */ +/* Begin PBXCopyFilesBuildPhase section */ + 26182010104312BFB0BA3CE4 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + A6C04B690A802EBF133E23C4 /* libfilament.xcframework in Embed Frameworks */, + 174327B08EFFA8255829FF49 /* libbackend.xcframework in Embed Frameworks */, + 36E0764917CB1EE729C6B771 /* libfilaflat.xcframework in Embed Frameworks */, + A5D1D0F914C22A76A15EF93E /* libktxreader.xcframework in Embed Frameworks */, + 7922299F8548416D6E8504AB /* libfilabridge.xcframework in Embed Frameworks */, + B54C62933C17714E465A76A5 /* libutils.xcframework in Embed Frameworks */, + D93CA0A2E8A487D040934121 /* libsmol-v.xcframework in Embed Frameworks */, + 10A51B4DB601FEF9A6F1C0E3 /* libgeometry.xcframework in Embed Frameworks */, + AB07A9DD1861F9233ADC5A9F /* libibl.xcframework in Embed Frameworks */, + 4C287DB6F93BD352927F003A /* libabseil.xcframework in Embed Frameworks */, + 7FB58BE1AF39FD8710F6903E /* libzstd.xcframework in Embed Frameworks */, + D3AE8B47D9F8509C8A875E39 /* libgltfio_core.xcframework in Embed Frameworks */, + C0D8E3E2C38F674A23427224 /* libuberarchive.xcframework in Embed Frameworks */, + 701EA9C2DFA93FC8D27E4831 /* libimage.xcframework in Embed Frameworks */, + AFAD827230601E60E38FA771 /* libstb.xcframework in Embed Frameworks */, + CDD73BDF196F559F671AE616 /* libbasis_transcoder.xcframework in Embed Frameworks */, + 1E42FEC5AE043BDDCE3CB0A4 /* libcamutils.xcframework in Embed Frameworks */, + AE30134D543B24298D96BC03 /* libdracodec.xcframework in Embed Frameworks */, + AEDF1CEAF183E92426DA594A /* libmeshoptimizer.xcframework in Embed Frameworks */, + F682DAD214D9F8E2DD36A110 /* libviewer.xcframework in Embed Frameworks */, + 5FA818045C43856C7FFED3DB /* libcivetweb.xcframework in Embed Frameworks */, + 14D3627324AE91F7B9C74745 /* libuberzlib.xcframework in Embed Frameworks */, + D89F33EFEDE5814BFA8D9892 /* libimageio-lite.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ + 020557AD44AE2D4F9D99EC33 /* libfilabridge.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilabridge.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework"; sourceTree = ""; }; 03A535A718B2F64A70C5F231 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 1CFC9093A6EF27302A37326E /* libbackend.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbackend.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework"; sourceTree = ""; }; 1ED9318FEC158171D99C0857 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 1F16324F2F287CB27E1A84EB /* FILModelView.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FILModelView.mm; sourceTree = ""; }; 1FF7EE9D5DD74F1A740C0D88 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 25D5A93890B91F8C86BE2F0A /* libuberarchive.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libuberarchive.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberarchive.xcframework"; sourceTree = ""; }; + 2B534EACCD70A2DA1623F743 /* libcamutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libcamutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libcamutils.xcframework"; sourceTree = ""; }; 2B973C3E0FE0EEED37D41D32 /* FILModelView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FILModelView.h; sourceTree = ""; }; 3B5A2C1598614ED63098A783 /* FILViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FILViewController.mm; sourceTree = ""; }; + 487A93E37417074697C5AEE1 /* libstb.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libstb.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libstb.xcframework"; sourceTree = ""; }; + 4D2FB034B2AD911A82D44F4E /* libibl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libibl.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework"; sourceTree = ""; }; + 4EDA245B8F43311DD75A1F81 /* libbasis_transcoder.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbasis_transcoder.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbasis_transcoder.xcframework"; sourceTree = ""; }; + 515259657B354C8F37272D16 /* libfilament.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilament.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework"; sourceTree = ""; }; + 52712E0BD50CA883190B6C1D /* libviewer.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libviewer.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libviewer.xcframework"; sourceTree = ""; }; 5271315876D6BC61346DFD97 /* default_env_skybox.ktx */ = {isa = PBXFileReference; path = default_env_skybox.ktx; sourceTree = ""; }; + 5B9B11A731D26A94397D4B9B /* libgltfio_core.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgltfio_core.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgltfio_core.xcframework"; sourceTree = ""; }; + 60330C4B6F21AA47B5524999 /* libimageio-lite.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libimageio-lite.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimageio-lite.xcframework"; sourceTree = ""; }; + 61B9468E1B7FED7F00513152 /* libgeometry.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgeometry.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework"; sourceTree = ""; }; + 6BFA0007FC472C65083E2452 /* libabseil.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libabseil.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework"; sourceTree = ""; }; 6E6BB885F2B193E786CD9F14 /* FILViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FILViewController.h; sourceTree = ""; }; + 75EFC385D49A53E005466F45 /* libzstd.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libzstd.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework"; sourceTree = ""; }; + 7A57517D52C2BDCA859338D1 /* libdracodec.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libdracodec.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libdracodec.xcframework"; sourceTree = ""; }; 7F78E613984102280C822052 /* BusterDrone */ = {isa = PBXFileReference; lastKnownFileType = folder; name = BusterDrone; path = ../../../third_party/models/BusterDrone; sourceTree = SOURCE_ROOT; }; + 8F6D55F40189E2AD59138BFC /* libimage.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libimage.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework"; sourceTree = ""; }; + 91CAACDECFDED76D0DBD8404 /* libutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework"; sourceTree = ""; }; 9ADEA6DE7305D0B8CCFFA53D /* gltf-viewer.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "gltf-viewer.app"; sourceTree = BUILT_PRODUCTS_DIR; }; A027015F6F283E92C379F0B1 /* default_env_ibl.ktx */ = {isa = PBXFileReference; path = default_env_ibl.ktx; sourceTree = ""; }; A0A866F9B1B8D315E88D3D12 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + AF19593AAD6D35C6A9198C27 /* libktxreader.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libktxreader.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework"; sourceTree = ""; }; + B41054C75146CF46900EB674 /* libcivetweb.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libcivetweb.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libcivetweb.xcframework"; sourceTree = ""; }; B9C391BBD90EB54D27F8E4FD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + C766C894259479FC62B7C8B4 /* libsmol-v.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libsmol-v.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework"; sourceTree = ""; }; C7ECAA95F4A55C69B948F806 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + CF656283054DABCE73A96F57 /* libfilaflat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilaflat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework"; sourceTree = ""; }; DF545E3F8FD553E334F5D6D6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + F696C8553E8CC1A6416678CB /* libmeshoptimizer.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libmeshoptimizer.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework"; sourceTree = ""; }; + F7030A0C0BABAD05CDEAFDE8 /* libuberzlib.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libuberzlib.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberzlib.xcframework"; sourceTree = ""; }; /* End PBXFileReference section */ +/* Begin PBXFrameworksBuildPhase section */ + E646271806112A138895CBE3 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 700D3E15E852F06C5D8AD28B /* libfilament.xcframework in Frameworks */, + 872D52205E6A17C440CEFB8B /* libbackend.xcframework in Frameworks */, + 8949CFB77397BDDBB71B155C /* libfilaflat.xcframework in Frameworks */, + F5B36F9395DFC29EA677B406 /* libktxreader.xcframework in Frameworks */, + FC3919370067F7747B9C4C53 /* libfilabridge.xcframework in Frameworks */, + 847436C12F9597E494EDD811 /* libutils.xcframework in Frameworks */, + 1404696E6E1E5E4D265773B8 /* libsmol-v.xcframework in Frameworks */, + 0A6463A23D9E0C766EF24559 /* libgeometry.xcframework in Frameworks */, + 10EB5B0EBD334A09BFC3B9DF /* libibl.xcframework in Frameworks */, + 379B9C62A9AB782FDBC0E16C /* libabseil.xcframework in Frameworks */, + 318A6749D6D4258385B67447 /* libzstd.xcframework in Frameworks */, + CB3A6143B788613B58BAB28A /* libgltfio_core.xcframework in Frameworks */, + F14C52ECDB8C27794AD54DB0 /* libuberarchive.xcframework in Frameworks */, + 4033B9273D8B4C4631200EC1 /* libimage.xcframework in Frameworks */, + 3CF14DE9557B15702D1CC5A9 /* libstb.xcframework in Frameworks */, + EFBDF01BC780CE2F40B83CE0 /* libbasis_transcoder.xcframework in Frameworks */, + 698BA8E8638E7BD46D6BC337 /* libcamutils.xcframework in Frameworks */, + C7A64F27B1A83023C1212E1C /* libdracodec.xcframework in Frameworks */, + 60EB0B4391BB0FB171A4481D /* libmeshoptimizer.xcframework in Frameworks */, + 22EBD00922E4FBAE5F20AF3B /* libviewer.xcframework in Frameworks */, + C427F6D58A977156565AE677 /* libcivetweb.xcframework in Frameworks */, + 902D317731C0347ED896B7D2 /* libuberzlib.xcframework in Frameworks */, + 2B0B9C8428D402D919CAC47E /* libimageio-lite.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + /* Begin PBXGroup section */ 2678CEA2FDBFE6D6DC1D4D71 /* gltf-viewer */ = { isa = PBXGroup; @@ -65,8 +203,8 @@ children = ( DF545E3F8FD553E334F5D6D6 /* Assets.xcassets */, B9C391BBD90EB54D27F8E4FD /* Info.plist */, - 21CA7296309BBFADBB0B00C3 /* LaunchScreen.storyboard */, 1FF7EE9D5DD74F1A740C0D88 /* main.m */, + 21CA7296309BBFADBB0B00C3 /* LaunchScreen.storyboard */, 14BA4B8B6A697847DA9934D2 /* Main.storyboard */, ); path = SupportFiles; @@ -78,10 +216,41 @@ 7F78E613984102280C822052 /* BusterDrone */, E102A6C527928715EF7B0497 /* default_env */, 2678CEA2FDBFE6D6DC1D4D71 /* gltf-viewer */, + 8826A1E62E0B87AA4A9982D5 /* Frameworks */, 3BFD6EBD6D97D6F1C40F1C90 /* Products */, ); sourceTree = ""; }; + 8826A1E62E0B87AA4A9982D5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6BFA0007FC472C65083E2452 /* libabseil.xcframework */, + 1CFC9093A6EF27302A37326E /* libbackend.xcframework */, + 4EDA245B8F43311DD75A1F81 /* libbasis_transcoder.xcframework */, + 2B534EACCD70A2DA1623F743 /* libcamutils.xcframework */, + B41054C75146CF46900EB674 /* libcivetweb.xcframework */, + 7A57517D52C2BDCA859338D1 /* libdracodec.xcframework */, + 020557AD44AE2D4F9D99EC33 /* libfilabridge.xcframework */, + CF656283054DABCE73A96F57 /* libfilaflat.xcframework */, + 515259657B354C8F37272D16 /* libfilament.xcframework */, + 61B9468E1B7FED7F00513152 /* libgeometry.xcframework */, + 5B9B11A731D26A94397D4B9B /* libgltfio_core.xcframework */, + 4D2FB034B2AD911A82D44F4E /* libibl.xcframework */, + 8F6D55F40189E2AD59138BFC /* libimage.xcframework */, + 60330C4B6F21AA47B5524999 /* libimageio-lite.xcframework */, + AF19593AAD6D35C6A9198C27 /* libktxreader.xcframework */, + F696C8553E8CC1A6416678CB /* libmeshoptimizer.xcframework */, + C766C894259479FC62B7C8B4 /* libsmol-v.xcframework */, + 487A93E37417074697C5AEE1 /* libstb.xcframework */, + 25D5A93890B91F8C86BE2F0A /* libuberarchive.xcframework */, + F7030A0C0BABAD05CDEAFDE8 /* libuberzlib.xcframework */, + 91CAACDECFDED76D0DBD8404 /* libutils.xcframework */, + 52712E0BD50CA883190B6C1D /* libviewer.xcframework */, + 75EFC385D49A53E005466F45 /* libzstd.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; E102A6C527928715EF7B0497 /* default_env */ = { isa = PBXGroup; children = ( @@ -102,6 +271,8 @@ 0B375996CE4EBC4A5B258C27 /* Build Resources */, C8F38C978C83CD5335A21F72 /* Sources */, 7D3B1B99EEAFB6F53ECBAA5A /* Resources */, + E646271806112A138895CBE3 /* Frameworks */, + 26182010104312BFB0BA3CE4 /* Embed Frameworks */, ); buildRules = ( ); @@ -122,9 +293,10 @@ attributes = { BuildIndependentTargetsInParallel = YES; LastUpgradeCheck = 1430; + TargetAttributes = { + }; }; buildConfigurationList = 90327DE42AE5DF12C4BD2113 /* Build configuration list for PBXProject "gltf-viewer" */; - compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -133,7 +305,8 @@ ); mainGroup = 7DB4500696DB13904CDF40C4; minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 56; + preferredProjectObjectVersion = 77; + productRefGroup = 3BFD6EBD6D97D6F1C40F1C90 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -167,7 +340,7 @@ inputFileListPaths = ( ); inputPaths = ( - "$(SRCROOT)/../../../third_party/environments/lightroom_14b.hdr", + ../../../third_party/environments/lightroom_14b.hdr, ); name = "Build Resources"; outputFileListPaths = ( @@ -178,7 +351,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The gltf-viewer app requires two resources:\n# 1. The IBL image\n# 2. The skybox image\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\ncmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/default_env\" \\\n --format=ktx --size=256 --extract-blur=0.1 \\\n \"${PROJECT_DIR}/../../../third_party/environments/lightroom_14b.hdr\"\n"; + shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The gltf-viewer app requires two resources:\n# 1. The IBL image\n# 2. The skybox image\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\ncmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/default_env\" \\\n --format=ktx --size=256 --extract-blur=0.1 \\\n \"${PROJECT_DIR}/../../../third_party/environments/lightroom_14b.hdr\"\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -222,7 +395,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -284,7 +457,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -339,7 +512,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -395,12 +568,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-release"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_METAL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-release/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "gltf-viewer/SupportFiles/Info.plist"; @@ -409,36 +587,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-release/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lgltfio_core", - "-luberarchive", - "-limage", - "-lstb", - "-lbasis_transcoder", - "-lzstd", - "-lcamutils", - "-ldracodec", - "-lmeshoptimizer", - "-lviewer", - "-lcivetweb", - "-luberzlib", - "-limageio-lite", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.gltf-viewer"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -453,12 +601,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-debug"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_METAL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "gltf-viewer/SupportFiles/Info.plist"; @@ -467,36 +620,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-debug/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lgltfio_core", - "-luberarchive", - "-limage", - "-lstb", - "-lbasis_transcoder", - "-lzstd", - "-lcamutils", - "-ldracodec", - "-lmeshoptimizer", - "-lviewer", - "-lcivetweb", - "-luberzlib", - "-limageio-lite", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.gltf-viewer"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -510,7 +633,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -573,12 +696,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-release"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_OPENGL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-release/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "gltf-viewer/SupportFiles/Info.plist"; @@ -587,36 +715,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-release/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lgltfio_core", - "-luberarchive", - "-limage", - "-lstb", - "-lbasis_transcoder", - "-lzstd", - "-lcamutils", - "-ldracodec", - "-lmeshoptimizer", - "-lviewer", - "-lcivetweb", - "-luberzlib", - "-limageio-lite", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.gltf-viewer"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -631,12 +729,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-debug"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_OPENGL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "gltf-viewer/SupportFiles/Info.plist"; @@ -645,36 +748,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-debug/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lgltfio_core", - "-luberarchive", - "-limage", - "-lstb", - "-lbasis_transcoder", - "-lzstd", - "-lcamutils", - "-ldracodec", - "-lmeshoptimizer", - "-lviewer", - "-lcivetweb", - "-luberzlib", - "-limageio-lite", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.gltf-viewer"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; diff --git a/ios/samples/gltf-viewer/project.yml b/ios/samples/gltf-viewer/project.yml index 356ab48ad4cc..5c380fde42fe 100644 --- a/ios/samples/gltf-viewer/project.yml +++ b/ios/samples/gltf-viewer/project.yml @@ -17,16 +17,24 @@ targets: optional: true templates: - FilamentApp - settings: - base: - OTHER_LDFLAGS: ["-lgltfio_core", "-luberarchive", "-limage", "-lstb", "-lbasis_transcoder", - "-lzstd", "-lcamutils", "-ldracodec", "-lmeshoptimizer", "-lviewer", "-lcivetweb", - "-luberzlib", "-limageio-lite"] + dependencies: + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgltfio_core.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberarchive.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libstb.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbasis_transcoder.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libcamutils.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libdracodec.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libviewer.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libcivetweb.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberzlib.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimageio-lite.xcframework preBuildScripts: - path: build-resources.sh name: Build Resources inputFiles: - - $(SRCROOT)/../../../third_party/environments/lightroom_14b.hdr + - ../../../third_party/environments/lightroom_14b.hdr outputFiles: - $(SRCROOT)/generated/default_env/default_env_ibl.ktx - $(SRCROOT)/generated/default_env/default_env_skybox.ktx diff --git a/ios/samples/hello-ar/build-resources.sh b/ios/samples/hello-ar/build-resources.sh index a2284101ac58..7bed8e6ff92a 100755 --- a/ios/samples/hello-ar/build-resources.sh +++ b/ios/samples/hello-ar/build-resources.sh @@ -14,10 +14,10 @@ set -e HOST_TOOLS_PATH="${HOST_TOOLS_PATH:-../../../out/release/filament/bin}" -filamesh_path=`find ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1` -matc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1` -resgen_path=`find ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1` -cmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1` +filamesh_path=`find -L ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1` +matc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1` +resgen_path=`find -L ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1` +cmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1` # Ensure that the required tools are present in the out/ directory. # These can be built by running ./build.sh -p desktop -i release at Filament's root directory. diff --git a/ios/samples/hello-ar/hello-ar.xcodeproj/project.pbxproj b/ios/samples/hello-ar/hello-ar.xcodeproj/project.pbxproj index 881f30672e9d..5bb94bc0a89f 100644 --- a/ios/samples/hello-ar/hello-ar.xcodeproj/project.pbxproj +++ b/ios/samples/hello-ar/hello-ar.xcodeproj/project.pbxproj @@ -3,44 +3,113 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 77; objects = { /* Begin PBXBuildFile section */ + 01DEF0C8AAF14D275D5E731B /* libgeometry.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D3D6EFC9EE7349AC9F4F845A /* libgeometry.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 0704BBFECEFCE6618E4A67F7 /* libfilabridge.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 67D8E02D1AF661E4EF7CC2CD /* libfilabridge.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 072B1333A85F99F6FBA10846 /* libzstd.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = E238CF2D5E37556427C00675 /* libzstd.xcframework */; }; + 091D995885B1312DA4322F31 /* libsmol-v.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0DE88103BBBE542FC5D46B1 /* libsmol-v.xcframework */; }; + 11DE997161B2D3272247EE72 /* libbackend.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9E445414106E7103104FC16C /* libbackend.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 1EFC9E499E3733CF230DAECB /* libabseil.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DB899E40418A88883E6ED2E4 /* libabseil.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 2956D56161744254E2FFD353 /* libgeometry.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = D3D6EFC9EE7349AC9F4F845A /* libgeometry.xcframework */; }; + 2B4ED44D08F36953D3D111CF /* libfilaflat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C9D99ABAB340140BF94D57B3 /* libfilaflat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 4FAC85567A730FCCB7B3B6EC /* FilamentApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CF21F54926F34F027F4FCEA4 /* FilamentApp.cpp */; }; + 50F0F62A949F9DB17E1E102D /* libmeshoptimizer.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CA1720B9D4D55AB6B8513B0 /* libmeshoptimizer.xcframework */; }; 5432120E716355C4A519ABC6 /* FilamentArViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = AA47852B486CBD549FA68729 /* FilamentArViewController.mm */; }; + 5FEA2EC1B8A6FECCACA5FAFA /* libutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 644F36437FC03CCC25AC6EFC /* libutils.xcframework */; }; 66754FE8EF26B5335C0CC9FF /* FullScreenTriangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05D9AFA7CFC6498FE2A8C6A5 /* FullScreenTriangle.cpp */; }; + 6D2DAB291A29345E5179ECD8 /* libfilament.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 87261693EC970989615C5AE7 /* libfilament.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 6DF5D6B097AC3C124C576DD1 /* libfilabridge.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 67D8E02D1AF661E4EF7CC2CD /* libfilabridge.xcframework */; }; + 819CEF9004BAA1BD59EB3ADE /* libktxreader.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A8E5A38F197D487277FDED20 /* libktxreader.xcframework */; }; + 84AC34B44E1AEE96BA8C53B0 /* libimage.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 586F9BE85A436EBA56181848 /* libimage.xcframework */; }; + 85C9CA885D3E9BA87AEA24E8 /* libsmol-v.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D0DE88103BBBE542FC5D46B1 /* libsmol-v.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 89E16D259F951AA787C3B265 /* libutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 644F36437FC03CCC25AC6EFC /* libutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9718E9B12B1D353DF9E66311 /* libibl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6422176EDC22262D20C51A8 /* libibl.xcframework */; }; 99BD70EFF08A1419FE539A44 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AE684A73135705C4EDAA7C53 /* Assets.xcassets */; }; ACF87F0F3989EF583E90E499 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B6B92BD0FA8E6F9CFEAE1707 /* main.m */; }; + AE4035E76423745AFC8CEB58 /* libfilameshio.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 16ED3BF9A0D7194CECB86D55 /* libfilameshio.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; AEEFE325E8BDB00E30FDEC93 /* Resources.S in Sources */ = {isa = PBXBuildFile; fileRef = DD0010D60097DEAA82DAA089 /* Resources.S */; }; B28ED2F81785F13E0B9A3607 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = EC652AC3D2C91759215320C3 /* AppDelegate.m */; }; + B48D41A39CF5F4FDE5CF6770 /* libfilameshio.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 16ED3BF9A0D7194CECB86D55 /* libfilameshio.xcframework */; }; + B604AB5F246840D2CCF4762B /* libfilaflat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9D99ABAB340140BF94D57B3 /* libfilaflat.xcframework */; }; B8934FC46557424E705A2154 /* ARKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33B2CBA1A0F654632B39A45D /* ARKit.framework */; }; + BC6AAB72CD468EF04F684014 /* libabseil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB899E40418A88883E6ED2E4 /* libabseil.xcframework */; }; + CB7C1B8F335B873B77D15934 /* libmeshoptimizer.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4CA1720B9D4D55AB6B8513B0 /* libmeshoptimizer.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CBBBF68C2F58FF0F4FA81008 /* libimage.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 586F9BE85A436EBA56181848 /* libimage.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; CE6AB7B76D5EB580EFD90897 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AFCB91D87494B7FC879A7A5E /* Main.storyboard */; }; + CFCD1B57C3CDFA2AC3525EF6 /* libfilament.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 87261693EC970989615C5AE7 /* libfilament.xcframework */; }; + D56834764BC4D127736878DF /* libbackend.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9E445414106E7103104FC16C /* libbackend.xcframework */; }; + DD6C337BAEC527FA0F5DB4A3 /* libibl.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D6422176EDC22262D20C51A8 /* libibl.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; DEF78081F52F6A776242A599 /* FilamentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 53D025A0625708CC50AEA0DB /* FilamentView.m */; }; + E4C06B048BFA075CD9FB73AD /* libktxreader.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A8E5A38F197D487277FDED20 /* libktxreader.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + E92B00016D52070448DA66F6 /* libzstd.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E238CF2D5E37556427C00675 /* libzstd.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; F933D6701B0A0E90381E8030 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C88A8BDFC06D144D80EC052B /* LaunchScreen.storyboard */; }; /* End PBXBuildFile section */ +/* Begin PBXCopyFilesBuildPhase section */ + AA70CE1AA47836D72F588764 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 6D2DAB291A29345E5179ECD8 /* libfilament.xcframework in Embed Frameworks */, + 11DE997161B2D3272247EE72 /* libbackend.xcframework in Embed Frameworks */, + 2B4ED44D08F36953D3D111CF /* libfilaflat.xcframework in Embed Frameworks */, + E4C06B048BFA075CD9FB73AD /* libktxreader.xcframework in Embed Frameworks */, + 0704BBFECEFCE6618E4A67F7 /* libfilabridge.xcframework in Embed Frameworks */, + 89E16D259F951AA787C3B265 /* libutils.xcframework in Embed Frameworks */, + 85C9CA885D3E9BA87AEA24E8 /* libsmol-v.xcframework in Embed Frameworks */, + 01DEF0C8AAF14D275D5E731B /* libgeometry.xcframework in Embed Frameworks */, + DD6C337BAEC527FA0F5DB4A3 /* libibl.xcframework in Embed Frameworks */, + 1EFC9E499E3733CF230DAECB /* libabseil.xcframework in Embed Frameworks */, + E92B00016D52070448DA66F6 /* libzstd.xcframework in Embed Frameworks */, + AE4035E76423745AFC8CEB58 /* libfilameshio.xcframework in Embed Frameworks */, + CB7C1B8F335B873B77D15934 /* libmeshoptimizer.xcframework in Embed Frameworks */, + CBBBF68C2F58FF0F4FA81008 /* libimage.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 05D9AFA7CFC6498FE2A8C6A5 /* FullScreenTriangle.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FullScreenTriangle.cpp; sourceTree = ""; }; + 16ED3BF9A0D7194CECB86D55 /* libfilameshio.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilameshio.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilameshio.xcframework"; sourceTree = ""; }; 2AFEFBF6FE91628599F70817 /* clear_coat.mat */ = {isa = PBXFileReference; path = clear_coat.mat; sourceTree = ""; }; 2AFF66F1228C5F1079042FE2 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 33B2CBA1A0F654632B39A45D /* ARKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ARKit.framework; path = System/Library/Frameworks/ARKit.framework; sourceTree = SDKROOT; }; + 4CA1720B9D4D55AB6B8513B0 /* libmeshoptimizer.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libmeshoptimizer.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework"; sourceTree = ""; }; 4F8E6B508F8C5DE284DA2E34 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 53D025A0625708CC50AEA0DB /* FilamentView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FilamentView.m; sourceTree = ""; }; + 586F9BE85A436EBA56181848 /* libimage.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libimage.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework"; sourceTree = ""; }; 5B5D3E611DCDD9CD2C13B825 /* FilamentApp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentApp.h; sourceTree = ""; }; + 644F36437FC03CCC25AC6EFC /* libutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework"; sourceTree = ""; }; + 67D8E02D1AF661E4EF7CC2CD /* libfilabridge.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilabridge.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework"; sourceTree = ""; }; 6938BE21CFB8BEB2422BD490 /* FilamentArViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentArViewController.h; sourceTree = ""; }; 7C5E322BA97EEB4FB7EC030F /* camera_feed.mat */ = {isa = PBXFileReference; path = camera_feed.mat; sourceTree = ""; }; + 87261693EC970989615C5AE7 /* libfilament.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilament.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework"; sourceTree = ""; }; 8832D93E678057F9940A226D /* shadow_plane.mat */ = {isa = PBXFileReference; path = shadow_plane.mat; sourceTree = ""; }; 973EB840E804440B2AA0F93A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 9E445414106E7103104FC16C /* libbackend.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbackend.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework"; sourceTree = ""; }; A85B9D53F72DEE0374F8EBDF /* FullScreenTriangle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FullScreenTriangle.h; sourceTree = ""; }; + A8E5A38F197D487277FDED20 /* libktxreader.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libktxreader.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework"; sourceTree = ""; }; AA47852B486CBD549FA68729 /* FilamentArViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FilamentArViewController.mm; sourceTree = ""; }; AE684A73135705C4EDAA7C53 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; AF451D7D0FAAD069F916F51C /* MathHelpers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MathHelpers.h; sourceTree = ""; }; B6B92BD0FA8E6F9CFEAE1707 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + C9D99ABAB340140BF94D57B3 /* libfilaflat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilaflat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework"; sourceTree = ""; }; CF21F54926F34F027F4FCEA4 /* FilamentApp.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FilamentApp.cpp; sourceTree = ""; }; D0800F9FE0C390D084082637 /* FilamentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentView.h; sourceTree = ""; }; + D0DE88103BBBE542FC5D46B1 /* libsmol-v.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libsmol-v.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework"; sourceTree = ""; }; + D3D6EFC9EE7349AC9F4F845A /* libgeometry.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgeometry.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework"; sourceTree = ""; }; + D6422176EDC22262D20C51A8 /* libibl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libibl.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework"; sourceTree = ""; }; D7BA0AA38645722DCFA3490D /* hello-ar.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "hello-ar.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + DB899E40418A88883E6ED2E4 /* libabseil.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libabseil.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework"; sourceTree = ""; }; DD0010D60097DEAA82DAA089 /* Resources.S */ = {isa = PBXFileReference; path = Resources.S; sourceTree = ""; }; + E238CF2D5E37556427C00675 /* libzstd.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libzstd.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework"; sourceTree = ""; }; EC652AC3D2C91759215320C3 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; FCF16FE1B4146DE87F2B76F3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ @@ -50,7 +119,21 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + CFCD1B57C3CDFA2AC3525EF6 /* libfilament.xcframework in Frameworks */, + D56834764BC4D127736878DF /* libbackend.xcframework in Frameworks */, + B604AB5F246840D2CCF4762B /* libfilaflat.xcframework in Frameworks */, + 819CEF9004BAA1BD59EB3ADE /* libktxreader.xcframework in Frameworks */, + 6DF5D6B097AC3C124C576DD1 /* libfilabridge.xcframework in Frameworks */, + 5FEA2EC1B8A6FECCACA5FAFA /* libutils.xcframework in Frameworks */, + 091D995885B1312DA4322F31 /* libsmol-v.xcframework in Frameworks */, + 2956D56161744254E2FFD353 /* libgeometry.xcframework in Frameworks */, + 9718E9B12B1D353DF9E66311 /* libibl.xcframework in Frameworks */, + BC6AAB72CD468EF04F684014 /* libabseil.xcframework in Frameworks */, + 072B1333A85F99F6FBA10846 /* libzstd.xcframework in Frameworks */, B8934FC46557424E705A2154 /* ARKit.framework in Frameworks */, + B48D41A39CF5F4FDE5CF6770 /* libfilameshio.xcframework in Frameworks */, + 50F0F62A949F9DB17E1E102D /* libmeshoptimizer.xcframework in Frameworks */, + 84AC34B44E1AEE96BA8C53B0 /* libimage.xcframework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -92,6 +175,20 @@ isa = PBXGroup; children = ( 33B2CBA1A0F654632B39A45D /* ARKit.framework */, + DB899E40418A88883E6ED2E4 /* libabseil.xcframework */, + 9E445414106E7103104FC16C /* libbackend.xcframework */, + 67D8E02D1AF661E4EF7CC2CD /* libfilabridge.xcframework */, + C9D99ABAB340140BF94D57B3 /* libfilaflat.xcframework */, + 87261693EC970989615C5AE7 /* libfilament.xcframework */, + 16ED3BF9A0D7194CECB86D55 /* libfilameshio.xcframework */, + D3D6EFC9EE7349AC9F4F845A /* libgeometry.xcframework */, + D6422176EDC22262D20C51A8 /* libibl.xcframework */, + 586F9BE85A436EBA56181848 /* libimage.xcframework */, + A8E5A38F197D487277FDED20 /* libktxreader.xcframework */, + 4CA1720B9D4D55AB6B8513B0 /* libmeshoptimizer.xcframework */, + D0DE88103BBBE542FC5D46B1 /* libsmol-v.xcframework */, + 644F36437FC03CCC25AC6EFC /* libutils.xcframework */, + E238CF2D5E37556427C00675 /* libzstd.xcframework */, ); name = Frameworks; sourceTree = ""; @@ -101,10 +198,10 @@ children = ( AE684A73135705C4EDAA7C53 /* Assets.xcassets */, FCF16FE1B4146DE87F2B76F3 /* Info.plist */, - C88A8BDFC06D144D80EC052B /* LaunchScreen.storyboard */, B6B92BD0FA8E6F9CFEAE1707 /* main.m */, - AFCB91D87494B7FC879A7A5E /* Main.storyboard */, DD0010D60097DEAA82DAA089 /* Resources.S */, + C88A8BDFC06D144D80EC052B /* LaunchScreen.storyboard */, + AFCB91D87494B7FC879A7A5E /* Main.storyboard */, ); path = SupportFiles; sourceTree = ""; @@ -144,6 +241,7 @@ A5598850636B6208AE64E95E /* Sources */, 77189A28CB88A4753728F549 /* Resources */, FA9CC5F2D3E84FB632557A2E /* Frameworks */, + AA70CE1AA47836D72F588764 /* Embed Frameworks */, ); buildRules = ( ); @@ -164,9 +262,10 @@ attributes = { BuildIndependentTargetsInParallel = YES; LastUpgradeCheck = 1430; + TargetAttributes = { + }; }; buildConfigurationList = 281E763643B2F1F3B903864B /* Build configuration list for PBXProject "hello-ar" */; - compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -175,7 +274,8 @@ ); mainGroup = 316A56C698744769908E6F88; minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 54; + preferredProjectObjectVersion = 77; + productRefGroup = E2EC9706948EC07E74121EF1 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -214,7 +314,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The hello-ar app requires four resources:\n# 1. The cube mesh\n# 2. The Filament material definition\n# 3. The Filament camera feed material definition\n# 4. The Filament shadow plane material definition\n# 5. The IBL image\n# These will be compiled into the final binary via the resgen tool.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\nfilamesh_path=`find ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1`\nmatc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\nresgen_path=`find ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`\ncmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${filamesh_path}\" ]]; then\n echo \"No filamesh binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${resgen_path}\" ]]; then\n echo \"No resgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# The filamesh tool converts the .obj file into a Filament-specific filamesh file that has been\n# optimized for loading into Filament.\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${filamesh_path}\" \\\n \"${PROJECT_DIR}/../../../assets/models/rounded_cube/rounded_cube.obj\" \\\n \"${PROJECT_DIR}/generated/cube.filamesh\"\n\n# The matc tool compiles the clear_coat.mat, shadow_plane.mat, and camera_feed.mat materials into\n# Filament material BLOBs.\n\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/Materials/clear_coat.mat\"\n\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/shadow_plane.filamat\" \\\n \"${PROJECT_DIR}/Materials/shadow_plane.mat\"\n\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/camera_feed.filamat\" \\\n \"${PROJECT_DIR}/Materials/camera_feed.mat\"\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/venetian_crossroads_2k\" \\\n --format=ktx --size=256 \\\n \"${PROJECT_DIR}/../../../third_party/environments/venetian_crossroads_2k.hdr\"\n\n# The resgen tool generates an assembly file, resources.apple.S that gets compiled and linked\n# into the final binary. It contains all the resources consumed by the app.\n\"${resgen_path}\" \\\n --deploy=\"${PROJECT_DIR}/generated\" \\\n \"${PROJECT_DIR}/generated/cube.filamesh\" \\\n \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/generated/shadow_plane.filamat\" \\\n \"${PROJECT_DIR}/generated/camera_feed.filamat\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_ibl.ktx\"\n\n# FilamentApp.cpp and Resources.S include files generated by resgen.\n# Touch them to force Xcode to recompile.\ntouch \"${PROJECT_DIR}/hello-ar/FilamentArView/FullScreenTriangle.cpp\"\ntouch \"${PROJECT_DIR}/hello-ar/FilamentArView/FilamentApp.cpp\"\ntouch \"${PROJECT_DIR}/hello-ar/SupportFiles/Resources.S\"\n"; + shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The hello-ar app requires four resources:\n# 1. The cube mesh\n# 2. The Filament material definition\n# 3. The Filament camera feed material definition\n# 4. The Filament shadow plane material definition\n# 5. The IBL image\n# These will be compiled into the final binary via the resgen tool.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\nfilamesh_path=`find -L ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1`\nmatc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\nresgen_path=`find -L ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`\ncmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${filamesh_path}\" ]]; then\n echo \"No filamesh binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${resgen_path}\" ]]; then\n echo \"No resgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# The filamesh tool converts the .obj file into a Filament-specific filamesh file that has been\n# optimized for loading into Filament.\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${filamesh_path}\" \\\n \"${PROJECT_DIR}/../../../assets/models/rounded_cube/rounded_cube.obj\" \\\n \"${PROJECT_DIR}/generated/cube.filamesh\"\n\n# The matc tool compiles the clear_coat.mat, shadow_plane.mat, and camera_feed.mat materials into\n# Filament material BLOBs.\n\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/Materials/clear_coat.mat\"\n\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/shadow_plane.filamat\" \\\n \"${PROJECT_DIR}/Materials/shadow_plane.mat\"\n\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/camera_feed.filamat\" \\\n \"${PROJECT_DIR}/Materials/camera_feed.mat\"\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/venetian_crossroads_2k\" \\\n --format=ktx --size=256 \\\n \"${PROJECT_DIR}/../../../third_party/environments/venetian_crossroads_2k.hdr\"\n\n# The resgen tool generates an assembly file, resources.apple.S that gets compiled and linked\n# into the final binary. It contains all the resources consumed by the app.\n\"${resgen_path}\" \\\n --deploy=\"${PROJECT_DIR}/generated\" \\\n \"${PROJECT_DIR}/generated/cube.filamesh\" \\\n \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/generated/shadow_plane.filamat\" \\\n \"${PROJECT_DIR}/generated/camera_feed.filamat\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_ibl.ktx\"\n\n# FilamentApp.cpp and Resources.S include files generated by resgen.\n# Touch them to force Xcode to recompile.\ntouch \"${PROJECT_DIR}/hello-ar/FilamentArView/FullScreenTriangle.cpp\"\ntouch \"${PROJECT_DIR}/hello-ar/FilamentArView/FilamentApp.cpp\"\ntouch \"${PROJECT_DIR}/hello-ar/SupportFiles/Resources.S\"\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -262,12 +362,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-debug"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_METAL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-ar/SupportFiles/Info.plist"; @@ -276,26 +381,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-debug/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lfilameshio", - "-lmeshoptimizer", - "-limage", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-ar"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -310,12 +395,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-release"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_OPENGL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-release/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-ar/SupportFiles/Info.plist"; @@ -324,26 +414,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-release/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lfilameshio", - "-lmeshoptimizer", - "-limage", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-ar"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -357,7 +427,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -420,12 +490,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-release"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_METAL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-release/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-ar/SupportFiles/Info.plist"; @@ -434,26 +509,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-release/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lfilameshio", - "-lmeshoptimizer", - "-limage", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-ar"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -467,7 +522,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -529,7 +584,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -585,12 +640,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-debug"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_OPENGL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-ar/SupportFiles/Info.plist"; @@ -599,26 +659,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-debug/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lfilameshio", - "-lmeshoptimizer", - "-limage", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-ar"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -632,7 +672,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; diff --git a/ios/samples/hello-ar/project.yml b/ios/samples/hello-ar/project.yml index 483e824a2531..71ec6d6bae06 100644 --- a/ios/samples/hello-ar/project.yml +++ b/ios/samples/hello-ar/project.yml @@ -8,9 +8,9 @@ targets: - FilamentApp dependencies: - sdk: ARKit.framework - settings: - base: - OTHER_LDFLAGS: ["-lfilameshio", "-lmeshoptimizer", "-limage"] + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilameshio.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework preBuildScripts: - path: build-resources.sh name: Build Resources diff --git a/ios/samples/hello-gltf/build-resources.sh b/ios/samples/hello-gltf/build-resources.sh index bd45cdf83da6..b0352fb1711a 100755 --- a/ios/samples/hello-gltf/build-resources.sh +++ b/ios/samples/hello-gltf/build-resources.sh @@ -11,8 +11,8 @@ set -e HOST_TOOLS_PATH="${HOST_TOOLS_PATH:-../../../out/release/filament/bin}" -resgen_path=`find ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1` -cmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1` +resgen_path=`find -L ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1` +cmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1` # Ensure that the required tools are present in the out/ directory. # These can be built by running ./build.sh -p desktop -i release at Filament's root directory. diff --git a/ios/samples/hello-gltf/hello-gltf.xcodeproj/project.pbxproj b/ios/samples/hello-gltf/hello-gltf.xcodeproj/project.pbxproj index 6a1c41af7454..cf418cdb1d5d 100644 --- a/ios/samples/hello-gltf/hello-gltf.xcodeproj/project.pbxproj +++ b/ios/samples/hello-gltf/hello-gltf.xcodeproj/project.pbxproj @@ -3,44 +3,162 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 77; objects = { /* Begin PBXBuildFile section */ + 0023225ED0F6344A42FDF021 /* libbasis_transcoder.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 18129A9C5FC10A170625F0DF /* libbasis_transcoder.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 032FA0177E5B258A6EFC10FB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3F8FDA2F8F0B257A1364E302 /* Assets.xcassets */; }; + 0C4676263C3C6F429DE8E1E7 /* libabseil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2ABE8F592F84AD947269C79F /* libabseil.xcframework */; }; + 12FA790CDCF4048A3B3D816B /* libuberzlib.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8AE9C8F3B16EEC02C00FC462 /* libuberzlib.xcframework */; }; + 153DF9C7D86AB76EDBEB3AC4 /* libktxreader.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6E2AD103B6A164CA10779A2C /* libktxreader.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 1A4585E6153963D89D838344 /* libutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51E07CB7D191EE70C8393733 /* libutils.xcframework */; }; + 2101923AA53D391D871C0BCF /* libutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 51E07CB7D191EE70C8393733 /* libutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 272268CA1B14AE98DFACDD33 /* libstb.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A40EBFD944F94426FBCEDB82 /* libstb.xcframework */; }; + 3153490EB02DE914E6C7B16B /* libimage.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 481A41C1DE19D71E21CA17C0 /* libimage.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 3370EF2CC0CD0D08F69CC581 /* libmeshoptimizer.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9B29DDB1D323E259E5EDBE4 /* libmeshoptimizer.xcframework */; }; + 357279930C4271E22C329E27 /* libbackend.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4A955859FB96A0B4AA15C36D /* libbackend.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 372DC481D060CF95FDFA9DD7 /* libzstd.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 190D6FD76C902A52E8C71DF7 /* libzstd.xcframework */; }; 3DA39FBD408D7B6F50822939 /* FilamentViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4544E7FD3EC9BC5C5E4487B7 /* FilamentViewController.mm */; }; + 415CBC815DE6A370EE6DD502 /* libfilament.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B9CD116AEF8BD291A123F2A /* libfilament.xcframework */; }; + 41E74598143C17C5C2037D67 /* libfilament.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4B9CD116AEF8BD291A123F2A /* libfilament.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 4474017EFFC53567F2369DB8 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FEA341C442B210CFD35E4663 /* LaunchScreen.storyboard */; }; 4F555B8114838AF666F39CD1 /* App.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF77884F45974610F79F92F /* App.cpp */; }; + 53C4CFCFC54929CEDE416EC5 /* libstb.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A40EBFD944F94426FBCEDB82 /* libstb.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 6057DA6A016889B23EE6410F /* libgeometry.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6842BC9C9A130CE658B642CB /* libgeometry.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 6535EDC4F6D3BBCA745C453F /* libsmol-v.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E33DC0C95B9B0260504E357 /* libsmol-v.xcframework */; }; + 6D84A7C1AA03C171F01A044D /* libgltfio_core.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 06B530A8294DD5CBAD41DB51 /* libgltfio_core.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 6DFCBA84E571F0C5B1683640 /* libbackend.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A955859FB96A0B4AA15C36D /* libbackend.xcframework */; }; + 7BFDB88EAFC7B8CE0B571A35 /* libdracodec.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CC1A326E7C2E54A8F3227045 /* libdracodec.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 7FD7B7E760C10ACDA64F0890 /* libuberarchive.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BEC8295652B68CF0854F861 /* libuberarchive.xcframework */; }; + 8309D337274D6920F81FDFED /* libfilaflat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8947E0E5B74BA8785FE2158D /* libfilaflat.xcframework */; }; + 872251D9846351641FFE1EDB /* libibl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83035F42A448BDA20C5EC0DB /* libibl.xcframework */; }; + 872990CD06765549CBE6EB85 /* libbasis_transcoder.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18129A9C5FC10A170625F0DF /* libbasis_transcoder.xcframework */; }; 899A92E0F0148A9BAE3E7B1A /* Resources.S in Sources */ = {isa = PBXBuildFile; fileRef = B1B470F3CDEE0D4A60B11C72 /* Resources.S */; }; 8D82323C866A8429A29903A8 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F534BD31E8FB84B3925B0402 /* AppDelegate.m */; }; + 916F7A5DE5031D7523FB1FA1 /* libsmol-v.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 5E33DC0C95B9B0260504E357 /* libsmol-v.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + A38DF6C8EA6292F62E9D5F68 /* libimage.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 481A41C1DE19D71E21CA17C0 /* libimage.xcframework */; }; + A8004A31F0068178EF0557DA /* libgeometry.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6842BC9C9A130CE658B642CB /* libgeometry.xcframework */; }; + ABF42D2B7081EB39CEC1B43B /* libgltfio_core.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06B530A8294DD5CBAD41DB51 /* libgltfio_core.xcframework */; }; ADE1F0D02BA65C77C6B109AB /* FilamentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84D7269DBC8441140F7F8905 /* FilamentView.m */; }; + B69E7A38F3A58F7DB4002219 /* libdracodec.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1A326E7C2E54A8F3227045 /* libdracodec.xcframework */; }; B766A23145C9D58BB09CB068 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B161015D23D464253ABAF1 /* main.m */; }; + B9E63A561CEE77D5D0D29A0E /* libuberarchive.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0BEC8295652B68CF0854F861 /* libuberarchive.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; BFD25191C0BF9804FF3C1B19 /* DamagedHelmet.glb in Resources */ = {isa = PBXBuildFile; fileRef = B299B19218E1CF7B2D13ABB8 /* DamagedHelmet.glb */; }; + C609C4B4BD4082A399517524 /* libfilabridge.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9555C4935AFD98E079719C07 /* libfilabridge.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CE0DC84646DB51D505E521E9 /* libuberzlib.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8AE9C8F3B16EEC02C00FC462 /* libuberzlib.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CFADC7EF16411309B0CF08D8 /* libzstd.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 190D6FD76C902A52E8C71DF7 /* libzstd.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; D1174ECF9CDDC1EA7DE95840 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 59032D070D1641AA60F6CC2D /* Main.storyboard */; }; DB90B94FBBD5F819ED9D1685 /* CameraManipulator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6238AED51F5F46CCFBE6892D /* CameraManipulator.cpp */; }; + DC96354994E844E3730CBEB7 /* libibl.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 83035F42A448BDA20C5EC0DB /* libibl.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + E9C1BC8EC1312B0CCEF66A2F /* libabseil.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 2ABE8F592F84AD947269C79F /* libabseil.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F4022ECAAC6BEA543556B428 /* libktxreader.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E2AD103B6A164CA10779A2C /* libktxreader.xcframework */; }; + FB7DB6BC4ADAEA3F02731E73 /* libmeshoptimizer.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F9B29DDB1D323E259E5EDBE4 /* libmeshoptimizer.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + FBC7DAEE0262EB58EC6BADC9 /* libfilaflat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8947E0E5B74BA8785FE2158D /* libfilaflat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + FD9CF0E054C901D1D3E7D6B2 /* libfilabridge.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9555C4935AFD98E079719C07 /* libfilabridge.xcframework */; }; /* End PBXBuildFile section */ +/* Begin PBXCopyFilesBuildPhase section */ + D5C4D57398FACAA29F2C2549 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 41E74598143C17C5C2037D67 /* libfilament.xcframework in Embed Frameworks */, + 357279930C4271E22C329E27 /* libbackend.xcframework in Embed Frameworks */, + FBC7DAEE0262EB58EC6BADC9 /* libfilaflat.xcframework in Embed Frameworks */, + 153DF9C7D86AB76EDBEB3AC4 /* libktxreader.xcframework in Embed Frameworks */, + C609C4B4BD4082A399517524 /* libfilabridge.xcframework in Embed Frameworks */, + 2101923AA53D391D871C0BCF /* libutils.xcframework in Embed Frameworks */, + 916F7A5DE5031D7523FB1FA1 /* libsmol-v.xcframework in Embed Frameworks */, + 6057DA6A016889B23EE6410F /* libgeometry.xcframework in Embed Frameworks */, + DC96354994E844E3730CBEB7 /* libibl.xcframework in Embed Frameworks */, + E9C1BC8EC1312B0CCEF66A2F /* libabseil.xcframework in Embed Frameworks */, + CFADC7EF16411309B0CF08D8 /* libzstd.xcframework in Embed Frameworks */, + 6D84A7C1AA03C171F01A044D /* libgltfio_core.xcframework in Embed Frameworks */, + B9E63A561CEE77D5D0D29A0E /* libuberarchive.xcframework in Embed Frameworks */, + 3153490EB02DE914E6C7B16B /* libimage.xcframework in Embed Frameworks */, + 7BFDB88EAFC7B8CE0B571A35 /* libdracodec.xcframework in Embed Frameworks */, + FB7DB6BC4ADAEA3F02731E73 /* libmeshoptimizer.xcframework in Embed Frameworks */, + 0023225ED0F6344A42FDF021 /* libbasis_transcoder.xcframework in Embed Frameworks */, + 53C4CFCFC54929CEDE416EC5 /* libstb.xcframework in Embed Frameworks */, + CE0DC84646DB51D505E521E9 /* libuberzlib.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ + 06B530A8294DD5CBAD41DB51 /* libgltfio_core.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgltfio_core.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgltfio_core.xcframework"; sourceTree = ""; }; 07D735319AF2DC69DB8981FE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 0AF0F63216DE40C526ABFABF /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 0BEC8295652B68CF0854F861 /* libuberarchive.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libuberarchive.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberarchive.xcframework"; sourceTree = ""; }; + 18129A9C5FC10A170625F0DF /* libbasis_transcoder.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbasis_transcoder.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbasis_transcoder.xcframework"; sourceTree = ""; }; + 190D6FD76C902A52E8C71DF7 /* libzstd.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libzstd.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework"; sourceTree = ""; }; + 2ABE8F592F84AD947269C79F /* libabseil.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libabseil.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework"; sourceTree = ""; }; 31A71C869E24044EA5F802D5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 3259514676E5E799670D0F86 /* CameraManipulator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CameraManipulator.h; sourceTree = ""; }; 3AF77884F45974610F79F92F /* App.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = App.cpp; sourceTree = ""; }; 3F8FDA2F8F0B257A1364E302 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 4544E7FD3EC9BC5C5E4487B7 /* FilamentViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FilamentViewController.mm; sourceTree = ""; }; 47B161015D23D464253ABAF1 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 481A41C1DE19D71E21CA17C0 /* libimage.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libimage.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework"; sourceTree = ""; }; + 4A955859FB96A0B4AA15C36D /* libbackend.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbackend.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework"; sourceTree = ""; }; + 4B9CD116AEF8BD291A123F2A /* libfilament.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilament.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework"; sourceTree = ""; }; + 51E07CB7D191EE70C8393733 /* libutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework"; sourceTree = ""; }; + 5E33DC0C95B9B0260504E357 /* libsmol-v.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libsmol-v.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework"; sourceTree = ""; }; 6238AED51F5F46CCFBE6892D /* CameraManipulator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CameraManipulator.cpp; sourceTree = ""; }; + 6842BC9C9A130CE658B642CB /* libgeometry.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgeometry.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework"; sourceTree = ""; }; + 6E2AD103B6A164CA10779A2C /* libktxreader.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libktxreader.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework"; sourceTree = ""; }; + 83035F42A448BDA20C5EC0DB /* libibl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libibl.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework"; sourceTree = ""; }; 84D7269DBC8441140F7F8905 /* FilamentView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FilamentView.m; sourceTree = ""; }; + 8947E0E5B74BA8785FE2158D /* libfilaflat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilaflat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework"; sourceTree = ""; }; + 8AE9C8F3B16EEC02C00FC462 /* libuberzlib.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libuberzlib.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberzlib.xcframework"; sourceTree = ""; }; + 9555C4935AFD98E079719C07 /* libfilabridge.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilabridge.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework"; sourceTree = ""; }; A37B936423E3B1BF1CA137E0 /* hello-gltf.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "hello-gltf.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + A40EBFD944F94426FBCEDB82 /* libstb.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libstb.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libstb.xcframework"; sourceTree = ""; }; A52D063A6C24A885D52E2F79 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; B1B470F3CDEE0D4A60B11C72 /* Resources.S */ = {isa = PBXFileReference; path = Resources.S; sourceTree = ""; }; B299B19218E1CF7B2D13ABB8 /* DamagedHelmet.glb */ = {isa = PBXFileReference; path = DamagedHelmet.glb; sourceTree = ""; }; BAEAC7786B3EA7E47855A56B /* FilamentViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentViewController.h; sourceTree = ""; }; + CC1A326E7C2E54A8F3227045 /* libdracodec.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libdracodec.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libdracodec.xcframework"; sourceTree = ""; }; D3A6F9906B0647549CF53196 /* FilamentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentView.h; sourceTree = ""; }; EC3FAC405D5790391F3AE4FB /* App.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = App.h; sourceTree = ""; }; F534BD31E8FB84B3925B0402 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + F9B29DDB1D323E259E5EDBE4 /* libmeshoptimizer.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libmeshoptimizer.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework"; sourceTree = ""; }; /* End PBXFileReference section */ +/* Begin PBXFrameworksBuildPhase section */ + 0F4486CC8242411EE5C50136 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 415CBC815DE6A370EE6DD502 /* libfilament.xcframework in Frameworks */, + 6DFCBA84E571F0C5B1683640 /* libbackend.xcframework in Frameworks */, + 8309D337274D6920F81FDFED /* libfilaflat.xcframework in Frameworks */, + F4022ECAAC6BEA543556B428 /* libktxreader.xcframework in Frameworks */, + FD9CF0E054C901D1D3E7D6B2 /* libfilabridge.xcframework in Frameworks */, + 1A4585E6153963D89D838344 /* libutils.xcframework in Frameworks */, + 6535EDC4F6D3BBCA745C453F /* libsmol-v.xcframework in Frameworks */, + A8004A31F0068178EF0557DA /* libgeometry.xcframework in Frameworks */, + 872251D9846351641FFE1EDB /* libibl.xcframework in Frameworks */, + 0C4676263C3C6F429DE8E1E7 /* libabseil.xcframework in Frameworks */, + 372DC481D060CF95FDFA9DD7 /* libzstd.xcframework in Frameworks */, + ABF42D2B7081EB39CEC1B43B /* libgltfio_core.xcframework in Frameworks */, + 7FD7B7E760C10ACDA64F0890 /* libuberarchive.xcframework in Frameworks */, + A38DF6C8EA6292F62E9D5F68 /* libimage.xcframework in Frameworks */, + B69E7A38F3A58F7DB4002219 /* libdracodec.xcframework in Frameworks */, + 3370EF2CC0CD0D08F69CC581 /* libmeshoptimizer.xcframework in Frameworks */, + 872990CD06765549CBE6EB85 /* libbasis_transcoder.xcframework in Frameworks */, + 272268CA1B14AE98DFACDD33 /* libstb.xcframework in Frameworks */, + 12FA790CDCF4048A3B3D816B /* libuberzlib.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + /* Begin PBXGroup section */ 213197BBE06FB8316C6A730F /* DamagedHelmet */ = { isa = PBXGroup; @@ -56,6 +174,7 @@ children = ( 213197BBE06FB8316C6A730F /* DamagedHelmet */, A57096EADC8A05A97A275513 /* hello-gltf */, + F6A35BB32F71E5F5DC464FCC /* Frameworks */, E24AFBD404D0689AD84371D6 /* Products */, ); sourceTree = ""; @@ -78,10 +197,10 @@ children = ( 3F8FDA2F8F0B257A1364E302 /* Assets.xcassets */, A52D063A6C24A885D52E2F79 /* Info.plist */, - FEA341C442B210CFD35E4663 /* LaunchScreen.storyboard */, 47B161015D23D464253ABAF1 /* main.m */, - 59032D070D1641AA60F6CC2D /* Main.storyboard */, B1B470F3CDEE0D4A60B11C72 /* Resources.S */, + FEA341C442B210CFD35E4663 /* LaunchScreen.storyboard */, + 59032D070D1641AA60F6CC2D /* Main.storyboard */, ); path = SupportFiles; sourceTree = ""; @@ -107,6 +226,32 @@ name = Products; sourceTree = ""; }; + F6A35BB32F71E5F5DC464FCC /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2ABE8F592F84AD947269C79F /* libabseil.xcframework */, + 4A955859FB96A0B4AA15C36D /* libbackend.xcframework */, + 18129A9C5FC10A170625F0DF /* libbasis_transcoder.xcframework */, + CC1A326E7C2E54A8F3227045 /* libdracodec.xcframework */, + 9555C4935AFD98E079719C07 /* libfilabridge.xcframework */, + 8947E0E5B74BA8785FE2158D /* libfilaflat.xcframework */, + 4B9CD116AEF8BD291A123F2A /* libfilament.xcframework */, + 6842BC9C9A130CE658B642CB /* libgeometry.xcframework */, + 06B530A8294DD5CBAD41DB51 /* libgltfio_core.xcframework */, + 83035F42A448BDA20C5EC0DB /* libibl.xcframework */, + 481A41C1DE19D71E21CA17C0 /* libimage.xcframework */, + 6E2AD103B6A164CA10779A2C /* libktxreader.xcframework */, + F9B29DDB1D323E259E5EDBE4 /* libmeshoptimizer.xcframework */, + 5E33DC0C95B9B0260504E357 /* libsmol-v.xcframework */, + A40EBFD944F94426FBCEDB82 /* libstb.xcframework */, + 0BEC8295652B68CF0854F861 /* libuberarchive.xcframework */, + 8AE9C8F3B16EEC02C00FC462 /* libuberzlib.xcframework */, + 51E07CB7D191EE70C8393733 /* libutils.xcframework */, + 190D6FD76C902A52E8C71DF7 /* libzstd.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -117,6 +262,8 @@ 434C630C7F01B07ABD7545B4 /* Build Resources */, 30FFFB72D409D092136A7E09 /* Sources */, 143100B2FF97ACD9B03A078A /* Resources */, + 0F4486CC8242411EE5C50136 /* Frameworks */, + D5C4D57398FACAA29F2C2549 /* Embed Frameworks */, ); buildRules = ( ); @@ -137,9 +284,10 @@ attributes = { BuildIndependentTargetsInParallel = YES; LastUpgradeCheck = 1430; + TargetAttributes = { + }; }; buildConfigurationList = C7514DDCFDA3C5F803E239F9 /* Build configuration list for PBXProject "hello-gltf" */; - compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -148,7 +296,8 @@ ); mainGroup = 74FBC1573C79190CC198A030; minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 54; + preferredProjectObjectVersion = 77; + productRefGroup = E24AFBD404D0689AD84371D6 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -188,7 +337,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The hello-gltf app requires two resources:\n# 1. The IBL image\n# 2. The skybox image\n# These will be compiled into the final binary via the resgen tool.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\nresgen_path=`find ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`\ncmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${resgen_path}\" ]]; then\n echo \"No resgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/venetian_crossroads_2k\" \\\n --format=ktx --size=256 --extract-blur=0.1 \\\n \"${PROJECT_DIR}/../../../third_party/environments/venetian_crossroads_2k.hdr\"\n\n# The resgen tool generates an assembly file, resources.apple.S that gets compiled and linked\n# into the final binary. It contains all the resources consumed by the app.\n\"${resgen_path}\" \\\n --deploy=\"${PROJECT_DIR}/generated\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_skybox.ktx\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_ibl.ktx\"\n\n# App.cpp and Resources.S include files generated by resgen.\n# Touch them to force Xcode to recompile.\ntouch \"${PROJECT_DIR}/hello-gltf/FilamentView/App.cpp\"\ntouch \"${PROJECT_DIR}/hello-gltf/SupportFiles/Resources.S\"\n"; + shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The hello-gltf app requires two resources:\n# 1. The IBL image\n# 2. The skybox image\n# These will be compiled into the final binary via the resgen tool.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\nresgen_path=`find -L ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`\ncmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${resgen_path}\" ]]; then\n echo \"No resgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/venetian_crossroads_2k\" \\\n --format=ktx --size=256 --extract-blur=0.1 \\\n \"${PROJECT_DIR}/../../../third_party/environments/venetian_crossroads_2k.hdr\"\n\n# The resgen tool generates an assembly file, resources.apple.S that gets compiled and linked\n# into the final binary. It contains all the resources consumed by the app.\n\"${resgen_path}\" \\\n --deploy=\"${PROJECT_DIR}/generated\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_skybox.ktx\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_ibl.ktx\"\n\n# App.cpp and Resources.S include files generated by resgen.\n# Touch them to force Xcode to recompile.\ntouch \"${PROJECT_DIR}/hello-gltf/FilamentView/App.cpp\"\ntouch \"${PROJECT_DIR}/hello-gltf/SupportFiles/Resources.S\"\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -235,7 +384,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -298,12 +447,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-release"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_OPENGL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-release/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-gltf/SupportFiles/Info.plist"; @@ -312,32 +466,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-release/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lgltfio_core", - "-luberarchive", - "-limage", - "-ldracodec", - "-lmeshoptimizer", - "-lbasis_transcoder", - "-lstb", - "-lzstd", - "-luberzlib", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-gltf"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -352,12 +480,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-debug"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_OPENGL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-gltf/SupportFiles/Info.plist"; @@ -366,32 +499,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-debug/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lgltfio_core", - "-luberarchive", - "-limage", - "-ldracodec", - "-lmeshoptimizer", - "-lbasis_transcoder", - "-lstb", - "-lzstd", - "-luberzlib", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-gltf"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -405,7 +512,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -467,7 +574,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -522,7 +629,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -578,12 +685,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-release"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_METAL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-release/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-gltf/SupportFiles/Info.plist"; @@ -592,32 +704,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-release/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lgltfio_core", - "-luberarchive", - "-limage", - "-ldracodec", - "-lmeshoptimizer", - "-lbasis_transcoder", - "-lstb", - "-lzstd", - "-luberzlib", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-gltf"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -632,12 +718,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-debug"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_METAL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-gltf/SupportFiles/Info.plist"; @@ -646,32 +737,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-debug/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lgltfio_core", - "-luberarchive", - "-limage", - "-ldracodec", - "-lmeshoptimizer", - "-lbasis_transcoder", - "-lstb", - "-lzstd", - "-luberzlib", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-gltf"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; diff --git a/ios/samples/hello-gltf/project.yml b/ios/samples/hello-gltf/project.yml index 377578053d3d..cbb3d8fd859b 100644 --- a/ios/samples/hello-gltf/project.yml +++ b/ios/samples/hello-gltf/project.yml @@ -10,10 +10,15 @@ targets: buildPhase: resources templates: - FilamentApp - settings: - base: - OTHER_LDFLAGS: ["-lgltfio_core", "-luberarchive", "-limage", "-ldracodec", "-lmeshoptimizer", - "-lbasis_transcoder", "-lstb", "-lzstd", "-luberzlib"] + dependencies: + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgltfio_core.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberarchive.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libdracodec.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbasis_transcoder.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libstb.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberzlib.xcframework preBuildScripts: - path: build-resources.sh name: Build Resources diff --git a/ios/samples/hello-pbr/build-resources.sh b/ios/samples/hello-pbr/build-resources.sh index d3b22ae0b24a..9964824d16c9 100755 --- a/ios/samples/hello-pbr/build-resources.sh +++ b/ios/samples/hello-pbr/build-resources.sh @@ -13,10 +13,10 @@ set -e HOST_TOOLS_PATH="${HOST_TOOLS_PATH:-../../../out/release/filament/bin}" -filamesh_path=`find ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1` -matc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1` -resgen_path=`find ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1` -cmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1` +filamesh_path=`find -L ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1` +matc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1` +resgen_path=`find -L ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1` +cmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1` # Ensure that the required tools are present in the out/ directory. # These can be built by running ./build.sh -p desktop -i release at Filament's root directory. diff --git a/ios/samples/hello-pbr/hello-pbr.xcodeproj/project.pbxproj b/ios/samples/hello-pbr/hello-pbr.xcodeproj/project.pbxproj index 4385f5c8e0de..060f9fde2397 100644 --- a/ios/samples/hello-pbr/hello-pbr.xcodeproj/project.pbxproj +++ b/ios/samples/hello-pbr/hello-pbr.xcodeproj/project.pbxproj @@ -3,43 +3,136 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 77; objects = { /* Begin PBXBuildFile section */ 06156526AD22EF2AD34A6E63 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A17327655C031D575A522AD1 /* main.m */; }; + 0B2B31A41B31D3D9592809BE /* libzstd.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A1DC71CABF5B4C9A99EA62D8 /* libzstd.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 1F86261681826B617D56A65A /* libutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A9FD2FF109F8EDD63D2DAB37 /* libutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 253D85057959A92D9C3FF638 /* libfilabridge.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE951DB3A83CC5BD589751BC /* libfilabridge.xcframework */; }; + 29861FFCDF2A0BCF3C5C35E2 /* libmeshoptimizer.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6BBA4C3095CCF35600F500B8 /* libmeshoptimizer.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 3386B37A2A36AAE2D1A7EEA3 /* libfilameshio.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3DAD80BE7693C1D70E06675 /* libfilameshio.xcframework */; }; + 3CE3011F1556DF145D8D5641 /* libfilameshio.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B3DAD80BE7693C1D70E06675 /* libfilameshio.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 3D7229A87468A795596F67E5 /* libutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9FD2FF109F8EDD63D2DAB37 /* libutils.xcframework */; }; + 3F24E10B5F119498FEC839BD /* libimage.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = FB7CEED84501DA291C801893 /* libimage.xcframework */; }; + 47C387BD3672FED21E46A5CB /* libibl.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 37522F0B15C029FD4127180C /* libibl.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 4E2366C19FC594E529713AFD /* libgeometry.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = C379E4CC0D2A41B53A494804 /* libgeometry.xcframework */; }; + 4E4E761A4D37F2479672E9CB /* libibl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37522F0B15C029FD4127180C /* libibl.xcframework */; }; 4F76C2B304B91E3396FB9BE0 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 43FDC2D4E6776749006FF5E8 /* Main.storyboard */; }; + 5507E62B8924EAD813F76A12 /* libktxreader.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D2E61F2554690ADAD89442FA /* libktxreader.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 612E11B0F5513B4426B753E3 /* libfilament.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 35C7020A906FD87045CA9188 /* libfilament.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 774BE86075C3087EE3E973F2 /* libzstd.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1DC71CABF5B4C9A99EA62D8 /* libzstd.xcframework */; }; + 7C7FE778A73B60FEF2A3E87B /* libsmol-v.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 503D2F0E98B22FD99D9C4B32 /* libsmol-v.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 7FADC9D9565BFFBE23EE2B19 /* libabseil.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3FC6071B5A7CDAE7AC8F9F6A /* libabseil.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 80797782FC992AB6AC57F689 /* libsmol-v.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 503D2F0E98B22FD99D9C4B32 /* libsmol-v.xcframework */; }; + 909A5210FF76323C0162AC03 /* libbackend.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE479671EAC6847969DCCA35 /* libbackend.xcframework */; }; + 9ADC886BBE230370776B1CF3 /* libktxreader.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2E61F2554690ADAD89442FA /* libktxreader.xcframework */; }; + 9F723250641BA99F8DAFEDFB /* libimage.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FB7CEED84501DA291C801893 /* libimage.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9FB8B786881C0C4C0CFBC55D /* libabseil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3FC6071B5A7CDAE7AC8F9F6A /* libabseil.xcframework */; }; A702E1AB94B19F53E55A946B /* CameraManipulator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D57C53C47A84D05D23B65278 /* CameraManipulator.cpp */; }; B127450573BCB07E794547F3 /* FilamentView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 42B9073CE652C53E7F0A4602 /* FilamentView.mm */; }; + BD8BEB81AFF4F10D2CC14D3D /* libmeshoptimizer.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6BBA4C3095CCF35600F500B8 /* libmeshoptimizer.xcframework */; }; + CD584D8F302B74996AB93340 /* libfilaflat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA4939E8DA8B4093E147961B /* libfilaflat.xcframework */; }; + CEA57549E5C487794BD5351D /* libgeometry.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C379E4CC0D2A41B53A494804 /* libgeometry.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; D15F2C7D58D8FC89CE6116E1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1CAE8879115ECEC53FA0F052 /* Assets.xcassets */; }; + D66BEC047A004E63BD105F94 /* libfilaflat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DA4939E8DA8B4093E147961B /* libfilaflat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; D760F404EE39FF9CA3DB15EF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 45C71AD43B55E58E07243647 /* LaunchScreen.storyboard */; }; + DD28C38B1BA7DC985D18010F /* libbackend.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CE479671EAC6847969DCCA35 /* libbackend.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + E6438E524A7CA8B4ADCD6BB8 /* libfilabridge.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CE951DB3A83CC5BD589751BC /* libfilabridge.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; F036B4FF12A2B4005547C01F /* FilamentApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F01D34676A81F3F367B9F6AF /* FilamentApp.cpp */; }; F7A5CF35639D0528CCD03908 /* Resources.S in Sources */ = {isa = PBXBuildFile; fileRef = AC02B019CB36611A7BCE5773 /* Resources.S */; }; + FAF09598FE02F9B10459EB34 /* libfilament.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35C7020A906FD87045CA9188 /* libfilament.xcframework */; }; FCEE5B4DF0074DCD841DFF12 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DACB12BFCAAA3222E7D1E9BB /* ViewController.m */; }; FEA410A98CE28689BEF2251F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FE9A0CE98FB055F3478E1CC /* AppDelegate.m */; }; /* End PBXBuildFile section */ +/* Begin PBXCopyFilesBuildPhase section */ + 8E3DFDFC69EBD646F294582B /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 612E11B0F5513B4426B753E3 /* libfilament.xcframework in Embed Frameworks */, + DD28C38B1BA7DC985D18010F /* libbackend.xcframework in Embed Frameworks */, + D66BEC047A004E63BD105F94 /* libfilaflat.xcframework in Embed Frameworks */, + 5507E62B8924EAD813F76A12 /* libktxreader.xcframework in Embed Frameworks */, + E6438E524A7CA8B4ADCD6BB8 /* libfilabridge.xcframework in Embed Frameworks */, + 1F86261681826B617D56A65A /* libutils.xcframework in Embed Frameworks */, + 7C7FE778A73B60FEF2A3E87B /* libsmol-v.xcframework in Embed Frameworks */, + CEA57549E5C487794BD5351D /* libgeometry.xcframework in Embed Frameworks */, + 47C387BD3672FED21E46A5CB /* libibl.xcframework in Embed Frameworks */, + 7FADC9D9565BFFBE23EE2B19 /* libabseil.xcframework in Embed Frameworks */, + 0B2B31A41B31D3D9592809BE /* libzstd.xcframework in Embed Frameworks */, + 3CE3011F1556DF145D8D5641 /* libfilameshio.xcframework in Embed Frameworks */, + 29861FFCDF2A0BCF3C5C35E2 /* libmeshoptimizer.xcframework in Embed Frameworks */, + 9F723250641BA99F8DAFEDFB /* libimage.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 17ADA23252FA61486B05D5BA /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; 1CAE8879115ECEC53FA0F052 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 35C7020A906FD87045CA9188 /* libfilament.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilament.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework"; sourceTree = ""; }; + 37522F0B15C029FD4127180C /* libibl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libibl.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework"; sourceTree = ""; }; 37CB2FCA6711AE57BD4B39F7 /* hello-pbr.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "hello-pbr.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3FC6071B5A7CDAE7AC8F9F6A /* libabseil.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libabseil.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework"; sourceTree = ""; }; 42B9073CE652C53E7F0A4602 /* FilamentView.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FilamentView.mm; sourceTree = ""; }; 4618C7511DE661F89B114734 /* FilamentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentView.h; sourceTree = ""; }; + 503D2F0E98B22FD99D9C4B32 /* libsmol-v.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libsmol-v.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework"; sourceTree = ""; }; + 6BBA4C3095CCF35600F500B8 /* libmeshoptimizer.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libmeshoptimizer.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework"; sourceTree = ""; }; 7D60AE7BAB964978FAA0C84C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 7FE9A0CE98FB055F3478E1CC /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; A17327655C031D575A522AD1 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + A1DC71CABF5B4C9A99EA62D8 /* libzstd.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libzstd.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework"; sourceTree = ""; }; A3680F594905261290AEDB79 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + A9FD2FF109F8EDD63D2DAB37 /* libutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework"; sourceTree = ""; }; AC02B019CB36611A7BCE5773 /* Resources.S */ = {isa = PBXFileReference; path = Resources.S; sourceTree = ""; }; ADF252527D202BB9D53E29C8 /* clear_coat.mat */ = {isa = PBXFileReference; path = clear_coat.mat; sourceTree = ""; }; B35CDFC5B6E5142B5E57BE33 /* FilamentApp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentApp.h; sourceTree = ""; }; + B3DAD80BE7693C1D70E06675 /* libfilameshio.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilameshio.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilameshio.xcframework"; sourceTree = ""; }; + C379E4CC0D2A41B53A494804 /* libgeometry.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgeometry.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework"; sourceTree = ""; }; + CE479671EAC6847969DCCA35 /* libbackend.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbackend.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework"; sourceTree = ""; }; + CE951DB3A83CC5BD589751BC /* libfilabridge.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilabridge.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework"; sourceTree = ""; }; + D2E61F2554690ADAD89442FA /* libktxreader.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libktxreader.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework"; sourceTree = ""; }; D57C53C47A84D05D23B65278 /* CameraManipulator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CameraManipulator.cpp; sourceTree = ""; }; + DA4939E8DA8B4093E147961B /* libfilaflat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilaflat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework"; sourceTree = ""; }; DACB12BFCAAA3222E7D1E9BB /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; E176563EAAB0B36EFA7D67FD /* CameraManipulator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CameraManipulator.h; sourceTree = ""; }; EC2A85E8863E17F68089B198 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; ED2321CED4601521B7D1D849 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; F01D34676A81F3F367B9F6AF /* FilamentApp.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FilamentApp.cpp; sourceTree = ""; }; + FB7CEED84501DA291C801893 /* libimage.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libimage.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework"; sourceTree = ""; }; /* End PBXFileReference section */ +/* Begin PBXFrameworksBuildPhase section */ + 464CABCAA933FAA2A5568882 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + FAF09598FE02F9B10459EB34 /* libfilament.xcframework in Frameworks */, + 909A5210FF76323C0162AC03 /* libbackend.xcframework in Frameworks */, + CD584D8F302B74996AB93340 /* libfilaflat.xcframework in Frameworks */, + 9ADC886BBE230370776B1CF3 /* libktxreader.xcframework in Frameworks */, + 253D85057959A92D9C3FF638 /* libfilabridge.xcframework in Frameworks */, + 3D7229A87468A795596F67E5 /* libutils.xcframework in Frameworks */, + 80797782FC992AB6AC57F689 /* libsmol-v.xcframework in Frameworks */, + 4E2366C19FC594E529713AFD /* libgeometry.xcframework in Frameworks */, + 4E4E761A4D37F2479672E9CB /* libibl.xcframework in Frameworks */, + 9FB8B786881C0C4C0CFBC55D /* libabseil.xcframework in Frameworks */, + 774BE86075C3087EE3E973F2 /* libzstd.xcframework in Frameworks */, + 3386B37A2A36AAE2D1A7EEA3 /* libfilameshio.xcframework in Frameworks */, + BD8BEB81AFF4F10D2CC14D3D /* libmeshoptimizer.xcframework in Frameworks */, + 3F24E10B5F119498FEC839BD /* libimage.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + /* Begin PBXGroup section */ 4A44033C70281A0FC58A64FE /* hello-pbr */ = { isa = PBXGroup; @@ -54,21 +147,43 @@ 4618C7511DE661F89B114734 /* FilamentView.h */, 42B9073CE652C53E7F0A4602 /* FilamentView.mm */, EC2A85E8863E17F68089B198 /* Info.plist */, - 45C71AD43B55E58E07243647 /* LaunchScreen.storyboard */, A17327655C031D575A522AD1 /* main.m */, - 43FDC2D4E6776749006FF5E8 /* Main.storyboard */, AC02B019CB36611A7BCE5773 /* Resources.S */, 17ADA23252FA61486B05D5BA /* ViewController.h */, DACB12BFCAAA3222E7D1E9BB /* ViewController.m */, + 45C71AD43B55E58E07243647 /* LaunchScreen.storyboard */, + 43FDC2D4E6776749006FF5E8 /* Main.storyboard */, ); path = "hello-pbr"; sourceTree = ""; }; + 6CD8748D8B4DAD182A726DC0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3FC6071B5A7CDAE7AC8F9F6A /* libabseil.xcframework */, + CE479671EAC6847969DCCA35 /* libbackend.xcframework */, + CE951DB3A83CC5BD589751BC /* libfilabridge.xcframework */, + DA4939E8DA8B4093E147961B /* libfilaflat.xcframework */, + 35C7020A906FD87045CA9188 /* libfilament.xcframework */, + B3DAD80BE7693C1D70E06675 /* libfilameshio.xcframework */, + C379E4CC0D2A41B53A494804 /* libgeometry.xcframework */, + 37522F0B15C029FD4127180C /* libibl.xcframework */, + FB7CEED84501DA291C801893 /* libimage.xcframework */, + D2E61F2554690ADAD89442FA /* libktxreader.xcframework */, + 6BBA4C3095CCF35600F500B8 /* libmeshoptimizer.xcframework */, + 503D2F0E98B22FD99D9C4B32 /* libsmol-v.xcframework */, + A9FD2FF109F8EDD63D2DAB37 /* libutils.xcframework */, + A1DC71CABF5B4C9A99EA62D8 /* libzstd.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; 8B171658B4A1227B9CA44459 = { isa = PBXGroup; children = ( 4A44033C70281A0FC58A64FE /* hello-pbr */, D92946BE29B34E951A7E0714 /* Materials */, + 6CD8748D8B4DAD182A726DC0 /* Frameworks */, A90A4582D4144797492F5C08 /* Products */, ); sourceTree = ""; @@ -99,6 +214,8 @@ 18BC4E25ED5FC66EC7B77F97 /* Build Resources */, 4EAE126B59B0A66AD866406A /* Sources */, 4C132EE193B59194A5C7572B /* Resources */, + 464CABCAA933FAA2A5568882 /* Frameworks */, + 8E3DFDFC69EBD646F294582B /* Embed Frameworks */, ); buildRules = ( ); @@ -119,9 +236,10 @@ attributes = { BuildIndependentTargetsInParallel = YES; LastUpgradeCheck = 1430; + TargetAttributes = { + }; }; buildConfigurationList = 0479354FB8D9A411347D91A6 /* Build configuration list for PBXProject "hello-pbr" */; - compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -130,7 +248,8 @@ ); mainGroup = 8B171658B4A1227B9CA44459; minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 54; + preferredProjectObjectVersion = 77; + productRefGroup = A90A4582D4144797492F5C08 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -169,7 +288,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The hello-pbr app requires four resources:\n# 1. The material sphere mesh\n# 2. The Filament material definition\n# 3. The IBL image\n# 4. The skybox image\n# These will be compiled into the final binary via the resgen tool.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\nfilamesh_path=`find ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1`\nmatc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\nresgen_path=`find ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`\ncmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${filamesh_path}\" ]]; then\n echo \"No filamesh binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${resgen_path}\" ]]; then\n echo \"No resgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# The filamesh tool converts the .obj file into a Filament-specific filamesh file that has been\n# optimized for loading into Filament.\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${filamesh_path}\" \\\n \"${PROJECT_DIR}/../../../assets/models/material_sphere/material_sphere.obj\" \\\n \"${PROJECT_DIR}/generated/material_sphere.filamesh\"\n\n# The matc tool compiles the clear_coat.mat material into a Filament material BLOB.\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/Materials/clear_coat.mat\"\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/venetian_crossroads_2k\" \\\n --format=ktx --size=256 --extract-blur=0.1 \\\n \"${PROJECT_DIR}/../../../third_party/environments/venetian_crossroads_2k.hdr\"\n\n# The resgen tool generates an assembly file, resources.apple.S that gets compiled and linked\n# into the final binary. It contains all the resources consumed by the app.\n\"${resgen_path}\" \\\n --deploy=\"${PROJECT_DIR}/generated\" \\\n \"${PROJECT_DIR}/generated/material_sphere.filamesh\" \\\n \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_ibl.ktx\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_skybox.ktx\"\n\n# FilamentApp.cpp and Resources.S include files generated by resgen.\n# Touch them to force Xcode to recompile.\ntouch \"${PROJECT_DIR}/hello-pbr/FilamentApp.cpp\"\ntouch \"${PROJECT_DIR}/hello-pbr/Resources.S\"\n"; + shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The hello-pbr app requires four resources:\n# 1. The material sphere mesh\n# 2. The Filament material definition\n# 3. The IBL image\n# 4. The skybox image\n# These will be compiled into the final binary via the resgen tool.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\nfilamesh_path=`find -L ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1`\nmatc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\nresgen_path=`find -L ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`\ncmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${filamesh_path}\" ]]; then\n echo \"No filamesh binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${resgen_path}\" ]]; then\n echo \"No resgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# The filamesh tool converts the .obj file into a Filament-specific filamesh file that has been\n# optimized for loading into Filament.\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${filamesh_path}\" \\\n \"${PROJECT_DIR}/../../../assets/models/material_sphere/material_sphere.obj\" \\\n \"${PROJECT_DIR}/generated/material_sphere.filamesh\"\n\n# The matc tool compiles the clear_coat.mat material into a Filament material BLOB.\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/Materials/clear_coat.mat\"\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/venetian_crossroads_2k\" \\\n --format=ktx --size=256 --extract-blur=0.1 \\\n \"${PROJECT_DIR}/../../../third_party/environments/venetian_crossroads_2k.hdr\"\n\n# The resgen tool generates an assembly file, resources.apple.S that gets compiled and linked\n# into the final binary. It contains all the resources consumed by the app.\n\"${resgen_path}\" \\\n --deploy=\"${PROJECT_DIR}/generated\" \\\n \"${PROJECT_DIR}/generated/material_sphere.filamesh\" \\\n \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_ibl.ktx\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_skybox.ktx\"\n\n# FilamentApp.cpp and Resources.S include files generated by resgen.\n# Touch them to force Xcode to recompile.\ntouch \"${PROJECT_DIR}/hello-pbr/FilamentApp.cpp\"\ntouch \"${PROJECT_DIR}/hello-pbr/Resources.S\"\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -216,7 +335,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -279,12 +398,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-debug"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_OPENGL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-pbr/Info.plist"; @@ -293,26 +417,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-debug/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lfilameshio", - "-lmeshoptimizer", - "-limage", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-pbr"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -327,12 +431,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-release"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_OPENGL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-release/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-pbr/Info.plist"; @@ -341,26 +450,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-release/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lfilameshio", - "-lmeshoptimizer", - "-limage", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-pbr"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -375,12 +464,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-debug"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_METAL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-pbr/Info.plist"; @@ -389,26 +483,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-debug/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lfilameshio", - "-lmeshoptimizer", - "-limage", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-pbr"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -422,7 +496,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -477,7 +551,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -533,12 +607,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-release"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_METAL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-release/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-pbr/Info.plist"; @@ -547,26 +626,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-release/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - "-lfilameshio", - "-lmeshoptimizer", - "-limage", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-pbr"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -580,7 +639,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; diff --git a/ios/samples/hello-pbr/project.yml b/ios/samples/hello-pbr/project.yml index 36a6fd26a3ec..e86ece673256 100644 --- a/ios/samples/hello-pbr/project.yml +++ b/ios/samples/hello-pbr/project.yml @@ -6,9 +6,10 @@ targets: hello-pbr: templates: - FilamentApp - settings: - base: - OTHER_LDFLAGS: ["-lfilameshio", "-lmeshoptimizer", "-limage"] + dependencies: + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilameshio.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework + - framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework preBuildScripts: - path: build-resources.sh name: Build Resources diff --git a/ios/samples/hello-triangle/build-materials.sh b/ios/samples/hello-triangle/build-materials.sh index 9b34f918aab7..fda537eef808 100755 --- a/ios/samples/hello-triangle/build-materials.sh +++ b/ios/samples/hello-triangle/build-materials.sh @@ -1,7 +1,7 @@ # Compile bakedColor material. HOST_TOOLS_PATH="${HOST_TOOLS_PATH:-../../../out/release/filament/bin}" -matc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1` +matc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1` if [[ ! -e "${matc_path}" ]]; then echo "No matc binary could be found in ${HOST_TOOLS_PATH}." diff --git a/ios/samples/hello-triangle/hello-triangle.xcodeproj/project.pbxproj b/ios/samples/hello-triangle/hello-triangle.xcodeproj/project.pbxproj index 440cb3a4914e..9a8e5e486693 100644 --- a/ios/samples/hello-triangle/hello-triangle.xcodeproj/project.pbxproj +++ b/ios/samples/hello-triangle/hello-triangle.xcodeproj/project.pbxproj @@ -3,35 +3,113 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 77; objects = { /* Begin PBXBuildFile section */ + 0A3A34EAB98A45D1D4355A52 /* libbackend.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3BA0FF5017E4FECD94CF3F2 /* libbackend.xcframework */; }; + 0F0218402B9C73D7B3775497 /* libabseil.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D0F16339A5D96AB6AAF03A4C /* libabseil.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 12A40CB70167F2609E428EC6 /* libbackend.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F3BA0FF5017E4FECD94CF3F2 /* libbackend.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 1326DEBB610801CD041AE322 /* libibl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED0BAF80B49E29533E492727 /* libibl.xcframework */; }; + 291EA8BF9E335683AD324451 /* libfilabridge.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA668D9E9DC67AD1FA16422A /* libfilabridge.xcframework */; }; + 2DE5F1C322D1B8288CF6F1A9 /* libgeometry.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44224172FC58D500DEFE7A7D /* libgeometry.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 34826A3819309F25EAF82B78 /* libibl.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = ED0BAF80B49E29533E492727 /* libibl.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 371FE9F805A6B436B22EF70D /* libfilaflat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C4952E6805DB5E7B871DF61C /* libfilaflat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 4715F63AF782F1A15A37EFA8 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 45FE9476D47ECFFEA65D7146 /* AppDelegate.m */; }; 4B0C2B6E7D4BF89D8EDEB84F /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2620C967534D81CFFAB5D3FF /* ViewController.m */; }; + 5B76FEB9522BC17E14EF3270 /* libutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3604FD7E74C46AC4FAB12BFA /* libutils.xcframework */; }; 67B75B37DC3FFFE6BDD91455 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DDE4A219AEB5B4507F51B873 /* Main.storyboard */; }; + 68822E4B9059C8A1E67EF062 /* libfilament.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E36164E9425CAABBE17EF153 /* libfilament.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 6BBD88355CE6932E706CE45C /* libzstd.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8D062C70EFE8916B7656BB4E /* libzstd.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 7A4FA872EA928DB67BBF9351 /* libfilaflat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = C4952E6805DB5E7B871DF61C /* libfilaflat.xcframework */; }; 8897619E0912B69F232FCC88 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 524293A0A8CDE9047347EF48 /* Assets.xcassets */; }; + 915E0D1FE043E873C17EB0AB /* libgeometry.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44224172FC58D500DEFE7A7D /* libgeometry.xcframework */; }; + 966626FAF79F36B16F9AE201 /* libabseil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0F16339A5D96AB6AAF03A4C /* libabseil.xcframework */; }; + 96FBF778C4E3563A7C8D3A47 /* libsmol-v.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 727785EA0395D939E6804AF4 /* libsmol-v.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 978AB6421E245452AD8D9AE0 /* libktxreader.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = AC6CC7E260B2F20D0EA171E2 /* libktxreader.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; A05C6F2172B5C29D9A056E39 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 46A2FAD3D476FDADF45F70F8 /* LaunchScreen.storyboard */; }; AC1320F672694ABEF53EFAC8 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = E56C70616FF30C50DFA8238B /* main.m */; }; + AD9F281E6F4F05A4B98FD437 /* libutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3604FD7E74C46AC4FAB12BFA /* libutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + B156789E3EC8798928C58BD2 /* libsmol-v.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 727785EA0395D939E6804AF4 /* libsmol-v.xcframework */; }; BED52BA49D882353BBCEA4F4 /* FilamentView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0CDCD26337640C57D07E41ED /* FilamentView.mm */; }; + CF4322AB55566F31A284739B /* libktxreader.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = AC6CC7E260B2F20D0EA171E2 /* libktxreader.xcframework */; }; + D5837AE122E300682E245E00 /* libfilament.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = E36164E9425CAABBE17EF153 /* libfilament.xcframework */; }; + ECA5B4596C78D6B18043153D /* libfilabridge.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DA668D9E9DC67AD1FA16422A /* libfilabridge.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + ECE38C7FF5D52E4222C22216 /* libzstd.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8D062C70EFE8916B7656BB4E /* libzstd.xcframework */; }; /* End PBXBuildFile section */ +/* Begin PBXCopyFilesBuildPhase section */ + C514B8F3AF16FEA064256123 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 68822E4B9059C8A1E67EF062 /* libfilament.xcframework in Embed Frameworks */, + 12A40CB70167F2609E428EC6 /* libbackend.xcframework in Embed Frameworks */, + 371FE9F805A6B436B22EF70D /* libfilaflat.xcframework in Embed Frameworks */, + 978AB6421E245452AD8D9AE0 /* libktxreader.xcframework in Embed Frameworks */, + ECA5B4596C78D6B18043153D /* libfilabridge.xcframework in Embed Frameworks */, + AD9F281E6F4F05A4B98FD437 /* libutils.xcframework in Embed Frameworks */, + 96FBF778C4E3563A7C8D3A47 /* libsmol-v.xcframework in Embed Frameworks */, + 2DE5F1C322D1B8288CF6F1A9 /* libgeometry.xcframework in Embed Frameworks */, + 34826A3819309F25EAF82B78 /* libibl.xcframework in Embed Frameworks */, + 0F0218402B9C73D7B3775497 /* libabseil.xcframework in Embed Frameworks */, + 6BBD88355CE6932E706CE45C /* libzstd.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 0CDCD26337640C57D07E41ED /* FilamentView.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FilamentView.mm; sourceTree = ""; }; 2620C967534D81CFFAB5D3FF /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 350DC65C7EE8D98D8FE181DC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 3604FD7E74C46AC4FAB12BFA /* libutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework"; sourceTree = ""; }; 3BB2247EC7FE4EFB2C3ED10A /* hello-triangle.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "hello-triangle.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 41033B581E89DF4B33A2EB53 /* bakedColor.mat */ = {isa = PBXFileReference; path = bakedColor.mat; sourceTree = ""; }; + 44224172FC58D500DEFE7A7D /* libgeometry.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgeometry.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework"; sourceTree = ""; }; 45FE9476D47ECFFEA65D7146 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 524293A0A8CDE9047347EF48 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 727785EA0395D939E6804AF4 /* libsmol-v.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libsmol-v.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework"; sourceTree = ""; }; 761A2C7D6295697614AD3434 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 8D062C70EFE8916B7656BB4E /* libzstd.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libzstd.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework"; sourceTree = ""; }; + AC6CC7E260B2F20D0EA171E2 /* libktxreader.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libktxreader.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework"; sourceTree = ""; }; C16E9A84F33BDFAEDC1E4837 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; C311F8DEBEFEB185F0A7E4CC /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + C4952E6805DB5E7B871DF61C /* libfilaflat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilaflat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework"; sourceTree = ""; }; CDBB6BE341D1C708FCB68750 /* FilamentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentView.h; sourceTree = ""; }; + D0F16339A5D96AB6AAF03A4C /* libabseil.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libabseil.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework"; sourceTree = ""; }; + DA668D9E9DC67AD1FA16422A /* libfilabridge.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilabridge.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework"; sourceTree = ""; }; + E36164E9425CAABBE17EF153 /* libfilament.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilament.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework"; sourceTree = ""; }; E36D17DB3F44ADF8EFBEDBAF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; E56C70616FF30C50DFA8238B /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + ED0BAF80B49E29533E492727 /* libibl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libibl.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework"; sourceTree = ""; }; + F3BA0FF5017E4FECD94CF3F2 /* libbackend.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbackend.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework"; sourceTree = ""; }; /* End PBXFileReference section */ +/* Begin PBXFrameworksBuildPhase section */ + 3691C25600B8D42B8E9BC308 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D5837AE122E300682E245E00 /* libfilament.xcframework in Frameworks */, + 0A3A34EAB98A45D1D4355A52 /* libbackend.xcframework in Frameworks */, + 7A4FA872EA928DB67BBF9351 /* libfilaflat.xcframework in Frameworks */, + CF4322AB55566F31A284739B /* libktxreader.xcframework in Frameworks */, + 291EA8BF9E335683AD324451 /* libfilabridge.xcframework in Frameworks */, + 5B76FEB9522BC17E14EF3270 /* libutils.xcframework in Frameworks */, + B156789E3EC8798928C58BD2 /* libsmol-v.xcframework in Frameworks */, + 915E0D1FE043E873C17EB0AB /* libgeometry.xcframework in Frameworks */, + 1326DEBB610801CD041AE322 /* libibl.xcframework in Frameworks */, + 966626FAF79F36B16F9AE201 /* libabseil.xcframework in Frameworks */, + ECE38C7FF5D52E4222C22216 /* libzstd.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + /* Begin PBXGroup section */ 39FD47E0213E1FFE59609A06 /* Products */ = { isa = PBXGroup; @@ -41,11 +119,30 @@ name = Products; sourceTree = ""; }; + 554175C148AC5EDE93591BB3 /* Frameworks */ = { + isa = PBXGroup; + children = ( + D0F16339A5D96AB6AAF03A4C /* libabseil.xcframework */, + F3BA0FF5017E4FECD94CF3F2 /* libbackend.xcframework */, + DA668D9E9DC67AD1FA16422A /* libfilabridge.xcframework */, + C4952E6805DB5E7B871DF61C /* libfilaflat.xcframework */, + E36164E9425CAABBE17EF153 /* libfilament.xcframework */, + 44224172FC58D500DEFE7A7D /* libgeometry.xcframework */, + ED0BAF80B49E29533E492727 /* libibl.xcframework */, + AC6CC7E260B2F20D0EA171E2 /* libktxreader.xcframework */, + 727785EA0395D939E6804AF4 /* libsmol-v.xcframework */, + 3604FD7E74C46AC4FAB12BFA /* libutils.xcframework */, + 8D062C70EFE8916B7656BB4E /* libzstd.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; 5B3E3AAF5C75644908492410 = { isa = PBXGroup; children = ( C54ABC8D31D1863EF16253A0 /* hello-triangle */, 8F55D652979868A470D724FA /* Materials */, + 554175C148AC5EDE93591BB3 /* Frameworks */, 39FD47E0213E1FFE59609A06 /* Products */, ); sourceTree = ""; @@ -67,11 +164,11 @@ CDBB6BE341D1C708FCB68750 /* FilamentView.h */, 0CDCD26337640C57D07E41ED /* FilamentView.mm */, 761A2C7D6295697614AD3434 /* Info.plist */, - 46A2FAD3D476FDADF45F70F8 /* LaunchScreen.storyboard */, E56C70616FF30C50DFA8238B /* main.m */, - DDE4A219AEB5B4507F51B873 /* Main.storyboard */, C311F8DEBEFEB185F0A7E4CC /* ViewController.h */, 2620C967534D81CFFAB5D3FF /* ViewController.m */, + 46A2FAD3D476FDADF45F70F8 /* LaunchScreen.storyboard */, + DDE4A219AEB5B4507F51B873 /* Main.storyboard */, ); path = "hello-triangle"; sourceTree = ""; @@ -86,6 +183,8 @@ 668105208CE7DFC4DC55F8EC /* Build Materials */, 7B94E1FEEC48280815A91021 /* Sources */, 471869BF4E82B6ADC791072D /* Resources */, + 3691C25600B8D42B8E9BC308 /* Frameworks */, + C514B8F3AF16FEA064256123 /* Embed Frameworks */, ); buildRules = ( ); @@ -106,9 +205,10 @@ attributes = { BuildIndependentTargetsInParallel = YES; LastUpgradeCheck = 1430; + TargetAttributes = { + }; }; buildConfigurationList = 69A012BABE82CB5D1986B1BB /* Build configuration list for PBXProject "hello-triangle" */; - compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -117,7 +217,8 @@ ); mainGroup = 5B3E3AAF5C75644908492410; minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 54; + preferredProjectObjectVersion = 77; + productRefGroup = 39FD47E0213E1FFE59609A06 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -156,7 +257,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Compile bakedColor material.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\nmatc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${matc_path}\" \\\n --api all \\\n -f header \\\n -o \"${PROJECT_DIR}/generated/bakedColor.inc\" \\\n \"${PROJECT_DIR}/Materials/bakedColor.mat\"\n\n# FilamentView.mm includes bakedColor.filamat, so touch it to force Xcode to\n# recompile it.\ntouch \"${PROJECT_DIR}/hello-triangle/FilamentView.mm\"\n"; + shellScript = "# Compile bakedColor material.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\nmatc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${matc_path}\" \\\n --api all \\\n -f header \\\n -o \"${PROJECT_DIR}/generated/bakedColor.inc\" \\\n \"${PROJECT_DIR}/Materials/bakedColor.mat\"\n\n# FilamentView.mm includes bakedColor.filamat, so touch it to force Xcode to\n# recompile it.\ntouch \"${PROJECT_DIR}/hello-triangle/FilamentView.mm\"\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -201,12 +302,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-debug"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_OPENGL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-triangle/Info.plist"; @@ -215,23 +321,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-debug/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-triangle"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -245,7 +334,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -308,12 +397,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-release"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_METAL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-release/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-triangle/Info.plist"; @@ -322,23 +416,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-release/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-triangle"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -353,12 +430,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-release"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_OPENGL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-release/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-triangle/Info.plist"; @@ -367,23 +449,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-release/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-triangle"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -397,7 +462,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -452,7 +517,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -508,12 +573,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-debug"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_METAL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "hello-triangle/Info.plist"; @@ -522,23 +592,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-debug/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-triangle"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -552,7 +605,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; diff --git a/ios/samples/transparent-rendering/build-materials.sh b/ios/samples/transparent-rendering/build-materials.sh index 739db37dfbe2..3be96c07f818 100755 --- a/ios/samples/transparent-rendering/build-materials.sh +++ b/ios/samples/transparent-rendering/build-materials.sh @@ -1,7 +1,7 @@ # Compile bakedColor material. HOST_TOOLS_PATH="${HOST_TOOLS_PATH:-../../../out/release/filament/bin}" -matc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1` +matc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1` if [[ ! -e "${matc_path}" ]]; then echo "No matc binary could be found in ${HOST_TOOLS_PATH}." diff --git a/ios/samples/transparent-rendering/transparent-rendering.xcodeproj/project.pbxproj b/ios/samples/transparent-rendering/transparent-rendering.xcodeproj/project.pbxproj index e0441346563a..92cfc41eddae 100644 --- a/ios/samples/transparent-rendering/transparent-rendering.xcodeproj/project.pbxproj +++ b/ios/samples/transparent-rendering/transparent-rendering.xcodeproj/project.pbxproj @@ -3,34 +3,112 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 77; objects = { /* Begin PBXBuildFile section */ + 1277F800D6D46E364FC36888 /* libgeometry.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 567E8EB7B4914540B082DA80 /* libgeometry.xcframework */; }; + 1E31EA1A79A550407E4A39BB /* libzstd.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2AF349D32EBA154923EABB5 /* libzstd.xcframework */; }; + 23318D8F70A6E13214CF15E0 /* libutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 91DE2DCC79C7DD9D830D883B /* libutils.xcframework */; }; + 243D3B219322B6BD829F39F8 /* libktxreader.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6D7469820FD760B1040BFD2 /* libktxreader.xcframework */; }; + 3A1A568B3431D8FB66F60DB3 /* libabseil.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B254EC414E4905EC4CA22173 /* libabseil.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 527FF7B484BA83BCC248B097 /* libfilabridge.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 393E02B47C7710AB8B1F257A /* libfilabridge.xcframework */; }; + 593638720D5E6F09E52ECB01 /* libibl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = E1C8DFBE4D515753D5B51FF1 /* libibl.xcframework */; }; + 5F8AE993649815236EC665EB /* libibl.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E1C8DFBE4D515753D5B51FF1 /* libibl.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 60C0A11E074409CE5F88B4FE /* libbackend.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6EB7C2D5C91942D2B1EA056D /* libbackend.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 616A1B9A177BA2F02C920165 /* libfilaflat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0202CBA0AE1EAA3EE3DE0FFC /* libfilaflat.xcframework */; }; 643749757FD9F8A609A336C7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E749A05E4E5F36757FB9399C /* Assets.xcassets */; }; 65FE8CD16998C5D479C9858E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C8CF5D9EB8BA11B44F639DFE /* AppDelegate.m */; }; + 6B53BDEF1DAB8E4AD8CE754B /* libfilabridge.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 393E02B47C7710AB8B1F257A /* libfilabridge.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 7032AB98BE03DFE8E3071FD0 /* libbackend.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EB7C2D5C91942D2B1EA056D /* libbackend.xcframework */; }; + 715FFF9658000B58BFEC22C6 /* libutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 91DE2DCC79C7DD9D830D883B /* libutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 740AB9277340CDD2222020E2 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AA728ADDAAE09D3A5FD80C82 /* main.m */; }; 7F65E29DE4BF2CAA0D0759AA /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 959043C1F56EAAE872B0FF05 /* Main.storyboard */; }; + 80F7D25E275FE8C31AF9196E /* libzstd.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E2AF349D32EBA154923EABB5 /* libzstd.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 852D4BD096E865D7263928C8 /* libabseil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = B254EC414E4905EC4CA22173 /* libabseil.xcframework */; }; + 8DA900E9A495C25262F78773 /* libgeometry.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 567E8EB7B4914540B082DA80 /* libgeometry.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9F3C8B197C22178413BBAA37 /* libfilaflat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0202CBA0AE1EAA3EE3DE0FFC /* libfilaflat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + A0FCB25FCDAE129BB6369957 /* libfilament.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF18A248DCF11412DDFAB5AE /* libfilament.xcframework */; }; A9C3D93FE47802953C8A0868 /* FilamentView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A807B46A326F19ABCEE0D62 /* FilamentView.mm */; }; + BA514AFE134AFD317CD71AA1 /* libsmol-v.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 26B0C9089541BEB14FE28934 /* libsmol-v.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + C8F443E4A5064C2D1F755954 /* libsmol-v.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26B0C9089541BEB14FE28934 /* libsmol-v.xcframework */; }; CAB4734A7E608F3C36C4C9C8 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E6D9072BB2A497EEE9A7B662 /* ViewController.m */; }; + CDF7D87AB0D036A143F37946 /* libfilament.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DF18A248DCF11412DDFAB5AE /* libfilament.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; DF6374DDCFE55DD536B52033 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 96B770972E0F353852755AB3 /* LaunchScreen.storyboard */; }; + F6EEC66B42DF66E5C4CEC17C /* libktxreader.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A6D7469820FD760B1040BFD2 /* libktxreader.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; /* End PBXBuildFile section */ +/* Begin PBXCopyFilesBuildPhase section */ + 89F6975F74EBC72BCCA1074F /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + CDF7D87AB0D036A143F37946 /* libfilament.xcframework in Embed Frameworks */, + 60C0A11E074409CE5F88B4FE /* libbackend.xcframework in Embed Frameworks */, + 9F3C8B197C22178413BBAA37 /* libfilaflat.xcframework in Embed Frameworks */, + F6EEC66B42DF66E5C4CEC17C /* libktxreader.xcframework in Embed Frameworks */, + 6B53BDEF1DAB8E4AD8CE754B /* libfilabridge.xcframework in Embed Frameworks */, + 715FFF9658000B58BFEC22C6 /* libutils.xcframework in Embed Frameworks */, + BA514AFE134AFD317CD71AA1 /* libsmol-v.xcframework in Embed Frameworks */, + 8DA900E9A495C25262F78773 /* libgeometry.xcframework in Embed Frameworks */, + 5F8AE993649815236EC665EB /* libibl.xcframework in Embed Frameworks */, + 3A1A568B3431D8FB66F60DB3 /* libabseil.xcframework in Embed Frameworks */, + 80F7D25E275FE8C31AF9196E /* libzstd.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ + 0202CBA0AE1EAA3EE3DE0FFC /* libfilaflat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilaflat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework"; sourceTree = ""; }; 023105B81B6C662A3BABDC92 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 0A8B371B11D177469DFEBB86 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 1A807B46A326F19ABCEE0D62 /* FilamentView.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FilamentView.mm; sourceTree = ""; }; + 26B0C9089541BEB14FE28934 /* libsmol-v.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libsmol-v.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework"; sourceTree = ""; }; 2F32AE4C99AA8AE39BB09F0A /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + 393E02B47C7710AB8B1F257A /* libfilabridge.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilabridge.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework"; sourceTree = ""; }; + 567E8EB7B4914540B082DA80 /* libgeometry.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgeometry.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework"; sourceTree = ""; }; + 6EB7C2D5C91942D2B1EA056D /* libbackend.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbackend.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework"; sourceTree = ""; }; 7ED3EBFE01876351CFF9AD1A /* transparent-rendering.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "transparent-rendering.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 91DE2DCC79C7DD9D830D883B /* libutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework"; sourceTree = ""; }; 952B0BE8EFAEF9B6FCB77798 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; A5E8D7CA26C338BF3D9D1932 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + A6D7469820FD760B1040BFD2 /* libktxreader.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libktxreader.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework"; sourceTree = ""; }; AA728ADDAAE09D3A5FD80C82 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + B254EC414E4905EC4CA22173 /* libabseil.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libabseil.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework"; sourceTree = ""; }; BD21E933E2F77EE5ACBCDD5F /* FilamentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentView.h; sourceTree = ""; }; C8CF5D9EB8BA11B44F639DFE /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + DF18A248DCF11412DDFAB5AE /* libfilament.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilament.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework"; sourceTree = ""; }; + E1C8DFBE4D515753D5B51FF1 /* libibl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libibl.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework"; sourceTree = ""; }; + E2AF349D32EBA154923EABB5 /* libzstd.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libzstd.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework"; sourceTree = ""; }; E6D9072BB2A497EEE9A7B662 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; E749A05E4E5F36757FB9399C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; /* End PBXFileReference section */ +/* Begin PBXFrameworksBuildPhase section */ + 9267558086B89E5F350ADDC4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A0FCB25FCDAE129BB6369957 /* libfilament.xcframework in Frameworks */, + 7032AB98BE03DFE8E3071FD0 /* libbackend.xcframework in Frameworks */, + 616A1B9A177BA2F02C920165 /* libfilaflat.xcframework in Frameworks */, + 243D3B219322B6BD829F39F8 /* libktxreader.xcframework in Frameworks */, + 527FF7B484BA83BCC248B097 /* libfilabridge.xcframework in Frameworks */, + 23318D8F70A6E13214CF15E0 /* libutils.xcframework in Frameworks */, + C8F443E4A5064C2D1F755954 /* libsmol-v.xcframework in Frameworks */, + 1277F800D6D46E364FC36888 /* libgeometry.xcframework in Frameworks */, + 593638720D5E6F09E52ECB01 /* libibl.xcframework in Frameworks */, + 852D4BD096E865D7263928C8 /* libabseil.xcframework in Frameworks */, + 1E31EA1A79A550407E4A39BB /* libzstd.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + /* Begin PBXGroup section */ 0B098038EF2CFAC88AFE0F18 /* Products */ = { isa = PBXGroup; @@ -44,6 +122,7 @@ isa = PBXGroup; children = ( 6E33B6C4EE9FFF8BBCE5DD20 /* transparent-rendering */, + C5AF8AD86B58EF5D0BD7B0B2 /* Frameworks */, 0B098038EF2CFAC88AFE0F18 /* Products */, ); sourceTree = ""; @@ -57,15 +136,33 @@ BD21E933E2F77EE5ACBCDD5F /* FilamentView.h */, 1A807B46A326F19ABCEE0D62 /* FilamentView.mm */, 952B0BE8EFAEF9B6FCB77798 /* Info.plist */, - 96B770972E0F353852755AB3 /* LaunchScreen.storyboard */, AA728ADDAAE09D3A5FD80C82 /* main.m */, - 959043C1F56EAAE872B0FF05 /* Main.storyboard */, 2F32AE4C99AA8AE39BB09F0A /* ViewController.h */, E6D9072BB2A497EEE9A7B662 /* ViewController.m */, + 96B770972E0F353852755AB3 /* LaunchScreen.storyboard */, + 959043C1F56EAAE872B0FF05 /* Main.storyboard */, ); path = "transparent-rendering"; sourceTree = ""; }; + C5AF8AD86B58EF5D0BD7B0B2 /* Frameworks */ = { + isa = PBXGroup; + children = ( + B254EC414E4905EC4CA22173 /* libabseil.xcframework */, + 6EB7C2D5C91942D2B1EA056D /* libbackend.xcframework */, + 393E02B47C7710AB8B1F257A /* libfilabridge.xcframework */, + 0202CBA0AE1EAA3EE3DE0FFC /* libfilaflat.xcframework */, + DF18A248DCF11412DDFAB5AE /* libfilament.xcframework */, + 567E8EB7B4914540B082DA80 /* libgeometry.xcframework */, + E1C8DFBE4D515753D5B51FF1 /* libibl.xcframework */, + A6D7469820FD760B1040BFD2 /* libktxreader.xcframework */, + 26B0C9089541BEB14FE28934 /* libsmol-v.xcframework */, + 91DE2DCC79C7DD9D830D883B /* libutils.xcframework */, + E2AF349D32EBA154923EABB5 /* libzstd.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -76,6 +173,8 @@ 31596072423F6FB0A84C97A0 /* Build Materials */, EE3B63E6A11EDDBC48502B27 /* Sources */, A676D3A853739CDAB454587E /* Resources */, + 9267558086B89E5F350ADDC4 /* Frameworks */, + 89F6975F74EBC72BCCA1074F /* Embed Frameworks */, ); buildRules = ( ); @@ -96,9 +195,10 @@ attributes = { BuildIndependentTargetsInParallel = YES; LastUpgradeCheck = 1430; + TargetAttributes = { + }; }; buildConfigurationList = 8A22BD23DB15965551506480 /* Build configuration list for PBXProject "transparent-rendering" */; - compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -107,7 +207,8 @@ ); mainGroup = 4C27390036DEB15C67D5A664; minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 54; + preferredProjectObjectVersion = 77; + productRefGroup = 0B098038EF2CFAC88AFE0F18 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -146,7 +247,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Compile bakedColor material.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\nmatc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${matc_path}\" \\\n --api all \\\n -f header \\\n -o \"${PROJECT_DIR}/generated/bakedColor.inc\" \\\n \"${PROJECT_DIR}/Materials/bakedColor.mat\"\n\n# FilamentView.mm includes bakedColor.filamat, so touch it to force Xcode to\n# recompile it.\ntouch \"${PROJECT_DIR}/transparent-rendering/FilamentView.mm\"\n"; + shellScript = "# Compile bakedColor material.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\nmatc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${matc_path}\" \\\n --api all \\\n -f header \\\n -o \"${PROJECT_DIR}/generated/bakedColor.inc\" \\\n \"${PROJECT_DIR}/Materials/bakedColor.mat\"\n\n# FilamentView.mm includes bakedColor.filamat, so touch it to force Xcode to\n# recompile it.\ntouch \"${PROJECT_DIR}/transparent-rendering/FilamentView.mm\"\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -190,7 +291,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -245,7 +346,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -307,7 +408,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -363,12 +464,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-release"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_OPENGL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-release/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "transparent-rendering/Info.plist"; @@ -377,23 +483,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-release/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.transparent-rendering"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -408,12 +497,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-debug"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_METAL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "transparent-rendering/Info.plist"; @@ -422,23 +516,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-debug/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.transparent-rendering"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -453,12 +530,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-debug"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_OPENGL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "transparent-rendering/Info.plist"; @@ -467,23 +549,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-debug/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.transparent-rendering"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -498,12 +563,17 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; + FILAMENT_OUT_NAME = "ios-release"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"", + ); GCC_PREPROCESSOR_DEFINITIONS = ( "FILAMENT_APP_USE_METAL=1", "$(inherited)", ); HEADER_SEARCH_PATHS = ( - "../../../out/ios-release/filament/include", + "$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", generated, ); INFOPLIST_FILE = "transparent-rendering/Info.plist"; @@ -512,23 +582,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)", - "../../../out/ios-release/filament/lib/universal", - ); - OTHER_LDFLAGS = ( - "-lfilament", - "-lbackend", - "-lfilaflat", - "-lktxreader", - "-lfilabridge", - "-lutils", - "-lsmol-v", - "-lgeometry", - "-libl", - "-labseil", - "-lzstd", - ); PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.transparent-rendering"; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SDKROOT = iphoneos; @@ -542,7 +595,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; diff --git a/libs/imagediff/CMakeLists.txt b/libs/imagediff/CMakeLists.txt index 93ee10cf12cd..65ccb1b3aa45 100644 --- a/libs/imagediff/CMakeLists.txt +++ b/libs/imagediff/CMakeLists.txt @@ -22,4 +22,4 @@ if (NOT ANDROID AND NOT WASM AND NOT IOS) target_link_libraries(test_imagediff PRIVATE imagediff gtest image utils) endif() -install(TARGETS imagediff ARCHIVE DESTINATION lib/${DIST_ARCH} LIBRARY DESTINATION lib/${DIST_ARCH}) +install(TARGETS imagediff ARCHIVE DESTINATION lib/${DIST_DIR} LIBRARY DESTINATION lib/${DIST_DIR}) diff --git a/third_party/clang/iOS.cmake b/third_party/clang/iOS.cmake index 744948943ccb..525f163c1817 100644 --- a/third_party/clang/iOS.cmake +++ b/third_party/clang/iOS.cmake @@ -21,6 +21,8 @@ if(PLATFORM_NAME STREQUAL "iphonesimulator") add_definitions(-DFILAMENT_IOS_SIMULATOR) # The simulator only supports iOS >= 13.0 set(IOS_MIN_TARGET "13.0") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -target ${IOS_ARCH}-apple-ios${IOS_MIN_TARGET}-simulator") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -target ${IOS_ARCH}-apple-ios${IOS_MIN_TARGET}-simulator") endif() SET(CMAKE_SYSTEM_NAME Darwin)