18bf80f4bSopenharmony_ci# Copyright (C) 2023 Huawei Device Co., Ltd.
28bf80f4bSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
38bf80f4bSopenharmony_ci# you may not use this file except in compliance with the License.
48bf80f4bSopenharmony_ci# You may obtain a copy of the License at
58bf80f4bSopenharmony_ci#
68bf80f4bSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
78bf80f4bSopenharmony_ci#
88bf80f4bSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
98bf80f4bSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
108bf80f4bSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
118bf80f4bSopenharmony_ci# See the License for the specific language governing permissions and
128bf80f4bSopenharmony_ci# limitations under the License.
138bf80f4bSopenharmony_ci
148bf80f4bSopenharmony_ciimport("//build/ohos.gni")
158bf80f4bSopenharmony_ciimport("//foundation/graphic/graphic_3d/lume/lume_config.gni")
168bf80f4bSopenharmony_ci
178bf80f4bSopenharmony_ciconfig("lume_metaobject_config") {
188bf80f4bSopenharmony_ci  include_dirs = [
198bf80f4bSopenharmony_ci    "3rdparty/",
208bf80f4bSopenharmony_ci    "src/",
218bf80f4bSopenharmony_ci    "include",
228bf80f4bSopenharmony_ci  ]
238bf80f4bSopenharmony_ci
248bf80f4bSopenharmony_ci  defines = [
258bf80f4bSopenharmony_ci    "__OHOS_PLATFORM__",
268bf80f4bSopenharmony_ci    "CORE3D_PUBLIC=__attribute__((visibility(\"default\")))",
278bf80f4bSopenharmony_ci    "CORE_USE_COMPILER_GENERATED_STATIC_LIST=1",
288bf80f4bSopenharmony_ci    "CORE3D_SHARED_LIBRARY=1",
298bf80f4bSopenharmony_ci    "CORE3D_VALIDATION_ENABLED=0",
308bf80f4bSopenharmony_ci    "CORE3D_TESTS_ENABLED=0",
318bf80f4bSopenharmony_ci    "CORE3D_DEV_ENABLED=${CORE_DEV_ENABLED}",
328bf80f4bSopenharmony_ci    "CORE_STATIC_PLUGIN_HEADER=${CORE_STATIC_PLUGIN_HEADER }",
338bf80f4bSopenharmony_ci  ]
348bf80f4bSopenharmony_ci  cflags = [
358bf80f4bSopenharmony_ci    "-Wall",
368bf80f4bSopenharmony_ci    "-fexceptions",
378bf80f4bSopenharmony_ci    "-Wno-sign-compare",
388bf80f4bSopenharmony_ci    "-Wno-unused-variable",
398bf80f4bSopenharmony_ci    "-Wno-unused-private-field",
408bf80f4bSopenharmony_ci    "-Wno-implicit-fallthrough",
418bf80f4bSopenharmony_ci    "-Wno-reorder",
428bf80f4bSopenharmony_ci    "-Wno-unused-function",
438bf80f4bSopenharmony_ci    "-Wno-tautological-unsigned-zero-compare",
448bf80f4bSopenharmony_ci    "-Wno-ignored-qualifiers",
458bf80f4bSopenharmony_ci    "-Wno-unused-lambda-capture",
468bf80f4bSopenharmony_ci    "-Wno-unused-but-set-variable",
478bf80f4bSopenharmony_ci  ]
488bf80f4bSopenharmony_ci  cflags_cc = [
498bf80f4bSopenharmony_ci    "-Wno-overloaded-virtual",
508bf80f4bSopenharmony_ci    "-Wno-missing-braces",
518bf80f4bSopenharmony_ci  ]
528bf80f4bSopenharmony_ci}
538bf80f4bSopenharmony_ci
548bf80f4bSopenharmony_ciohos_source_set("lume_metaobject_src") {
558bf80f4bSopenharmony_ci  public_configs = [
568bf80f4bSopenharmony_ci    ":lume_metaobject_config",
578bf80f4bSopenharmony_ci    "${LUME_RENDER_PATH}:lume_render_api",
588bf80f4bSopenharmony_ci    "${LUME_CORE_PATH}:lume_base_api",
598bf80f4bSopenharmony_ci    "${LUME_CORE_PATH}:lume_engine_api",
608bf80f4bSopenharmony_ci    "${LUME_CORE_PATH}:lume_component_help_config",
618bf80f4bSopenharmony_ci    "${LUME_CORE_PATH}:lume_default",
628bf80f4bSopenharmony_ci  ]
638bf80f4bSopenharmony_ci
648bf80f4bSopenharmony_ci  sources = [
658bf80f4bSopenharmony_ci    "src/animation/animation.h",
668bf80f4bSopenharmony_ci    "src/animation/animation_controller.cpp",
678bf80f4bSopenharmony_ci    "src/animation/animation_controller.h",
688bf80f4bSopenharmony_ci    "src/animation/animation_modifier.h",
698bf80f4bSopenharmony_ci    "src/animation/animation_state.cpp",
708bf80f4bSopenharmony_ci    "src/animation/animation_state.h",
718bf80f4bSopenharmony_ci    "src/animation/interpolator.cpp",
728bf80f4bSopenharmony_ci    "src/animation/interpolator.h",
738bf80f4bSopenharmony_ci    "src/animation/intf_animation_internal.h",
748bf80f4bSopenharmony_ci    "src/animation/keyframe_animation.cpp",
758bf80f4bSopenharmony_ci    "src/animation/keyframe_animation.h",
768bf80f4bSopenharmony_ci    "src/animation/modifiers/loop.cpp",
778bf80f4bSopenharmony_ci    "src/animation/modifiers/loop.h",
788bf80f4bSopenharmony_ci    "src/animation/modifiers/reverse.cpp",
798bf80f4bSopenharmony_ci    "src/animation/modifiers/reverse.h",
808bf80f4bSopenharmony_ci    "src/animation/modifiers/speed.cpp",
818bf80f4bSopenharmony_ci    "src/animation/modifiers/speed.h",
828bf80f4bSopenharmony_ci    "src/animation/parallel_animation.cpp",
838bf80f4bSopenharmony_ci    "src/animation/parallel_animation.h",
848bf80f4bSopenharmony_ci    "src/animation/property_animation.cpp",
858bf80f4bSopenharmony_ci    "src/animation/property_animation.h",
868bf80f4bSopenharmony_ci    "src/animation/sequential_animation.cpp",
878bf80f4bSopenharmony_ci    "src/animation/sequential_animation.h",
888bf80f4bSopenharmony_ci    "src/animation/staggered_animation_state.cpp",
898bf80f4bSopenharmony_ci    "src/animation/staggered_animation_state.h",
908bf80f4bSopenharmony_ci    "src/animation/track_animation.cpp",
918bf80f4bSopenharmony_ci    "src/animation/track_animation.h",
928bf80f4bSopenharmony_ci    "src/animation/track_animation_state.cpp",
938bf80f4bSopenharmony_ci    "src/animation/track_animation_state.h",
948bf80f4bSopenharmony_ci    "src/attachment_container.cpp",
958bf80f4bSopenharmony_ci    "src/attachment_container.h",
968bf80f4bSopenharmony_ci    "src/base_object.cpp",
978bf80f4bSopenharmony_ci    "src/base_object.h",
988bf80f4bSopenharmony_ci    "src/call_context.cpp",
998bf80f4bSopenharmony_ci    "src/call_context.h",
1008bf80f4bSopenharmony_ci    "src/class_registry.cpp",
1018bf80f4bSopenharmony_ci    "src/class_registry.h",
1028bf80f4bSopenharmony_ci    "src/connector.cpp",
1038bf80f4bSopenharmony_ci    "src/connector.h",
1048bf80f4bSopenharmony_ci    "src/container/container.cpp",
1058bf80f4bSopenharmony_ci    "src/container/container.h",
1068bf80f4bSopenharmony_ci    "src/container/container_base.cpp",
1078bf80f4bSopenharmony_ci    "src/container/container_base.h",
1088bf80f4bSopenharmony_ci    "src/container/flat_container.cpp",
1098bf80f4bSopenharmony_ci    "src/container/flat_container.h",
1108bf80f4bSopenharmony_ci    "src/container/object_container.cpp",
1118bf80f4bSopenharmony_ci    "src/container/object_container.h",
1128bf80f4bSopenharmony_ci    "src/container/object_flat_container.cpp",
1138bf80f4bSopenharmony_ci    "src/container/object_flat_container.h",
1148bf80f4bSopenharmony_ci    "src/container_observer.cpp",
1158bf80f4bSopenharmony_ci    "src/container_observer.h",
1168bf80f4bSopenharmony_ci    "src/content_object.cpp",
1178bf80f4bSopenharmony_ci    "src/curves/bezier_curve.cpp",
1188bf80f4bSopenharmony_ci    "src/curves/bezier_curve.h",
1198bf80f4bSopenharmony_ci    "src/curves/easing_curve.cpp",
1208bf80f4bSopenharmony_ci    "src/curves/easing_curve.h",
1218bf80f4bSopenharmony_ci    "src/engine/engine_input_property_manager.cpp",
1228bf80f4bSopenharmony_ci    "src/engine/engine_input_property_manager.h",
1238bf80f4bSopenharmony_ci    "src/engine/engine_value.cpp",
1248bf80f4bSopenharmony_ci    "src/engine/engine_value.h",
1258bf80f4bSopenharmony_ci    "src/engine/engine_value_manager.cpp",
1268bf80f4bSopenharmony_ci    "src/engine/engine_value_manager.h",
1278bf80f4bSopenharmony_ci    "src/functions.cpp",
1288bf80f4bSopenharmony_ci    "src/functions.h",
1298bf80f4bSopenharmony_ci    "src/future.cpp",
1308bf80f4bSopenharmony_ci    "src/future.h",
1318bf80f4bSopenharmony_ci    "src/loaders/class_content_loader.cpp",
1328bf80f4bSopenharmony_ci    "src/loaders/class_content_loader.h",
1338bf80f4bSopenharmony_ci    "src/loaders/csv_parser.cpp",
1348bf80f4bSopenharmony_ci    "src/loaders/csv_parser.h",
1358bf80f4bSopenharmony_ci    "src/loaders/csv_string_resource_loader.cpp",
1368bf80f4bSopenharmony_ci    "src/loaders/csv_string_resource_loader.h",
1378bf80f4bSopenharmony_ci    "src/loaders/json_content_loader.cpp",
1388bf80f4bSopenharmony_ci    "src/loaders/json_content_loader.h",
1398bf80f4bSopenharmony_ci    "src/manual_clock.cpp",
1408bf80f4bSopenharmony_ci    "src/meta_object.cpp",
1418bf80f4bSopenharmony_ci    "src/meta_object.h",
1428bf80f4bSopenharmony_ci    "src/meta_object_lib.cpp",
1438bf80f4bSopenharmony_ci    "src/meta_object_lib.h",
1448bf80f4bSopenharmony_ci    "src/metadata.cpp",
1458bf80f4bSopenharmony_ci    "src/metadata.h",
1468bf80f4bSopenharmony_ci    "src/model/composite_object_provider.cpp",
1478bf80f4bSopenharmony_ci    "src/model/composite_object_provider.h",
1488bf80f4bSopenharmony_ci    "src/model/container_data_model.cpp",
1498bf80f4bSopenharmony_ci    "src/model/container_data_model.h",
1508bf80f4bSopenharmony_ci    "src/model/content_loader_object_provider.cpp",
1518bf80f4bSopenharmony_ci    "src/model/content_loader_object_provider.h",
1528bf80f4bSopenharmony_ci    "src/model/instantiating_object_provider.cpp",
1538bf80f4bSopenharmony_ci    "src/model/instantiating_object_provider.h",
1548bf80f4bSopenharmony_ci    "src/model/object_provider_base.cpp",
1558bf80f4bSopenharmony_ci    "src/model/object_provider_base.h",
1568bf80f4bSopenharmony_ci    "src/number.cpp",
1578bf80f4bSopenharmony_ci    "src/number.h",
1588bf80f4bSopenharmony_ci    "src/object.cpp",
1598bf80f4bSopenharmony_ci    "src/object.h",
1608bf80f4bSopenharmony_ci    "src/object_context.cpp",
1618bf80f4bSopenharmony_ci    "src/object_context.h",
1628bf80f4bSopenharmony_ci    "src/object_hierarchy_observer.cpp",
1638bf80f4bSopenharmony_ci    "src/object_hierarchy_observer.h",
1648bf80f4bSopenharmony_ci    "src/object_registry.cpp",
1658bf80f4bSopenharmony_ci    "src/object_registry.h",
1668bf80f4bSopenharmony_ci    "src/plugin.cpp",
1678bf80f4bSopenharmony_ci    "src/polling_task_queue.cpp",
1688bf80f4bSopenharmony_ci    "src/property/bind.cpp",
1698bf80f4bSopenharmony_ci    "src/property/bind.h",
1708bf80f4bSopenharmony_ci    "src/property/dependencies.cpp",
1718bf80f4bSopenharmony_ci    "src/property/dependencies.h",
1728bf80f4bSopenharmony_ci    "src/property/property.cpp",
1738bf80f4bSopenharmony_ci    "src/property/property.h",
1748bf80f4bSopenharmony_ci    "src/property/stack_property.cpp",
1758bf80f4bSopenharmony_ci    "src/property/stack_property.h",
1768bf80f4bSopenharmony_ci    "src/proxy_object.cpp",
1778bf80f4bSopenharmony_ci    "src/proxy_object.h",
1788bf80f4bSopenharmony_ci    "src/random.cpp",
1798bf80f4bSopenharmony_ci    "src/random.h",
1808bf80f4bSopenharmony_ci    "src/ref_uri_util.cpp",
1818bf80f4bSopenharmony_ci    "src/ref_uri_util.h",
1828bf80f4bSopenharmony_ci    "src/register_anys.cpp",
1838bf80f4bSopenharmony_ci    "src/register_default_anims.cpp",
1848bf80f4bSopenharmony_ci    "src/register_default_objs.cpp",
1858bf80f4bSopenharmony_ci    "src/register_engine_access.cpp",
1868bf80f4bSopenharmony_ci    "src/register_entities.cpp",
1878bf80f4bSopenharmony_ci    "src/register_value_serializers.cpp",
1888bf80f4bSopenharmony_ci    "src/serialization/backend/debug_output.cpp",
1898bf80f4bSopenharmony_ci    "src/serialization/backend/debug_output.h",
1908bf80f4bSopenharmony_ci    "src/serialization/backend/json_input.cpp",
1918bf80f4bSopenharmony_ci    "src/serialization/backend/json_input.h",
1928bf80f4bSopenharmony_ci    "src/serialization/backend/json_output.cpp",
1938bf80f4bSopenharmony_ci    "src/serialization/backend/json_output.h",
1948bf80f4bSopenharmony_ci    "src/serialization/exporter.cpp",
1958bf80f4bSopenharmony_ci    "src/serialization/exporter.h",
1968bf80f4bSopenharmony_ci    "src/serialization/importer.cpp",
1978bf80f4bSopenharmony_ci    "src/serialization/importer.h",
1988bf80f4bSopenharmony_ci    "src/serialization/json_exporter.cpp",
1998bf80f4bSopenharmony_ci    "src/serialization/json_exporter.h",
2008bf80f4bSopenharmony_ci    "src/serialization/json_importer.cpp",
2018bf80f4bSopenharmony_ci    "src/serialization/json_importer.h",
2028bf80f4bSopenharmony_ci    "src/serialization/metav1_compat.cpp",
2038bf80f4bSopenharmony_ci    "src/serialization/metav1_compat.h",
2048bf80f4bSopenharmony_ci    "src/startable_object_controller.cpp",
2058bf80f4bSopenharmony_ci    "src/startable_object_controller.h",
2068bf80f4bSopenharmony_ci    "src/system_clock.cpp",
2078bf80f4bSopenharmony_ci    "src/task_queue.h",
2088bf80f4bSopenharmony_ci    "src/threaded_task_queue.cpp",
2098bf80f4bSopenharmony_ci  ]
2108bf80f4bSopenharmony_ci
2118bf80f4bSopenharmony_ci  external_deps = [ "c_utils:utils" ]
2128bf80f4bSopenharmony_ci  part_name = "graphic_3d"
2138bf80f4bSopenharmony_ci  subsystem_name = "graphic"
2148bf80f4bSopenharmony_ci}
2158bf80f4bSopenharmony_ci
2168bf80f4bSopenharmony_ciohos_static_library("libMetaObject") {
2178bf80f4bSopenharmony_ci  public_deps = [ ":lume_metaobject_src" ]
2188bf80f4bSopenharmony_ci  output_extension = "so"
2198bf80f4bSopenharmony_ci  part_name = "graphic_3d"
2208bf80f4bSopenharmony_ci  subsystem_name = "graphic"
2218bf80f4bSopenharmony_ci}
2228bf80f4bSopenharmony_ci
2238bf80f4bSopenharmony_ciohos_shared_library("libPluginMetaObject") {
2248bf80f4bSopenharmony_ci  public_deps = [ ":libMetaObject" ]
2258bf80f4bSopenharmony_ci  part_name = "graphic_3d"
2268bf80f4bSopenharmony_ci  subsystem_name = "graphic"
2278bf80f4bSopenharmony_ci}
228