From dd74d1e84a781a41691cfd0de592d153c8795b65 Mon Sep 17 00:00:00 2001 From: Bart Louwers Date: Thu, 21 Sep 2023 18:53:19 +0200 Subject: [PATCH] Fix XCFramework umbrella header (#1674) --- .github/workflows/ios-ci.yml | 1 + platform/BUILD.bazel | 2 +- platform/ios/BUILD.bazel | 58 ++++++++++--------- platform/ios/bazel/files.bzl | 1 - .../ios/src/{Mapbox.h => Mapbox.template.h} | 0 5 files changed, 34 insertions(+), 28 deletions(-) rename platform/ios/src/{Mapbox.h => Mapbox.template.h} (100%) diff --git a/.github/workflows/ios-ci.yml b/.github/workflows/ios-ci.yml index 9a8b4ebdb..bae2e0d82 100644 --- a/.github/workflows/ios-ci.yml +++ b/.github/workflows/ios-ci.yml @@ -26,6 +26,7 @@ jobs: - id: skip_check uses: fkirc/skip-duplicate-actions@v5 with: + do_not_skip: '["workflow_dispatch", "push"]' paths: | ["CMakeLists.txt", "platform/ios/**", diff --git a/platform/BUILD.bazel b/platform/BUILD.bazel index 7f77fff1c..56f19f423 100644 --- a/platform/BUILD.bazel +++ b/platform/BUILD.bazel @@ -236,7 +236,7 @@ sh_binary( "//platform/macos:macos_objc_srcs", "//platform/macos:macos_objcpp_srcs", "//platform/macos:macos_private_hdrs", - "//platform/macos:macos_public_hdrs", + "//platform/macos:macos_public_hdrs" ] + select({ "//:metal_renderer": [], "//conditions:default": [ diff --git a/platform/ios/BUILD.bazel b/platform/ios/BUILD.bazel index 5332440c5..05402b4b0 100644 --- a/platform/ios/BUILD.bazel +++ b/platform/ios/BUILD.bazel @@ -5,21 +5,20 @@ load( "@rules_xcodeproj//xcodeproj:defs.bzl", "top_level_target", "xcodeproj", - "xcode_schemes", ) -load("//platform/ios/bazel:macros.bzl", "info_plist") load("//platform/ios/bazel:config.bzl", "BUILD_MODE", "BUNDLE_ID_PREFIX") load( "//platform/ios/bazel:files.bzl", "MLN_IOS_PRIVATE_HEADERS", "MLN_IOS_PUBLIC_HEADERS", - "MLN_IOS_PUBLIC_OBJCPP_SOURCE", - "MLN_IOS_PUBLIC_OBJCPP_OPENGL_SOURCE", "MLN_IOS_PUBLIC_OBJCPP_METAL_SOURCE", + "MLN_IOS_PUBLIC_OBJCPP_OPENGL_SOURCE", + "MLN_IOS_PUBLIC_OBJCPP_SOURCE", "MLN_IOS_PUBLIC_OBJC_SOURCE", "MLN_IOS_SDK_HEADERS", "MLN_PUBLIC_IOS_APP_SOPURCE", ) +load("//platform/ios/bazel:macros.bzl", "info_plist") load("//platform/ios/bazel:provisioning.bzl", "configure_device_profiles") configure_device_profiles() @@ -30,9 +29,23 @@ filegroup( visibility = ["//visibility:public"], ) +# this can be removed once the legacy renderer is removed completely for iOS +genrule( + name = "umbrella_header", + srcs = ["src/Mapbox.template.h"], + outs = ["src/Mapbox.h"], + cmd = select({ + "//:metal_renderer": """ + echo "#define MLN_RENDER_BACKEND_METAL 1" > $@; + cat $(location src/Mapbox.template.h) >> $@; + """, + "//conditions:default": "cat $(location src/Mapbox.template.h) >> $@" + }), +) + filegroup( name = "ios_public_hdrs", - srcs = MLN_IOS_PUBLIC_HEADERS, + srcs = MLN_IOS_PUBLIC_HEADERS + [":umbrella_header"], visibility = ["//visibility:public"], ) @@ -81,6 +94,15 @@ info_plist( base_info_plist = "app/Info.plist", ) +public_hdrs = [ + ":umbrella_header", + ":ios_public_hdrs", + ":ios_sdk_hdrs", + "//platform/darwin:darwin_objc_hdrs", + "//platform/darwin:darwin_objcpp_hdrs", + "//platform/darwin:generated_style_public_hdrs", +] + apple_static_xcframework( name = "MapLibre.static", bundle_name = "MapLibre", @@ -92,16 +114,8 @@ apple_static_xcframework( "device": ["arm64"], }, minimum_os_versions = {"ios": "12.0"}, - public_hdrs = [ - ":ios_public_hdrs", - ":ios_sdk_hdrs", - "//platform/darwin:darwin_objc_hdrs", - "//platform/darwin:darwin_objcpp_hdrs", - ] + select({ - "//:metal_renderer": [], - "//conditions:default": [], - }), - umbrella_header = "src/Mapbox.h", + public_hdrs = public_hdrs, + umbrella_header = "umbrella_header", visibility = ["//visibility:public"], deps = ["//platform:ios-sdk"], ) @@ -123,16 +137,8 @@ apple_xcframework( "device": ["arm64"], }, minimum_os_versions = {"ios": "12.0"}, - public_hdrs = [ - ":ios_public_hdrs", - ":ios_sdk_hdrs", - "//platform/darwin:darwin_objc_hdrs", - "//platform/darwin:darwin_objcpp_hdrs", - ] + select({ - "//:metal_renderer": [], - "//conditions:default": [], - }), - umbrella_header = "src/Mapbox.h", + public_hdrs = public_hdrs, + umbrella_header = "umbrella_header", visibility = ["//visibility:public"], deps = ["//platform:ios-sdk-dynamic"], ) @@ -327,5 +333,5 @@ exports_files( MLN_IOS_PUBLIC_OBJCPP_METAL_SOURCE + MLN_IOS_PUBLIC_OBJCPP_OPENGL_SOURCE + MLN_IOS_PUBLIC_OBJC_SOURCE + - MLN_PUBLIC_IOS_APP_SOPURCE + MLN_PUBLIC_IOS_APP_SOPURCE, ) diff --git a/platform/ios/bazel/files.bzl b/platform/ios/bazel/files.bzl index 7b2ebfb0b..0a8685216 100644 --- a/platform/ios/bazel/files.bzl +++ b/platform/ios/bazel/files.bzl @@ -25,7 +25,6 @@ MLN_IOS_PUBLIC_HEADERS = [ "src/MLNUserLocationHeadingArrowLayer.h", "src/MLNUserLocationHeadingBeamLayer.h", "src/MLNUserLocationHeadingIndicator.h", - "src/Mapbox.h", "src/NSOrthography+MLNAdditions.h", "src/UIColor+MLNAdditions.h", "src/UIDevice+MLNAdditions.h", diff --git a/platform/ios/src/Mapbox.h b/platform/ios/src/Mapbox.template.h similarity index 100% rename from platform/ios/src/Mapbox.h rename to platform/ios/src/Mapbox.template.h