86 lines
2.7 KiB
CMake
86 lines
2.7 KiB
CMake
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_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" "$<TARGET_BUNDLE_DIR:app>/Info.plist"
|
|
COMMENT "Injecting CFBundleShortVersionString..."
|
|
)
|
|
|
|
add_custom_command(TARGET app POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
|
"$<TARGET_BUNDLE_DIR:ios-sdk-static>/Mapbox.bundle"
|
|
"$<TARGET_BUNDLE_DIR:app>/Mapbox.bundle"
|
|
COMMAND ls "$<TARGET_BUNDLE_DIR:app>"
|
|
)
|
|
|
|
# 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 "$<TARGET_BUNDLE_DIR:app>/ParticleSmokeFixtures"
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
"${CMAKE_SOURCE_DIR}/integration/react-native/MapLibreParticleRNTestHost/assets/qbin-golden/wind/T0.qbin"
|
|
"$<TARGET_BUNDLE_DIR:app>/ParticleSmokeFixtures/T0.qbin"
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
"${CMAKE_SOURCE_DIR}/integration/react-native/MapLibreParticleRNTestHost/assets/qbin-golden/wind/T1.qbin"
|
|
"$<TARGET_BUNDLE_DIR:app>/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()
|