cmake_minimum_required(VERSION 3.20) project(app LANGUAGES C CXX OBJC OBJCXX) set(CMAKE_OSX_ARCHITECTURES "arm64") set(CMAKE_OSX_DEPLOYMENT_TARGET "14.0") file(GLOB APP_SOURCES CONFIGURE_DEPENDS "*.m" "*.mm" ) set(APP_RESOURCES Assets.xcassets Base.lproj LaunchScreen.storyboard Main.storyboard Settings.bundle ) add_executable(app ${APP_SOURCES} ${APP_RESOURCES} ) target_include_directories( app PRIVATE "${PROJECT_SOURCE_DIR}" # STEP-081 private Core smoke seam: RasterArraySource currently references # one particle adapter header that intentionally remains under src/. "${CMAKE_SOURCE_DIR}/src" ) set_target_properties(app PROPERTIES MACOSX_BUNDLE YES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_LIST_DIR}/Info.plist" XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "org.maplibre.app" XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2" XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "YES" XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "${DEVELOPMENT_TEAM_ID}" XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer" XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC "YES" ) add_custom_command(TARGET app POST_BUILD COMMAND plutil -insert CFBundleShortVersionString -string "1.0.0" "$/Info.plist" COMMENT "Injecting CFBundleShortVersionString..." ) add_custom_command(TARGET app POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "$/Mapbox.bundle" "$/Mapbox.bundle" COMMAND ls "$" ) # STEP-081 deterministic formal particle fixtures for Metal bring-up. foreach(particle_fixture uniform-east uniform-north vortex) add_custom_command(TARGET app POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "$/ParticleCoreFixtures/${particle_fixture}" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/particle-fixtures/${particle_fixture}/metadata.json" "$/ParticleCoreFixtures/${particle_fixture}/metadata.json" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/particle-fixtures/${particle_fixture}/field.f32" "$/ParticleCoreFixtures/${particle_fixture}/field.f32" ) endforeach() # STEP-081 test-only QBIN V4 fixture handoff. The canonical files remain in # the RN Test Host; this copies them into the app bundle without a new format. add_custom_command(TARGET app POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "$/ParticleSmokeFixtures" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/integration/react-native/MapLibreParticleRNTestHost/assets/qbin-golden/wind/T0.qbin" "$/ParticleSmokeFixtures/T0.qbin" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/integration/react-native/MapLibreParticleRNTestHost/assets/qbin-golden/wind/T1.qbin" "$/ParticleSmokeFixtures/T1.qbin" COMMENT "Copying STEP-081 Particle QBIN V4 smoke fixtures..." ) if(TARGET custom-layer-examples) target_link_libraries( app custom-layer-examples # ios-sdk-static transitive dependency ) else() target_link_libraries( app ios-sdk-static ) endif() foreach(resource_file ${APP_RESOURCES}) set_source_files_properties( ${resource_file} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources" ) endforeach()