diff --git a/build/configs/system_deps.toml b/build/configs/system_deps.toml index 0da4ad0fa8afe1696d86478f80bf2546e47883a1..7ed642c4c1078959aa6ce57d9d6b8be46db28f46 100755 --- a/build/configs/system_deps.toml +++ b/build/configs/system_deps.toml @@ -30,6 +30,7 @@ package_deps = [ "make", "gtest-devel", "ninja-build", + "harfbuzz-devel", "libxml2-devel", "libpng-devel", "libicu", diff --git a/build/gn/BUILD.gn b/build/gn/BUILD.gn index aa643279a971d9396bb3d8369dbf231089097d83..b3de95e5a9de1b74bb401b30bd5810ae9f812b3a 100644 --- a/build/gn/BUILD.gn +++ b/build/gn/BUILD.gn @@ -16,6 +16,7 @@ group("ft_display_server") { "//display_server/rosen/modules/render_service_base/ft_build:librender_service_base", "//display_server/rosen/modules/render_service/ft_build:render_service_group", "//display_server/rosen/modules/render_service_client/ft_build:librender_service_client", + "//display_server/rosen/modules/2d_graphics/ft_build:2d_graphics", ] } diff --git a/build/gn/configs/system_libs/BUILD.gn b/build/gn/configs/system_libs/BUILD.gn index 235c4f693a7a8b77748938d958706de6b0724dd5..32d033234d562b72e013f7e239481da3fa54bf9c 100644 --- a/build/gn/configs/system_libs/BUILD.gn +++ b/build/gn/configs/system_libs/BUILD.gn @@ -50,12 +50,14 @@ config("skia_config") { visibility = [ ":*" ] include_dirs = [ + "${sys_inc}/flutter", + "${sys_inc}/flutter/txt", "${sys_inc}/skia", "${sys_inc}/skia/src", "${sys_inc}/skia/include", - "${sys_inc}/skia/include/core" + "${sys_inc}/skia/include/core", ] - libs = [ "ace_skia_fangtian" ] + libs = [ "ace_skia_fangtian", "txt" ] } config("samgr_config") { @@ -103,6 +105,13 @@ config("gtest_config") { libs = [ "gtest", "gtest_main" ] } +config("harfbuzz_config") { + visibility = [ ":*" ] + + include_dirs = [ "/usr/include/harfbuzz" ] + libs = ["harfbuzz"] +} + group("c_utils") { public_configs = [ ":c_utils_config" ] } @@ -180,3 +189,7 @@ group("libz") { group("gtest") { public_configs = [ ":gtest_config" ] } + +group("harfbuzz") { + public_configs = [ ":harfbuzz_config" ] +} \ No newline at end of file diff --git a/display_server/rosen/modules/2d_graphics/ft_build/BUILD.gn b/display_server/rosen/modules/2d_graphics/ft_build/BUILD.gn index 5dd3482a993281923959f63becb1f3d956efe229..5cbe89354d316d3c91a67a2b7fa4eef5fb3e486b 100755 --- a/display_server/rosen/modules/2d_graphics/ft_build/BUILD.gn +++ b/display_server/rosen/modules/2d_graphics/ft_build/BUILD.gn @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Huawei Device Co., Ltd.. All rights reserved. +# Copyright (c) 2023 Huawei Technologies Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -12,241 +12,90 @@ # limitations under the License. import("//build/gn/fangtian.gni") -import("//ace_engine/ft_build/ace_config.gni") -import("//third_party/ft_engine/display_server/ft_build/ds_config.gni") -import( - "//third_party/ft_engine/display_server/rosen/modules/2d_engine/rosen_text/ft_build/config.gni") - -drawing_src_dir = "$rosen_root/modules/2d_graphics/src/drawing" -src_dir = "$rosen_root/modules/2d_graphics/src" - -template("graphics2d_source_set") { - forward_variables_from(invoker, "*") - - ft_source_set(target_name) { - defines += invoker.defines - cflags_cc += invoker.cflags_cc - sources = [ - "$drawing_src_dir/c/drawing_bitmap.cpp", - "$drawing_src_dir/c/drawing_brush.cpp", - "$drawing_src_dir/c/drawing_canvas.cpp", - "$drawing_src_dir/c/drawing_color.cpp", - "$drawing_src_dir/c/drawing_font_collection.cpp", - "$drawing_src_dir/c/drawing_path.cpp", - "$drawing_src_dir/c/drawing_pen.cpp", - "$drawing_src_dir/c/drawing_text_typography.cpp", - "$drawing_src_dir/draw/brush.cpp", - "$drawing_src_dir/draw/color.cpp", - "$drawing_src_dir/draw/core_canvas.cpp", - "$drawing_src_dir/draw/path.cpp", - "$drawing_src_dir/draw/pen.cpp", - "$drawing_src_dir/effect/color_filter.cpp", - "$drawing_src_dir/effect/color_space.cpp", - "$drawing_src_dir/effect/filter.cpp", - "$drawing_src_dir/effect/image_filter.cpp", - "$drawing_src_dir/effect/mask_filter.cpp", - "$drawing_src_dir/effect/path_effect.cpp", - "$drawing_src_dir/effect/shader_effect.cpp", - "$drawing_src_dir/engine_adapter/impl_factory.cpp", - "$drawing_src_dir/engine_adapter/skia_adapter/skia_bitmap.cpp", - "$drawing_src_dir/engine_adapter/skia_adapter/skia_camera.cpp", - "$drawing_src_dir/engine_adapter/skia_adapter/skia_canvas.cpp", - "$drawing_src_dir/engine_adapter/skia_adapter/skia_color_filter.cpp", - "$drawing_src_dir/engine_adapter/skia_adapter/skia_color_space.cpp", - "$drawing_src_dir/engine_adapter/skia_adapter/skia_image.cpp", - "$drawing_src_dir/engine_adapter/skia_adapter/skia_image_filter.cpp", - "$drawing_src_dir/engine_adapter/skia_adapter/skia_impl_factory.cpp", - "$drawing_src_dir/engine_adapter/skia_adapter/skia_mask_filter.cpp", - "$drawing_src_dir/engine_adapter/skia_adapter/skia_matrix.cpp", - "$drawing_src_dir/engine_adapter/skia_adapter/skia_paint.cpp", - "$drawing_src_dir/engine_adapter/skia_adapter/skia_path.cpp", - "$drawing_src_dir/engine_adapter/skia_adapter/skia_path_effect.cpp", - "$drawing_src_dir/engine_adapter/skia_adapter/skia_picture.cpp", - "$drawing_src_dir/engine_adapter/skia_adapter/skia_shader_effect.cpp", - "$drawing_src_dir/image/bitmap.cpp", - "$drawing_src_dir/image/image.cpp", - "$drawing_src_dir/image/picture.cpp", - "$drawing_src_dir/text/text.cpp", - "$drawing_src_dir/utils/camera3d.cpp", - "$drawing_src_dir/utils/matrix.cpp", - ] - - sources += [ - "$rosen_text_root/properties/font_collection_txt.cpp", - "$rosen_text_root/properties/placeholder_run.cpp", - "$rosen_text_root/properties/rosen_converter_txt.cpp", - "$rosen_text_root/properties/text_style.cpp", - "$rosen_text_root/properties/typography_create_txt.cpp", - "$rosen_text_root/properties/typography_style.cpp", - "$rosen_text_root/properties/typography_txt.cpp", - "$rosen_text_root/ui/font_collection.cpp", - "$rosen_text_root/ui/typography.cpp", - "$rosen_text_root/ui/typography_create.cpp", - ] - - include_dirs = [ - "../include", - "$src_dir", - "$drawing_src_dir", - "$drawing_src_dir/engine_adapter", - "$rosen_2d_engine_root", - "//foundation/arkui/ace_engine/frameworks", - "//third_party/bounds_checking_function/include", - ] - - defines += [ "USE_ACE_SKIA" ] - - if (platform == "ohos") { - external_deps = [ - "hilog_native:libhilog", - "multimedia_image_framework:image_native", - ] - deps = [ - "$ace_flutter_engine_root:flutter_engine_fml_$platform", - "//foundation/graphic/graphic_2d/rosen/build/flutter/icu:rosen_libicu_$platform", - "//foundation/graphic/graphic_2d/rosen/build/flutter/libtxt:thirdparty_lib_txt_rosen_$platform", - "//third_party/bounds_checking_function:libsec_static", - ] - include_dirs += [ - "$flutter_root/engine", - "$flutter_root/engine/flutter/third_party/txt/src", - ] - defines += [ "SUPPORT_OHOS_PIXMAP" ] - } else { - cflags = [ "-Wno-c++17-extensions" ] - - if (enable_ng_build) { - deps = [ - "$ace_flutter_engine_root_new/third_party/icu:ace_libicu_dev_$platform", - "$ace_flutter_engine_root_new/third_party/libtxt:thirdparty_lib_txt_dev_$platform", - "$ace_flutter_engine_root_new/third_party/skia:ace_skia_dev_$platform", - ] - include_dirs += [ - "$flutter_root_new/engine", - "$flutter_root_new/engine/flutter/third_party/txt/src", - ] - defines += [ "USE_CANVASKIT0310_SKIA" ] - } else { - deps = [ - "$ace_flutter_engine_root:flutter_engine_fml_$platform", - "$ace_flutter_engine_root/icu:ace_libicu_$platform", - "$ace_flutter_engine_root/libtxt:thirdparty_lib_txt_$platform", - "$ace_flutter_engine_root/skia:ace_skia_$platform", - ] - include_dirs += [ - "$flutter_root/engine", - "$flutter_root/engine/flutter/third_party/txt/src", - ] - } - - if (!is_cross_platform_build) { - # deps += [ "//base/hiviewdfx/hilog/frameworks/libhilog:libhilog_source_$platform" ] - } - } - deps += [ - "//build/gn/configs/system_libs:c_utils", - ] - part_name = "graphic_standard" - subsystem_name = "graphic" - } +import("//display_server/ft_build/ds_config.gni") + +drawing_src_dir = "//display_server/rosen/modules/2d_graphics/src/drawing" +src_dir = "//display_server/rosen/modules/2d_graphics/src" +rosen_text_root = "//display_server/rosen/modules/2d_engine/rosen_text" + +ft_shared_library("2d_graphics") { + cflags_cc = [ + "-Wno-return-stack-address", + "-Wno-sign-compare", + "-Wno-unused-lambda-capture", + "-Wno-c++11-narrowing", + "-fvisibility=default", + ] + + sources = [ + "$drawing_src_dir/c/drawing_bitmap.cpp", + "$drawing_src_dir/c/drawing_brush.cpp", + "$drawing_src_dir/c/drawing_canvas.cpp", + "$drawing_src_dir/c/drawing_color.cpp", + "$drawing_src_dir/c/drawing_font_collection.cpp", + "$drawing_src_dir/c/drawing_path.cpp", + "$drawing_src_dir/c/drawing_pen.cpp", + "$drawing_src_dir/c/drawing_text_typography.cpp", + "$drawing_src_dir/draw/brush.cpp", + "$drawing_src_dir/draw/color.cpp", + "$drawing_src_dir/draw/core_canvas.cpp", + "$drawing_src_dir/draw/path.cpp", + "$drawing_src_dir/draw/pen.cpp", + "$drawing_src_dir/effect/color_filter.cpp", + "$drawing_src_dir/effect/color_space.cpp", + "$drawing_src_dir/effect/filter.cpp", + "$drawing_src_dir/effect/image_filter.cpp", + "$drawing_src_dir/effect/mask_filter.cpp", + "$drawing_src_dir/effect/path_effect.cpp", + "$drawing_src_dir/effect/shader_effect.cpp", + "$drawing_src_dir/engine_adapter/impl_factory.cpp", + "$drawing_src_dir/engine_adapter/skia_adapter/skia_bitmap.cpp", + "$drawing_src_dir/engine_adapter/skia_adapter/skia_camera.cpp", + "$drawing_src_dir/engine_adapter/skia_adapter/skia_canvas.cpp", + "$drawing_src_dir/engine_adapter/skia_adapter/skia_color_filter.cpp", + "$drawing_src_dir/engine_adapter/skia_adapter/skia_color_space.cpp", + "$drawing_src_dir/engine_adapter/skia_adapter/skia_image.cpp", + "$drawing_src_dir/engine_adapter/skia_adapter/skia_image_filter.cpp", + "$drawing_src_dir/engine_adapter/skia_adapter/skia_impl_factory.cpp", + "$drawing_src_dir/engine_adapter/skia_adapter/skia_mask_filter.cpp", + "$drawing_src_dir/engine_adapter/skia_adapter/skia_matrix.cpp", + "$drawing_src_dir/engine_adapter/skia_adapter/skia_paint.cpp", + "$drawing_src_dir/engine_adapter/skia_adapter/skia_path.cpp", + "$drawing_src_dir/engine_adapter/skia_adapter/skia_path_effect.cpp", + "$drawing_src_dir/engine_adapter/skia_adapter/skia_picture.cpp", + "$drawing_src_dir/engine_adapter/skia_adapter/skia_shader_effect.cpp", + "$drawing_src_dir/image/bitmap.cpp", + "$drawing_src_dir/image/image.cpp", + "$drawing_src_dir/image/picture.cpp", + "$drawing_src_dir/text/text.cpp", + "$drawing_src_dir/utils/camera3d.cpp", + "$drawing_src_dir/utils/matrix.cpp", + ] + + sources += [ + "$rosen_text_root/properties/font_collection_txt.cpp", + "$rosen_text_root/properties/placeholder_run.cpp", + "$rosen_text_root/properties/rosen_converter_txt.cpp", + "$rosen_text_root/properties/text_style.cpp", + "$rosen_text_root/properties/typography_create_txt.cpp", + "$rosen_text_root/properties/typography_style.cpp", + "$rosen_text_root/properties/typography_txt.cpp", + "$rosen_text_root/ui/font_collection.cpp", + "$rosen_text_root/ui/typography.cpp", + "$rosen_text_root/ui/typography_create.cpp", + ] + + include_dirs = [ + "../include", + "$src_dir", + "$drawing_src_dir", + "$drawing_src_dir/engine_adapter", + "//display_server/rosen/modules/2d_engine", + ] + + deps = [ + "//build/gn/configs/system_libs:harfbuzz", + "//build/gn/configs/system_libs:skia", + "//build/gn/configs/system_libs:c_utils" + ] } - -foreach(item, ace_platforms) { - graphics2d_source_set("2d_graphics_source_" + item.name) { - platform = item.name - defines = [] - - if (defined(item.config)) { - config = item.config - } else { - config = { - } - } - - if (defined(config.defines)) { - defines += config.defines - } - - if (defined(config.cflags_cc)) { - cflags_cc = config.cflags_cc - } else { - cflags_cc = [] - } - } -} - -if (!is_cross_platform_build) { - ## Build 2d_graphics.so - ft_shared_library("2d_graphics") { - # version_script = "2d_graphics.versionscript" - # symlink_target_name = [ "libnative_drawing.so" ] - #deps = [ ":2d_graphics_source_ohos" ] - #part_name = "graphic_standard" - #subsystem_name = "graphic" - } -} - -## Build 2d_graphics.so -# ft_shared_library("2d_graphics_canvaskit0310") { -# sources = [ -# "$drawing_src_dir/draw/brush.cpp", -# "$drawing_src_dir/draw/color.cpp", -# "$drawing_src_dir/draw/core_canvas.cpp", -# "$drawing_src_dir/draw/path.cpp", -# "$drawing_src_dir/draw/pen.cpp", -# "$drawing_src_dir/effect/color_filter.cpp", -# "$drawing_src_dir/effect/color_space.cpp", -# "$drawing_src_dir/effect/filter.cpp", -# "$drawing_src_dir/effect/image_filter.cpp", -# "$drawing_src_dir/effect/mask_filter.cpp", -# "$drawing_src_dir/effect/path_effect.cpp", -# "$drawing_src_dir/effect/shader_effect.cpp", -# "$drawing_src_dir/engine_adapter/impl_factory.cpp", -# "$drawing_src_dir/engine_adapter/skia_adapter/skia_bitmap.cpp", -# "$drawing_src_dir/engine_adapter/skia_adapter/skia_camera.cpp", -# "$drawing_src_dir/engine_adapter/skia_adapter/skia_canvas.cpp", -# "$drawing_src_dir/engine_adapter/skia_adapter/skia_color_filter.cpp", -# "$drawing_src_dir/engine_adapter/skia_adapter/skia_color_space.cpp", -# "$drawing_src_dir/engine_adapter/skia_adapter/skia_image.cpp", -# "$drawing_src_dir/engine_adapter/skia_adapter/skia_image_filter.cpp", -# "$drawing_src_dir/engine_adapter/skia_adapter/skia_impl_factory.cpp", -# "$drawing_src_dir/engine_adapter/skia_adapter/skia_mask_filter.cpp", -# "$drawing_src_dir/engine_adapter/skia_adapter/skia_matrix.cpp", -# "$drawing_src_dir/engine_adapter/skia_adapter/skia_paint.cpp", -# "$drawing_src_dir/engine_adapter/skia_adapter/skia_path.cpp", -# "$drawing_src_dir/engine_adapter/skia_adapter/skia_path_effect.cpp", -# "$drawing_src_dir/engine_adapter/skia_adapter/skia_picture.cpp", -# "$drawing_src_dir/engine_adapter/skia_adapter/skia_shader_effect.cpp", -# "$drawing_src_dir/image/bitmap.cpp", -# "$drawing_src_dir/image/image.cpp", -# "$drawing_src_dir/image/picture.cpp", -# "$drawing_src_dir/text/text.cpp", -# "$drawing_src_dir/utils/camera3d.cpp", -# "$drawing_src_dir/utils/matrix.cpp", -# ] -# -# defines = [ "USE_CANVASKIT0310_SKIA" ] -# -# include_dirs = [ -# "include", -# "$src_dir", -# "$drawing_src_dir", -# "$drawing_src_dir/engine_adapter", -# ] -# -# if (!is_cross_platform_build) { -# deps = [ -# "//foundation/graphic/graphic_2d:libsurface", -# # "//third_party/skia_canvaskit0310:skia", -# ] -# } -# -# external_deps = [ -# "hilog_native:libhilog", -# "multimedia_image_framework:image_native", -# ] -# -# part_name = "graphic_standard" -# subsystem_name = "graphic" -# } -## Build 2d_graphics.so