Bazel Updates, Code generation (#1285)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
152
BUILD.bazel
152
BUILD.bazel
@@ -1,67 +1,55 @@
|
|||||||
load("//bazel:flags.bzl", "CPP_FLAGS", "MAPLIBRE_FLAGS")
|
load("//bazel:flags.bzl", "CPP_FLAGS", "MAPLIBRE_FLAGS")
|
||||||
load("@bazel_skylib//rules:common_settings.bzl", "string_flag")
|
load("@bazel_skylib//rules:common_settings.bzl", "string_flag")
|
||||||
load("//bazel:core.bzl", "MLN_CORE_SOURCE", "MLN_CORE_HEADERS", "MLN_OPENGL_SOURCE", "MLN_OPENGL_HEADERS", "MLN_DRAWABLES_SOURCE", "MLN_DRAWABLES_HEADERS")
|
load("//bazel:core.bzl",
|
||||||
|
"MLN_PUBLIC_GENERATED_STYLE_HEADERS",
|
||||||
string_flag(
|
"MLN_PRIVATE_GENERATED_STYLE_HEADERS",
|
||||||
name = "renderer",
|
"MLN_GENERATED_STYLE_SOURCE",
|
||||||
build_setting_default = "drawable",
|
"MLN_GENERATED_SHADER_HEADERS",
|
||||||
values=["legacy", "drawable", "split"]
|
"MLN_CORE_SOURCE",
|
||||||
)
|
"MLN_CORE_HEADERS",
|
||||||
|
"MLN_OPENGL_SOURCE",
|
||||||
config_setting(
|
"MLN_OPENGL_HEADERS",
|
||||||
name = "legacy_renderer",
|
"MLN_DRAWABLES_SOURCE",
|
||||||
flag_values = {
|
"MLN_DRAWABLES_HEADERS",
|
||||||
":renderer": "legacy"
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
config_setting(
|
|
||||||
name = "drawable_renderer",
|
|
||||||
flag_values = {
|
|
||||||
":renderer": "drawable"
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
config_setting(
|
|
||||||
name = "split_renderer",
|
|
||||||
flag_values = {
|
|
||||||
":renderer": "split"
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
load("//bazel:macros.bzl", "appendList")
|
||||||
|
|
||||||
# Generate code required by the core
|
# Generate code required by the core
|
||||||
|
# All generated code is placed in the prefix location __generated__
|
||||||
|
# by our generator scripts and genrules
|
||||||
|
PREFIXED = {
|
||||||
|
"MLN_PUBLIC_GENERATED_STYLE_HEADERS": appendList(MLN_PUBLIC_GENERATED_STYLE_HEADERS, "__generated__/"),
|
||||||
|
"MLN_PRIVATE_GENERATED_STYLE_HEADERS": appendList(MLN_PRIVATE_GENERATED_STYLE_HEADERS, "__generated__/"),
|
||||||
|
"MLN_GENERATED_STYLE_SOURCE": appendList(MLN_GENERATED_STYLE_SOURCE, "__generated__/"),
|
||||||
|
"MLN_GENERATED_SHADER_HEADERS": appendList(MLN_GENERATED_SHADER_HEADERS, "__generated__/"),
|
||||||
|
}
|
||||||
|
|
||||||
filegroup(
|
filegroup(
|
||||||
name = "style_data",
|
name = "style_data",
|
||||||
srcs = glob(
|
srcs = glob(["**/*.ejs"], allow_empty = False)
|
||||||
["**/*.ejs"],
|
|
||||||
allow_empty = False,
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
genrule(
|
genrule(
|
||||||
name = "generated_style_code",
|
name = "generated_style_code",
|
||||||
srcs = ["style_data"],
|
|
||||||
outs = MLN_PUBLIC_GENERATED_STYLE_HEADERS +
|
|
||||||
MLN_PRIVATE_GENERATED_STYLE_HEADERS +
|
|
||||||
MLN_GENERATED_STYLE_SOURCE,
|
|
||||||
cmd = "node $(execpath scripts/generate-style-code.js) --root $(RULEDIR)",
|
cmd = "node $(execpath scripts/generate-style-code.js) --root $(RULEDIR)",
|
||||||
tools = ["scripts/generate-style-code.js"],
|
tools = ["scripts/generate-style-code.js"],
|
||||||
|
srcs = ["style_data"],
|
||||||
|
outs = PREFIXED["MLN_PUBLIC_GENERATED_STYLE_HEADERS"]
|
||||||
|
+ PREFIXED["MLN_PRIVATE_GENERATED_STYLE_HEADERS"]
|
||||||
|
+ PREFIXED["MLN_GENERATED_STYLE_SOURCE"],
|
||||||
)
|
)
|
||||||
|
|
||||||
filegroup(
|
filegroup(
|
||||||
name = "shader_data",
|
name = "shader_data",
|
||||||
srcs = ["shaders/manifest.json"] + glob(
|
srcs = ["shaders/manifest.json"] + glob(["shaders/*.glsl"], allow_empty = False)
|
||||||
["shaders/*.glsl"],
|
|
||||||
allow_empty = False,
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
genrule(
|
genrule(
|
||||||
name = "generated_shaders",
|
name = "generated_shaders",
|
||||||
srcs = ["shader_data"],
|
|
||||||
outs = MLN_GENERATED_SHADER_HEADERS,
|
|
||||||
cmd = "node $(execpath shaders/generate_shader_code.js) --root $(RULEDIR)",
|
cmd = "node $(execpath shaders/generate_shader_code.js) --root $(RULEDIR)",
|
||||||
tools = ["shaders/generate_shader_code.js"],
|
tools = ["shaders/generate_shader_code.js"],
|
||||||
|
srcs = ["shader_data"],
|
||||||
|
outs = PREFIXED["MLN_GENERATED_SHADER_HEADERS"],
|
||||||
)
|
)
|
||||||
|
|
||||||
# This header only target strips the __generated__ prefix for the compiler
|
# This header only target strips the __generated__ prefix for the compiler
|
||||||
@@ -69,12 +57,13 @@ genrule(
|
|||||||
cc_library(
|
cc_library(
|
||||||
name = "mbgl-core-generated-public-artifacts",
|
name = "mbgl-core-generated-public-artifacts",
|
||||||
srcs = [],
|
srcs = [],
|
||||||
hdrs = MLN_PUBLIC_GENERATED_STYLE_HEADERS +
|
hdrs = PREFIXED["MLN_PUBLIC_GENERATED_STYLE_HEADERS"]
|
||||||
MLN_GENERATED_SHADER_HEADERS,
|
+ PREFIXED["MLN_GENERATED_SHADER_HEADERS"],
|
||||||
|
strip_include_prefix = "__generated__/include",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
":generated_shaders",
|
|
||||||
":generated_style_code",
|
":generated_style_code",
|
||||||
|
":generated_shaders",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -82,7 +71,8 @@ cc_library(
|
|||||||
cc_library(
|
cc_library(
|
||||||
name = "mbgl-core-generated-private-artifacts",
|
name = "mbgl-core-generated-private-artifacts",
|
||||||
srcs = [],
|
srcs = [],
|
||||||
hdrs = MLN_PRIVATE_GENERATED_STYLE_HEADERS,
|
hdrs = PREFIXED["MLN_PRIVATE_GENERATED_STYLE_HEADERS"],
|
||||||
|
strip_include_prefix = "__generated__/src",
|
||||||
visibility = ["//visibility:private"],
|
visibility = ["//visibility:private"],
|
||||||
deps = [
|
deps = [
|
||||||
":generated_style_code",
|
":generated_style_code",
|
||||||
@@ -93,21 +83,36 @@ cc_library(
|
|||||||
# the prefix from the path.
|
# the prefix from the path.
|
||||||
cc_library(
|
cc_library(
|
||||||
name = "mbgl-core",
|
name = "mbgl-core",
|
||||||
srcs = MLN_CORE_SOURCE + select({
|
srcs = MLN_CORE_SOURCE
|
||||||
":drawable_renderer": MLN_DRAWABLES_SOURCE,
|
+ PREFIXED["MLN_GENERATED_STYLE_SOURCE"]
|
||||||
":split_renderer": MLN_DRAWABLES_SOURCE,
|
+ MLN_OPENGL_SOURCE
|
||||||
"//conditions:default": []
|
+ select({
|
||||||
}) + MLN_OPENGL_SOURCE,
|
":drawable_renderer": MLN_DRAWABLES_SOURCE,
|
||||||
hdrs = MLN_CORE_HEADERS + select({
|
":split_renderer": MLN_DRAWABLES_SOURCE,
|
||||||
":drawable_renderer": MLN_DRAWABLES_HEADERS,
|
"//conditions:default": []
|
||||||
":split_renderer": MLN_DRAWABLES_HEADERS,
|
}),
|
||||||
"//conditions:default": []
|
hdrs = MLN_CORE_HEADERS
|
||||||
}) + MLN_OPENGL_HEADERS,
|
+ MLN_OPENGL_HEADERS
|
||||||
|
+ select({
|
||||||
|
":drawable_renderer": MLN_DRAWABLES_HEADERS,
|
||||||
|
":split_renderer": MLN_DRAWABLES_HEADERS,
|
||||||
|
"//conditions:default": []
|
||||||
|
}),
|
||||||
copts = CPP_FLAGS + MAPLIBRE_FLAGS,
|
copts = CPP_FLAGS + MAPLIBRE_FLAGS,
|
||||||
defines = select({
|
defines = select({
|
||||||
":legacy_renderer": ["MLN_LEGACY_RENDERER=1", "MLN_DRAWABLE_RENDERER=0"],
|
":legacy_renderer": [
|
||||||
":drawable_renderer": ["MLN_LEGACY_RENDERER=0", "MLN_DRAWABLE_RENDERER=1"],
|
"MLN_LEGACY_RENDERER=1",
|
||||||
":split_renderer": ["MLN_LEGACY_RENDERER=1", "MLN_DRAWABLE_RENDERER=1", "MLN_RENDERER_SPLIT_VIEW=1"],
|
"MLN_DRAWABLE_RENDERER=0"
|
||||||
|
],
|
||||||
|
":drawable_renderer": [
|
||||||
|
"MLN_LEGACY_RENDERER=0",
|
||||||
|
"MLN_DRAWABLE_RENDERER=1"
|
||||||
|
],
|
||||||
|
":split_renderer": [
|
||||||
|
"MLN_LEGACY_RENDERER=1",
|
||||||
|
"MLN_DRAWABLE_RENDERER=1",
|
||||||
|
"MLN_RENDERER_SPLIT_VIEW=1"
|
||||||
|
],
|
||||||
}) + select({
|
}) + select({
|
||||||
"//:ios": ["GLES_SILENCE_DEPRECATION=1"],
|
"//:ios": ["GLES_SILENCE_DEPRECATION=1"],
|
||||||
"//conditions:default": []
|
"//conditions:default": []
|
||||||
@@ -121,8 +126,8 @@ cc_library(
|
|||||||
],
|
],
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
":mbgl-core-generated-private-artifacts",
|
|
||||||
":mbgl-core-generated-public-artifacts",
|
":mbgl-core-generated-public-artifacts",
|
||||||
|
":mbgl-core-generated-private-artifacts",
|
||||||
"//vendor:boost",
|
"//vendor:boost",
|
||||||
"//vendor:csscolorparser",
|
"//vendor:csscolorparser",
|
||||||
"//vendor:earcut.hpp",
|
"//vendor:earcut.hpp",
|
||||||
@@ -184,6 +189,35 @@ config_setting(
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Selects the rendering implementation to utilize in the core
|
||||||
|
|
||||||
|
string_flag(
|
||||||
|
name = "renderer",
|
||||||
|
build_setting_default = "legacy",
|
||||||
|
values=["legacy", "drawable", "split"]
|
||||||
|
)
|
||||||
|
|
||||||
|
config_setting(
|
||||||
|
name = "legacy_renderer",
|
||||||
|
flag_values = {
|
||||||
|
":renderer": "legacy"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
config_setting(
|
||||||
|
name = "drawable_renderer",
|
||||||
|
flag_values = {
|
||||||
|
":renderer": "drawable"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
config_setting(
|
||||||
|
name = "split_renderer",
|
||||||
|
flag_values = {
|
||||||
|
":renderer": "split"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
exports_files(
|
exports_files(
|
||||||
[
|
[
|
||||||
"LICENSE.md",
|
"LICENSE.md",
|
||||||
|
|||||||
202
bazel/core.bzl
202
bazel/core.bzl
@@ -1,10 +1,105 @@
|
|||||||
# MLN_RENDERER_DEFINES = select({
|
MLN_PUBLIC_GENERATED_STYLE_HEADERS = [
|
||||||
# ":legacy_renderer": ["MLN_LEGACY_RENDERER=1"],
|
"include/mbgl/style/layers/circle_layer.hpp",
|
||||||
# "//conditions:default": ["MLN_LEGACY_RENDERER=0"]
|
"include/mbgl/style/layers/fill_layer.hpp",
|
||||||
# }) + select({
|
"include/mbgl/style/layers/line_layer.hpp",
|
||||||
# ":drawable_renderer": ["MLN_DRAWABLE_RENDERER=1"],
|
"include/mbgl/style/layers/symbol_layer.hpp",
|
||||||
# "//conditions:default": ["MLN_DRAWABLE_RENDERER=0"]
|
"include/mbgl/style/layers/heatmap_layer.hpp",
|
||||||
# })
|
"include/mbgl/style/layers/fill_extrusion_layer.hpp",
|
||||||
|
"include/mbgl/style/layers/raster_layer.hpp",
|
||||||
|
"include/mbgl/style/layers/hillshade_layer.hpp",
|
||||||
|
"include/mbgl/style/layers/background_layer.hpp",
|
||||||
|
"include/mbgl/style/layers/location_indicator_layer.hpp",
|
||||||
|
"include/mbgl/style/light.hpp",
|
||||||
|
]
|
||||||
|
|
||||||
|
MLN_PRIVATE_GENERATED_STYLE_HEADERS = [
|
||||||
|
"src/mbgl/style/layers/fill_layer_properties.hpp",
|
||||||
|
"src/mbgl/style/layers/line_layer_properties.hpp",
|
||||||
|
"src/mbgl/style/layers/symbol_layer_properties.hpp",
|
||||||
|
"src/mbgl/style/layers/circle_layer_properties.hpp",
|
||||||
|
"src/mbgl/style/layers/heatmap_layer_properties.hpp",
|
||||||
|
"src/mbgl/style/layers/fill_extrusion_layer_properties.hpp",
|
||||||
|
"src/mbgl/style/layers/raster_layer_properties.hpp",
|
||||||
|
"src/mbgl/style/layers/hillshade_layer_properties.hpp",
|
||||||
|
"src/mbgl/style/layers/background_layer_properties.hpp",
|
||||||
|
"src/mbgl/style/layers/location_indicator_layer_properties.hpp",
|
||||||
|
]
|
||||||
|
|
||||||
|
MLN_GENERATED_STYLE_SOURCE = [
|
||||||
|
"src/mbgl/style/layers/fill_layer_properties.cpp",
|
||||||
|
"src/mbgl/style/layers/fill_layer.cpp",
|
||||||
|
"src/mbgl/style/layers/line_layer_properties.cpp",
|
||||||
|
"src/mbgl/style/layers/line_layer.cpp",
|
||||||
|
"src/mbgl/style/layers/symbol_layer_properties.cpp",
|
||||||
|
"src/mbgl/style/layers/symbol_layer.cpp",
|
||||||
|
"src/mbgl/style/layers/circle_layer_properties.cpp",
|
||||||
|
"src/mbgl/style/layers/circle_layer.cpp",
|
||||||
|
"src/mbgl/style/layers/heatmap_layer_properties.cpp",
|
||||||
|
"src/mbgl/style/layers/heatmap_layer.cpp",
|
||||||
|
"src/mbgl/style/layers/fill_extrusion_layer_properties.cpp",
|
||||||
|
"src/mbgl/style/layers/fill_extrusion_layer.cpp",
|
||||||
|
"src/mbgl/style/layers/raster_layer_properties.cpp",
|
||||||
|
"src/mbgl/style/layers/raster_layer.cpp",
|
||||||
|
"src/mbgl/style/layers/hillshade_layer_properties.cpp",
|
||||||
|
"src/mbgl/style/layers/hillshade_layer.cpp",
|
||||||
|
"src/mbgl/style/layers/background_layer_properties.cpp",
|
||||||
|
"src/mbgl/style/layers/background_layer.cpp",
|
||||||
|
"src/mbgl/style/layers/location_indicator_layer_properties.cpp",
|
||||||
|
"src/mbgl/style/layers/location_indicator_layer.cpp",
|
||||||
|
"src/mbgl/style/light.cpp",
|
||||||
|
]
|
||||||
|
|
||||||
|
MLN_GENERATED_SHADER_HEADERS = [
|
||||||
|
"include/mbgl/shaders/shader_source.hpp",
|
||||||
|
"include/mbgl/shaders/shader_manifest.hpp",
|
||||||
|
"include/mbgl/shaders/gl/background.hpp",
|
||||||
|
"include/mbgl/shaders/gl/background_pattern.hpp",
|
||||||
|
"include/mbgl/shaders/gl/circle.hpp",
|
||||||
|
"include/mbgl/shaders/gl/clipping_mask.hpp",
|
||||||
|
"include/mbgl/shaders/gl/collision_box.hpp",
|
||||||
|
"include/mbgl/shaders/gl/collision_circle.hpp",
|
||||||
|
"include/mbgl/shaders/gl/debug.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_background.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_background_pattern.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_circle.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_fill.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_fill_outline.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_fill_outline_pattern.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_fill_extrusion.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_fill_extrusion_pattern.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_fill_pattern.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_line_gradient.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_line_pattern.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_line_sdf.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_line.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_heatmap.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_heatmap_texture.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_raster.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_symbol_icon.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_symbol_sdf_text.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_symbol_sdf_icon.hpp",
|
||||||
|
"include/mbgl/shaders/gl/drawable_symbol_text_and_icon.hpp",
|
||||||
|
"include/mbgl/shaders/gl/fill_extrusion_pattern.hpp",
|
||||||
|
"include/mbgl/shaders/gl/fill_extrusion.hpp",
|
||||||
|
"include/mbgl/shaders/gl/fill_outline_pattern.hpp",
|
||||||
|
"include/mbgl/shaders/gl/fill_outline.hpp",
|
||||||
|
"include/mbgl/shaders/gl/fill_pattern.hpp",
|
||||||
|
"include/mbgl/shaders/gl/fill.hpp",
|
||||||
|
"include/mbgl/shaders/gl/heatmap_texture.hpp",
|
||||||
|
"include/mbgl/shaders/gl/heatmap.hpp",
|
||||||
|
"include/mbgl/shaders/gl/hillshade_prepare.hpp",
|
||||||
|
"include/mbgl/shaders/gl/hillshade.hpp",
|
||||||
|
"include/mbgl/shaders/gl/line_gradient.hpp",
|
||||||
|
"include/mbgl/shaders/gl/line_pattern.hpp",
|
||||||
|
"include/mbgl/shaders/gl/line_sdf.hpp",
|
||||||
|
"include/mbgl/shaders/gl/line.hpp",
|
||||||
|
"include/mbgl/shaders/gl/prelude.hpp",
|
||||||
|
"include/mbgl/shaders/gl/raster.hpp",
|
||||||
|
"include/mbgl/shaders/gl/symbol_icon.hpp",
|
||||||
|
"include/mbgl/shaders/gl/symbol_sdf_text.hpp",
|
||||||
|
"include/mbgl/shaders/gl/symbol_sdf_icon.hpp",
|
||||||
|
"include/mbgl/shaders/gl/symbol_text_and_icon.hpp",
|
||||||
|
]
|
||||||
|
|
||||||
MLN_CORE_SOURCE = [
|
MLN_CORE_SOURCE = [
|
||||||
"src/mbgl/actor/mailbox.cpp",
|
"src/mbgl/actor/mailbox.cpp",
|
||||||
@@ -336,53 +431,25 @@ MLN_CORE_SOURCE = [
|
|||||||
"src/mbgl/style/layer_impl.cpp",
|
"src/mbgl/style/layer_impl.cpp",
|
||||||
"src/mbgl/style/layer_impl.hpp",
|
"src/mbgl/style/layer_impl.hpp",
|
||||||
"src/mbgl/style/layer_observer.hpp",
|
"src/mbgl/style/layer_observer.hpp",
|
||||||
"src/mbgl/style/layers/background_layer.cpp",
|
|
||||||
"src/mbgl/style/layers/background_layer_impl.cpp",
|
"src/mbgl/style/layers/background_layer_impl.cpp",
|
||||||
"src/mbgl/style/layers/background_layer_impl.hpp",
|
"src/mbgl/style/layers/background_layer_impl.hpp",
|
||||||
"src/mbgl/style/layers/background_layer_properties.cpp",
|
|
||||||
"src/mbgl/style/layers/background_layer_properties.hpp",
|
|
||||||
"src/mbgl/style/layers/circle_layer.cpp",
|
|
||||||
"src/mbgl/style/layers/circle_layer_impl.cpp",
|
"src/mbgl/style/layers/circle_layer_impl.cpp",
|
||||||
"src/mbgl/style/layers/circle_layer_impl.hpp",
|
"src/mbgl/style/layers/circle_layer_impl.hpp",
|
||||||
"src/mbgl/style/layers/circle_layer_properties.cpp",
|
|
||||||
"src/mbgl/style/layers/circle_layer_properties.hpp",
|
|
||||||
"src/mbgl/style/layers/fill_extrusion_layer.cpp",
|
|
||||||
"src/mbgl/style/layers/fill_extrusion_layer_impl.cpp",
|
"src/mbgl/style/layers/fill_extrusion_layer_impl.cpp",
|
||||||
"src/mbgl/style/layers/fill_extrusion_layer_impl.hpp",
|
"src/mbgl/style/layers/fill_extrusion_layer_impl.hpp",
|
||||||
"src/mbgl/style/layers/fill_extrusion_layer_properties.cpp",
|
|
||||||
"src/mbgl/style/layers/fill_extrusion_layer_properties.hpp",
|
|
||||||
"src/mbgl/style/layers/fill_layer.cpp",
|
|
||||||
"src/mbgl/style/layers/fill_layer_impl.cpp",
|
"src/mbgl/style/layers/fill_layer_impl.cpp",
|
||||||
"src/mbgl/style/layers/fill_layer_impl.hpp",
|
"src/mbgl/style/layers/fill_layer_impl.hpp",
|
||||||
"src/mbgl/style/layers/fill_layer_properties.cpp",
|
|
||||||
"src/mbgl/style/layers/fill_layer_properties.hpp",
|
|
||||||
"src/mbgl/style/layers/heatmap_layer.cpp",
|
|
||||||
"src/mbgl/style/layers/heatmap_layer_impl.cpp",
|
"src/mbgl/style/layers/heatmap_layer_impl.cpp",
|
||||||
"src/mbgl/style/layers/heatmap_layer_impl.hpp",
|
"src/mbgl/style/layers/heatmap_layer_impl.hpp",
|
||||||
"src/mbgl/style/layers/heatmap_layer_properties.cpp",
|
|
||||||
"src/mbgl/style/layers/heatmap_layer_properties.hpp",
|
|
||||||
"src/mbgl/style/layers/hillshade_layer.cpp",
|
|
||||||
"src/mbgl/style/layers/hillshade_layer_impl.cpp",
|
"src/mbgl/style/layers/hillshade_layer_impl.cpp",
|
||||||
"src/mbgl/style/layers/hillshade_layer_impl.hpp",
|
"src/mbgl/style/layers/hillshade_layer_impl.hpp",
|
||||||
"src/mbgl/style/layers/hillshade_layer_properties.cpp",
|
|
||||||
"src/mbgl/style/layers/hillshade_layer_properties.hpp",
|
|
||||||
"src/mbgl/style/layers/line_layer.cpp",
|
|
||||||
"src/mbgl/style/layers/line_layer_impl.cpp",
|
"src/mbgl/style/layers/line_layer_impl.cpp",
|
||||||
"src/mbgl/style/layers/line_layer_impl.hpp",
|
"src/mbgl/style/layers/line_layer_impl.hpp",
|
||||||
"src/mbgl/style/layers/line_layer_properties.cpp",
|
|
||||||
"src/mbgl/style/layers/line_layer_properties.hpp",
|
|
||||||
"src/mbgl/style/layers/raster_layer.cpp",
|
|
||||||
"src/mbgl/style/layers/raster_layer_impl.cpp",
|
"src/mbgl/style/layers/raster_layer_impl.cpp",
|
||||||
"src/mbgl/style/layers/raster_layer_impl.hpp",
|
"src/mbgl/style/layers/raster_layer_impl.hpp",
|
||||||
"src/mbgl/style/layers/raster_layer_properties.cpp",
|
|
||||||
"src/mbgl/style/layers/raster_layer_properties.hpp",
|
|
||||||
"src/mbgl/style/layers/symbol_layer.cpp",
|
|
||||||
"src/mbgl/style/layers/symbol_layer_impl.cpp",
|
"src/mbgl/style/layers/symbol_layer_impl.cpp",
|
||||||
"src/mbgl/style/layers/symbol_layer_impl.hpp",
|
"src/mbgl/style/layers/symbol_layer_impl.hpp",
|
||||||
"src/mbgl/style/layers/symbol_layer_properties.cpp",
|
|
||||||
"src/mbgl/style/layers/symbol_layer_properties.hpp",
|
|
||||||
"src/mbgl/style/layout_property.hpp",
|
"src/mbgl/style/layout_property.hpp",
|
||||||
"src/mbgl/style/light.cpp",
|
|
||||||
"src/mbgl/style/light_impl.cpp",
|
"src/mbgl/style/light_impl.cpp",
|
||||||
"src/mbgl/style/light_impl.hpp",
|
"src/mbgl/style/light_impl.hpp",
|
||||||
"src/mbgl/style/light_observer.hpp",
|
"src/mbgl/style/light_observer.hpp",
|
||||||
@@ -683,16 +750,6 @@ MLN_CORE_HEADERS = [
|
|||||||
"include/mbgl/style/image.hpp",
|
"include/mbgl/style/image.hpp",
|
||||||
"include/mbgl/style/layer.hpp",
|
"include/mbgl/style/layer.hpp",
|
||||||
"include/mbgl/style/layer_properties.hpp",
|
"include/mbgl/style/layer_properties.hpp",
|
||||||
"include/mbgl/style/layers/background_layer.hpp",
|
|
||||||
"include/mbgl/style/layers/circle_layer.hpp",
|
|
||||||
"include/mbgl/style/layers/fill_extrusion_layer.hpp",
|
|
||||||
"include/mbgl/style/layers/fill_layer.hpp",
|
|
||||||
"include/mbgl/style/layers/heatmap_layer.hpp",
|
|
||||||
"include/mbgl/style/layers/hillshade_layer.hpp",
|
|
||||||
"include/mbgl/style/layers/line_layer.hpp",
|
|
||||||
"include/mbgl/style/layers/raster_layer.hpp",
|
|
||||||
"include/mbgl/style/layers/symbol_layer.hpp",
|
|
||||||
"include/mbgl/style/light.hpp",
|
|
||||||
"include/mbgl/style/position.hpp",
|
"include/mbgl/style/position.hpp",
|
||||||
"include/mbgl/style/property_expression.hpp",
|
"include/mbgl/style/property_expression.hpp",
|
||||||
"include/mbgl/style/property_value.hpp",
|
"include/mbgl/style/property_value.hpp",
|
||||||
@@ -813,11 +870,8 @@ MLN_OPENGL_SOURCE = [
|
|||||||
"src/mbgl/platform/gl_functions.cpp",
|
"src/mbgl/platform/gl_functions.cpp",
|
||||||
"src/mbgl/renderer/layers/render_location_indicator_layer.cpp",
|
"src/mbgl/renderer/layers/render_location_indicator_layer.cpp",
|
||||||
"src/mbgl/renderer/layers/render_location_indicator_layer.hpp",
|
"src/mbgl/renderer/layers/render_location_indicator_layer.hpp",
|
||||||
"src/mbgl/style/layers/location_indicator_layer.cpp",
|
|
||||||
"src/mbgl/style/layers/location_indicator_layer_impl.cpp",
|
"src/mbgl/style/layers/location_indicator_layer_impl.cpp",
|
||||||
"src/mbgl/style/layers/location_indicator_layer_impl.hpp",
|
"src/mbgl/style/layers/location_indicator_layer_impl.hpp",
|
||||||
"src/mbgl/style/layers/location_indicator_layer_properties.cpp",
|
|
||||||
"src/mbgl/style/layers/location_indicator_layer_properties.hpp"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
MLN_OPENGL_HEADERS = [
|
MLN_OPENGL_HEADERS = [
|
||||||
@@ -828,57 +882,6 @@ MLN_OPENGL_HEADERS = [
|
|||||||
"include/mbgl/gl/renderer_backend.hpp",
|
"include/mbgl/gl/renderer_backend.hpp",
|
||||||
"include/mbgl/layermanager/location_indicator_layer_factory.hpp",
|
"include/mbgl/layermanager/location_indicator_layer_factory.hpp",
|
||||||
"include/mbgl/platform/gl_functions.hpp",
|
"include/mbgl/platform/gl_functions.hpp",
|
||||||
"include/mbgl/style/layers/location_indicator_layer.hpp",
|
|
||||||
"include/mbgl/shaders/shader_source.hpp",
|
|
||||||
"include/mbgl/shaders/shader_manifest.hpp",
|
|
||||||
"include/mbgl/shaders/gl/background.hpp",
|
|
||||||
"include/mbgl/shaders/gl/background_pattern.hpp",
|
|
||||||
"include/mbgl/shaders/gl/circle.hpp",
|
|
||||||
"include/mbgl/shaders/gl/clipping_mask.hpp",
|
|
||||||
"include/mbgl/shaders/gl/collision_box.hpp",
|
|
||||||
"include/mbgl/shaders/gl/collision_circle.hpp",
|
|
||||||
"include/mbgl/shaders/gl/debug.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_background.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_background_pattern.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_circle.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_fill.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_fill_outline.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_fill_outline_pattern.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_fill_extrusion.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_fill_extrusion_pattern.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_fill_pattern.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_line_gradient.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_line_pattern.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_line_sdf.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_line.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_heatmap.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_heatmap_texture.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_raster.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_symbol_icon.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_symbol_sdf_text.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_symbol_sdf_icon.hpp",
|
|
||||||
"include/mbgl/shaders/gl/drawable_symbol_text_and_icon.hpp",
|
|
||||||
"include/mbgl/shaders/gl/fill_extrusion_pattern.hpp",
|
|
||||||
"include/mbgl/shaders/gl/fill_extrusion.hpp",
|
|
||||||
"include/mbgl/shaders/gl/fill_outline_pattern.hpp",
|
|
||||||
"include/mbgl/shaders/gl/fill_outline.hpp",
|
|
||||||
"include/mbgl/shaders/gl/fill_pattern.hpp",
|
|
||||||
"include/mbgl/shaders/gl/fill.hpp",
|
|
||||||
"include/mbgl/shaders/gl/heatmap_texture.hpp",
|
|
||||||
"include/mbgl/shaders/gl/heatmap.hpp",
|
|
||||||
"include/mbgl/shaders/gl/hillshade_prepare.hpp",
|
|
||||||
"include/mbgl/shaders/gl/hillshade.hpp",
|
|
||||||
"include/mbgl/shaders/gl/line_gradient.hpp",
|
|
||||||
"include/mbgl/shaders/gl/line_pattern.hpp",
|
|
||||||
"include/mbgl/shaders/gl/line_sdf.hpp",
|
|
||||||
"include/mbgl/shaders/gl/line.hpp",
|
|
||||||
"include/mbgl/shaders/gl/prelude.hpp",
|
|
||||||
"include/mbgl/shaders/gl/raster.hpp",
|
|
||||||
"include/mbgl/shaders/gl/shader_group_gl.hpp",
|
|
||||||
"include/mbgl/shaders/gl/symbol_icon.hpp",
|
|
||||||
"include/mbgl/shaders/gl/symbol_sdf_text.hpp",
|
|
||||||
"include/mbgl/shaders/gl/symbol_sdf_icon.hpp",
|
|
||||||
"include/mbgl/shaders/gl/symbol_text_and_icon.hpp"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
MLN_DRAWABLES_SOURCE = [
|
MLN_DRAWABLES_SOURCE = [
|
||||||
@@ -950,6 +953,7 @@ MLN_DRAWABLES_HEADERS = [
|
|||||||
"include/mbgl/util/identity.hpp",
|
"include/mbgl/util/identity.hpp",
|
||||||
"include/mbgl/util/suppress_copies.hpp",
|
"include/mbgl/util/suppress_copies.hpp",
|
||||||
"include/mbgl/shaders/gl/shader_program_gl.hpp",
|
"include/mbgl/shaders/gl/shader_program_gl.hpp",
|
||||||
|
"include/mbgl/shaders/gl/shader_group_gl.hpp",
|
||||||
"include/mbgl/gl/drawable_gl.hpp",
|
"include/mbgl/gl/drawable_gl.hpp",
|
||||||
"include/mbgl/gl/drawable_gl_builder.hpp",
|
"include/mbgl/gl/drawable_gl_builder.hpp",
|
||||||
"include/mbgl/gl/layer_group_gl.hpp",
|
"include/mbgl/gl/layer_group_gl.hpp",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Applies to objective-c files that can't take the added CPP_FLAGS.
|
|||||||
Included in the CPP flags below.
|
Included in the CPP flags below.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
WARNING_FLAGS = [
|
GCC_CLANG_COMMON_FLAGS = [
|
||||||
"-Wall",
|
"-Wall",
|
||||||
"-Werror",
|
"-Werror",
|
||||||
"-Wextra",
|
"-Wextra",
|
||||||
@@ -12,8 +12,52 @@ WARNING_FLAGS = [
|
|||||||
"-Wno-unused-variable",
|
"-Wno-unused-variable",
|
||||||
"-Wno-variadic-macros",
|
"-Wno-variadic-macros",
|
||||||
"-Wno-unknown-pragmas",
|
"-Wno-unknown-pragmas",
|
||||||
] + select({
|
]
|
||||||
"//:ios": [
|
|
||||||
|
MSVC_FLAGS = [
|
||||||
|
"/Wall",
|
||||||
|
"/WX",
|
||||||
|
"/wd4068", # Unknown pragma
|
||||||
|
"/wd4820", # Padding
|
||||||
|
"/wd5045", # Compiler will insert Spectre mitigation for memory load
|
||||||
|
"/wd4643", # Non-conformant forward decl
|
||||||
|
"/wd4623", # Default ctor implicitly deleted
|
||||||
|
"/wd5027", # Default move ctor implicitly deleted
|
||||||
|
"/wd4626", # Assignment operator implicitly deleted
|
||||||
|
"/wd4514", # Unreferenced inline function has been removed
|
||||||
|
"/wd4582", # Constructor is not implicitly called
|
||||||
|
"/wd4365", # Signed/unsigned mismatch
|
||||||
|
"/wd4388", # Signed/unsigned mismatch
|
||||||
|
"/wd4244", # Conversion, possible loss of data
|
||||||
|
"/wd4242", # Conversion, possible loss of data
|
||||||
|
"/wd4625", # Copy constructor was implicitly defined as deleted
|
||||||
|
"/wd5026", # Move constructor was implicitly defined as deleted
|
||||||
|
"/wd5219", # Implicit conversion, possible loss of data
|
||||||
|
"/wd5246", # Initialization of a subobject should be wrapped in braces
|
||||||
|
"/wd4201", # Nonstandard extension used: nameless struct/union
|
||||||
|
"/wd4868", # Compiler may not enforce left-to-right evaluation order in braced initializer list
|
||||||
|
"/wd4061", # Eenumerator in switch of enum is not explicitly handled by a case label
|
||||||
|
"/wd4464", # Relative include path contains '..'
|
||||||
|
"/wd4668", # <x> is not defined as a preprocessor macro, replacing with '0' for '#if/#elif'
|
||||||
|
"/wd4800", # Implicit conversion from 'unsigned __int64' to bool. Possible information loss
|
||||||
|
"/wd4355", # 'this': used in base member initializer list
|
||||||
|
"/wd5204", # Class has virtual functions, but its trivial destructor is not virtual; instances of objects derived from this class may not be destructed
|
||||||
|
"/wd5220", # A non-static data member with a volatile qualified type no longer implies
|
||||||
|
"/wd4619", # (boost) #pragma warning: there is no warning number <x>
|
||||||
|
"/wd5031", # (boost) #pragma warning(pop): likely mismatch, popping warning state pushed in different file
|
||||||
|
"/wd5243", # (boost) using incomplete class <x> can cause potential one definition rule violation due to ABI limitation
|
||||||
|
"/wd4371", # (boost) layout of class may have changed from a previous version of the compiler due to better packing of member <x>
|
||||||
|
"/wd4435", # (boost) Object layout under /vd2 will change due to virtual base
|
||||||
|
"/wd4702", # Unreachable code
|
||||||
|
"/wd4710", # Function not inlined
|
||||||
|
"/wd5041", # out-of-line definition for constexpr static data member is not needed and is deprecated in C++17
|
||||||
|
"/wd4946", # reinterpret_cast used between related classes
|
||||||
|
"/wd4459", # declaration of 'x' hides global declaration
|
||||||
|
"/wd4373", # virtual function overrides 'x', previous versions of the compiler did not override when parameters only differed by const/volatile qualifiers
|
||||||
|
]
|
||||||
|
|
||||||
|
WARNING_FLAGS = select({
|
||||||
|
"//:ios": GCC_CLANG_COMMON_FLAGS + [
|
||||||
"-Wno-newline-eof",
|
"-Wno-newline-eof",
|
||||||
"-Wno-nested-anon-types",
|
"-Wno-nested-anon-types",
|
||||||
"-Wno-c++11-narrowing",
|
"-Wno-c++11-narrowing",
|
||||||
@@ -21,19 +65,35 @@ WARNING_FLAGS = [
|
|||||||
"-Wno-tautological-constant-compare",
|
"-Wno-tautological-constant-compare",
|
||||||
"-Wno-gnu-anonymous-struct",
|
"-Wno-gnu-anonymous-struct",
|
||||||
],
|
],
|
||||||
"//:linux": [],
|
"//:linux": GCC_CLANG_COMMON_FLAGS,
|
||||||
|
"//:windows": MSVC_FLAGS,
|
||||||
})
|
})
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Compilation flags used for all .cpp and .mm targets.
|
Compilation flags used for all .cpp and .mm targets.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
CPP_FLAGS = WARNING_FLAGS + [
|
GCC_CLANG_CPP_FLAGS = GCC_CLANG_COMMON_FLAGS + [
|
||||||
"-fexceptions",
|
"-fexceptions",
|
||||||
"-fno-rtti",
|
"-fno-rtti",
|
||||||
"-ftemplate-depth=1024",
|
"-ftemplate-depth=1024",
|
||||||
"-std=c++17",
|
"-std=c++17",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
MSVC_CPP_FLAGS = MSVC_FLAGS + [
|
||||||
|
"/EHsc",
|
||||||
|
"/std:c++17",
|
||||||
|
"/GR-",
|
||||||
|
"/permissive-",
|
||||||
|
"/utf-8",
|
||||||
|
]
|
||||||
|
|
||||||
|
CPP_FLAGS = select({
|
||||||
|
"//:ios": GCC_CLANG_CPP_FLAGS,
|
||||||
|
"//:linux": GCC_CLANG_CPP_FLAGS,
|
||||||
|
"//:windows": MSVC_CPP_FLAGS,
|
||||||
|
})
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Compilation flags related to the Maplibre codebase. Relevant for all .cpp .mm and .m code
|
Compilation flags related to the Maplibre codebase. Relevant for all .cpp .mm and .m code
|
||||||
- src/*
|
- src/*
|
||||||
@@ -42,8 +102,15 @@ Compilation flags related to the Maplibre codebase. Relevant for all .cpp .mm an
|
|||||||
Not important for any vendors that are imported.
|
Not important for any vendors that are imported.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
MAPLIBRE_FLAGS = [
|
MAPLIBRE_FLAGS = select({
|
||||||
"-DMBGL_USE_GLES2=1",
|
"//:windows": [
|
||||||
"-DMBGL_RENDER_BACKEND_OPENGL=1",
|
"/DMBGL_USE_GLES2=1",
|
||||||
"-DGLES_SILENCE_DEPRECATION",
|
"/DMBGL_RENDER_BACKEND_OPENGL=1",
|
||||||
]
|
"/D_USE_MATH_DEFINES",
|
||||||
|
],
|
||||||
|
"//conditions:default": [
|
||||||
|
"-DMBGL_USE_GLES2=1",
|
||||||
|
"-DMBGL_RENDER_BACKEND_OPENGL=1",
|
||||||
|
"-DGLES_SILENCE_DEPRECATION",
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|||||||
5
bazel/macros.bzl
Normal file
5
bazel/macros.bzl
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
def appendList(items, prefix):
|
||||||
|
out = []
|
||||||
|
for item in items:
|
||||||
|
out.append(prefix + item)
|
||||||
|
return out
|
||||||
@@ -394,7 +394,7 @@ _IOS_APPLICATION_RESOURCES = [
|
|||||||
|
|
||||||
ios_application(
|
ios_application(
|
||||||
name = "App",
|
name = "App",
|
||||||
bundle_id = "{}.maplibre.app".format(BUNDLE_ID_PREFIX),
|
bundle_id = "org.maplibre.app",
|
||||||
families = [
|
families = [
|
||||||
"iphone",
|
"iphone",
|
||||||
"ipad",
|
"ipad",
|
||||||
@@ -454,6 +454,7 @@ xcodeproj(
|
|||||||
minimum_xcode_version = "14",
|
minimum_xcode_version = "14",
|
||||||
project_name = "MapLibre",
|
project_name = "MapLibre",
|
||||||
tags = ["manual"],
|
tags = ["manual"],
|
||||||
|
bazel_env = {"PATH": "/bin:/usr/bin:/usr/local/bin"},
|
||||||
default_xcode_configuration = "Debug",
|
default_xcode_configuration = "Debug",
|
||||||
xcode_configurations = {
|
xcode_configurations = {
|
||||||
"Debug": {"//command_line_option:compilation_mode": "dbg"},
|
"Debug": {"//command_line_option:compilation_mode": "dbg"},
|
||||||
|
|||||||
@@ -22,6 +22,35 @@ const args = (() => {
|
|||||||
return parser.parse_args();
|
return parser.parse_args();
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
let writeGenerated;
|
||||||
|
if (args.root) {
|
||||||
|
const targetRoot = path.join(args.root, "__generated__");
|
||||||
|
if (args.root) {
|
||||||
|
if (!fs.existsSync(targetRoot)) {
|
||||||
|
fs.mkdirSync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
writeGenerated = (pathString, contents) => {
|
||||||
|
const location = path.parse(
|
||||||
|
path.relative(__dirname + "/../", path.normalize(pathString))
|
||||||
|
);
|
||||||
|
|
||||||
|
pathString = path.join(targetRoot, location.dir);
|
||||||
|
if (!fs.existsSync(pathString)) {
|
||||||
|
fs.mkdirSync(pathString, {recursive: true});
|
||||||
|
}
|
||||||
|
|
||||||
|
writeIfModified(
|
||||||
|
path.join(pathString, location.name + location.ext), contents);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
writeGenerated = (pathString, contents) => {
|
||||||
|
writeIfModified(pathString, contents);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function parseCSSColor(str) {
|
function parseCSSColor(str) {
|
||||||
const color = colorParser.parseCSSColor(str);
|
const color = colorParser.parseCSSColor(str);
|
||||||
return [
|
return [
|
||||||
@@ -273,16 +302,16 @@ const layers = Object.keys(spec.layer.type.values).map((type) => {
|
|||||||
for (const layer of layers) {
|
for (const layer of layers) {
|
||||||
const layerFileName = layer.type.replace('-', '_');
|
const layerFileName = layer.type.replace('-', '_');
|
||||||
|
|
||||||
writeIfModified(`src/mbgl/style/layers/${layerFileName}_layer_properties.hpp`, propertiesHpp(layer), args.root);
|
writeGenerated(`${__dirname}/../src/mbgl/style/layers/${layerFileName}_layer_properties.hpp`, propertiesHpp(layer));
|
||||||
writeIfModified(`src/mbgl/style/layers/${layerFileName}_layer_properties.cpp`, propertiesCpp(layer), args.root);
|
writeGenerated(`${__dirname}/../src/mbgl/style/layers/${layerFileName}_layer_properties.cpp`, propertiesCpp(layer));
|
||||||
|
|
||||||
// Remove our fake property for the external interace.
|
// Remove our fake property for the external interace.
|
||||||
if (layer.type === 'line') {
|
if (layer.type === 'line') {
|
||||||
layer.paintProperties = layer.paintProperties.filter(property => property.name !== 'line-floor-width');
|
layer.paintProperties = layer.paintProperties.filter(property => property.name !== 'line-floor-width');
|
||||||
}
|
}
|
||||||
|
|
||||||
writeIfModified(`include/mbgl/style/layers/${layerFileName}_layer.hpp`, layerHpp(layer), args.root);
|
writeGenerated(`${__dirname}/../include/mbgl/style/layers/${layerFileName}_layer.hpp`, layerHpp(layer));
|
||||||
writeIfModified(`src/mbgl/style/layers/${layerFileName}_layer.cpp`, layerCpp(layer), args.root);
|
writeGenerated(`${__dirname}/../src/mbgl/style/layers/${layerFileName}_layer.cpp`, layerCpp(layer));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Light
|
// Light
|
||||||
@@ -298,7 +327,7 @@ const lightProperties = Object.keys(spec[`light`]).reduce((memo, name) => {
|
|||||||
// to get a deterministic order.
|
// to get a deterministic order.
|
||||||
lightProperties.sort((a, b) => collator.compare(a.name, b.name));
|
lightProperties.sort((a, b) => collator.compare(a.name, b.name));
|
||||||
|
|
||||||
const lightHpp = ejs.compile(fs.readFileSync(`include/mbgl/style/light.hpp.ejs`, 'utf8'), {strict: true});
|
const lightHpp = ejs.compile(fs.readFileSync(`${__dirname}/../include/mbgl/style/light.hpp.ejs`, 'utf8'), {strict: true});
|
||||||
const lightCpp = ejs.compile(fs.readFileSync(`src/mbgl/style/light.cpp.ejs`, 'utf8'), {strict: true});
|
const lightCpp = ejs.compile(fs.readFileSync(`${__dirname}/../src/mbgl/style/light.cpp.ejs`, 'utf8'), {strict: true});
|
||||||
writeIfModified(`include/mbgl/style/light.hpp`, lightHpp({properties: lightProperties}), args.root);
|
writeGenerated(`${__dirname}/../include/mbgl/style/light.hpp`, lightHpp({properties: lightProperties}));
|
||||||
writeIfModified(`src/mbgl/style/light.cpp`, lightCpp({properties: lightProperties}), args.root);
|
writeGenerated(`${__dirname}/../src/mbgl/style/light.cpp`, lightCpp({properties: lightProperties}));
|
||||||
|
|||||||
@@ -221,11 +221,13 @@ const args = (() => {
|
|||||||
|
|
||||||
// Generate shader source headers
|
// Generate shader source headers
|
||||||
const shaderRoot = "shaders/";
|
const shaderRoot = "shaders/";
|
||||||
const outputRoot = path.join((args.root ? args.root : ""), "include/mbgl/shaders");
|
|
||||||
let generatedHeaders = [];
|
let generatedHeaders = [];
|
||||||
let shaderNames = [];
|
let shaderNames = [];
|
||||||
|
|
||||||
console.log("Writing shaders to ", outputRoot);
|
const targetRoot = path.join(args.root, "__generated__");
|
||||||
|
if (!fs.existsSync(targetRoot)) {
|
||||||
|
fs.mkdirSync();
|
||||||
|
}
|
||||||
|
|
||||||
JSON.parse(fs.readFileSync(path.join(shaderRoot, "manifest.json")))
|
JSON.parse(fs.readFileSync(path.join(shaderRoot, "manifest.json")))
|
||||||
.filter(it => typeof it == "object")
|
.filter(it => typeof it == "object")
|
||||||
@@ -243,6 +245,11 @@ JSON.parse(fs.readFileSync(path.join(shaderRoot, "manifest.json")))
|
|||||||
? pragmaMapConvertOnlyVertexArrays(vertexSource, pragmaMap, attribMap, "vertex")
|
? pragmaMapConvertOnlyVertexArrays(vertexSource, pragmaMap, attribMap, "vertex")
|
||||||
: pragmaMapConvert(vertexSource, pragmaMap, attribMap, "vertex");
|
: pragmaMapConvert(vertexSource, pragmaMap, attribMap, "vertex");
|
||||||
|
|
||||||
|
const glRoot = path.join(args.root, "__generated__/include/mbgl/shaders/gl");
|
||||||
|
if (!fs.existsSync(glRoot)) {
|
||||||
|
fs.mkdirSync(glRoot, {recursive: true}); // Ensure target directory is available
|
||||||
|
}
|
||||||
|
|
||||||
fs.writeFileSync(
|
fs.writeFileSync(
|
||||||
path.join(glRoot, elem.header + ".hpp"),
|
path.join(glRoot, elem.header + ".hpp"),
|
||||||
`${generatedHeader}
|
`${generatedHeader}
|
||||||
@@ -268,7 +275,7 @@ struct ShaderSource<BuiltIn::${elem.name}, gfx::Backend::Type::OpenGL> {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Generate the manifest
|
// Generate the manifest
|
||||||
fs.writeFileSync(path.join(outputRoot, "shader_manifest.hpp"),
|
fs.writeFileSync(path.join(args.root, "__generated__/include/mbgl/shaders/shader_manifest.hpp"),
|
||||||
`${generatedHeader}
|
`${generatedHeader}
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <mbgl/shaders/shader_source.hpp>
|
#include <mbgl/shaders/shader_source.hpp>
|
||||||
@@ -279,7 +286,7 @@ ${generatedHeaders.join('\n')}
|
|||||||
`);
|
`);
|
||||||
|
|
||||||
// Generate shader_source.hpp
|
// Generate shader_source.hpp
|
||||||
fs.writeFileSync(path.join(outputRoot, "shader_source.hpp"),
|
fs.writeFileSync(path.join(args.root, "__generated__/include/mbgl/shaders/shader_source.hpp"),
|
||||||
`${generatedHeader}
|
`${generatedHeader}
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <mbgl/gfx/backend.hpp>
|
#include <mbgl/gfx/backend.hpp>
|
||||||
|
|||||||
@@ -84,9 +84,9 @@ void registerTypes(gfx::ShaderRegistry& registry, const ProgramParameters& progr
|
|||||||
/// registry instance provided already has conflicting programs present.
|
/// registry instance provided already has conflicting programs present.
|
||||||
(
|
(
|
||||||
[&]() {
|
[&]() {
|
||||||
using Ty = shaders::ShaderSource<ShaderID, gfx::Backend::Type::OpenGL>;
|
const auto name = std::string(shaders::ShaderSource<ShaderID, gfx::Backend::Type::OpenGL>::name);
|
||||||
if (!registry.registerShaderGroup(std::make_shared<ShaderGroupGL<ShaderID>>(programParameters), Ty::name)) {
|
if (!registry.registerShaderGroup(std::make_shared<ShaderGroupGL<ShaderID>>(programParameters), name)) {
|
||||||
throw std::runtime_error("Failed to register " + std::string(Ty::name) + " with shader registry!");
|
throw std::runtime_error("Failed to register " + name + " with shader registry!");
|
||||||
}
|
}
|
||||||
}(),
|
}(),
|
||||||
...);
|
...);
|
||||||
|
|||||||
Reference in New Issue
Block a user