17b66cf61Sopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd.
27b66cf61Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
37b66cf61Sopenharmony_ci# you may not use this file except in compliance with the License.
47b66cf61Sopenharmony_ci# You may obtain a copy of the License at
57b66cf61Sopenharmony_ci#
67b66cf61Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
77b66cf61Sopenharmony_ci#
87b66cf61Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
97b66cf61Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
107b66cf61Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
117b66cf61Sopenharmony_ci# See the License for the specific language governing permissions and
127b66cf61Sopenharmony_ci# limitations under the License.
137b66cf61Sopenharmony_ci
147b66cf61Sopenharmony_ciimport("//build/ohos.gni")
157b66cf61Sopenharmony_ciimport("//third_party/cups/cups.gni")
167b66cf61Sopenharmony_ci
177b66cf61Sopenharmony_ciCUPS_CODE_DIR = "//third_party/cups/cups-2.4.0"
187b66cf61Sopenharmony_ciCUPS_FILTERS_CODE_DIR = "//third_party/cups-filters"
197b66cf61Sopenharmony_ciSUBSYSTEM_NAME = "thirdparty"
207b66cf61Sopenharmony_ciPART_NAME = "cups-filters"
217b66cf61Sopenharmony_ci
227b66cf61Sopenharmony_cigroup("third_party_cupsfilters") {
237b66cf61Sopenharmony_ci  deps = [
247b66cf61Sopenharmony_ci    ":cupsfilters",
257b66cf61Sopenharmony_ci    ":cupsfilters.convs",
267b66cf61Sopenharmony_ci    ":cupsfilters.types",
277b66cf61Sopenharmony_ci    ":imagetoraster",
287b66cf61Sopenharmony_ci  ]
297b66cf61Sopenharmony_ci}
307b66cf61Sopenharmony_ci
317b66cf61Sopenharmony_ciconfig("cups_filters_config") {
327b66cf61Sopenharmony_ci  include_dirs = [
337b66cf61Sopenharmony_ci    ".",
347b66cf61Sopenharmony_ci    "$CUPS_CODE_DIR",
357b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/",
367b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/filter/",
377b66cf61Sopenharmony_ci  ]
387b66cf61Sopenharmony_ci
397b66cf61Sopenharmony_ci  defines = cups_defines
407b66cf61Sopenharmony_ci
417b66cf61Sopenharmony_ci  cflags = [
427b66cf61Sopenharmony_ci    "-D_PPD_DEPRECATED=",
437b66cf61Sopenharmony_ci    "-Wextra",
447b66cf61Sopenharmony_ci    "-Wall",
457b66cf61Sopenharmony_ci    "-Wno-unused-parameter",
467b66cf61Sopenharmony_ci    "-Wno-unused-function",
477b66cf61Sopenharmony_ci    "-Wno-unused-variable",
487b66cf61Sopenharmony_ci    "-Wno-unused-value",
497b66cf61Sopenharmony_ci    "-Wno-sign-compare",
507b66cf61Sopenharmony_ci    "-Wno-missing-field-initializers",
517b66cf61Sopenharmony_ci
527b66cf61Sopenharmony_ci    "-Wno-strlcpy-strlcat-size",
537b66cf61Sopenharmony_ci    "-Wtautological-pointer-compare",
547b66cf61Sopenharmony_ci    "-Wimplicit-fallthrough",
557b66cf61Sopenharmony_ci    "-Wno-implicit-function-declaration",
567b66cf61Sopenharmony_ci    "-w",
577b66cf61Sopenharmony_ci    "-D_FORTIFY_SOURCE=2",
587b66cf61Sopenharmony_ci    "-fstack-protector-all",
597b66cf61Sopenharmony_ci  ]
607b66cf61Sopenharmony_ci}
617b66cf61Sopenharmony_ci
627b66cf61Sopenharmony_ciaction("cupsfilters_action") {
637b66cf61Sopenharmony_ci  script = "//third_party/cups-filters/install.py"
647b66cf61Sopenharmony_ci  outputs = [ "${target_gen_dir}/cupsfilters.convs" ]
657b66cf61Sopenharmony_ci  inputs = [ "//third_party/cups/cups-2.4.0-source.tar.gz" ]
667b66cf61Sopenharmony_ci  gen_path = rebase_path("${target_gen_dir}", root_build_dir)
677b66cf61Sopenharmony_ci  source_path = rebase_path("//third_party/cups-filters", root_build_dir)
687b66cf61Sopenharmony_ci  args = [
697b66cf61Sopenharmony_ci    "--gen-dir",
707b66cf61Sopenharmony_ci    "$gen_path",
717b66cf61Sopenharmony_ci    "--source-dir",
727b66cf61Sopenharmony_ci    "$source_path",
737b66cf61Sopenharmony_ci  ]
747b66cf61Sopenharmony_ci}
757b66cf61Sopenharmony_ci
767b66cf61Sopenharmony_ciohos_shared_library("cupsfilters") {
777b66cf61Sopenharmony_ci  sources = [
787b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/attr.c",
797b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/check.c",
807b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/cmyk.c",
817b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/colord.c",
827b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/colormanager.c",
837b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/dither.c",
847b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/image-bmp.c",
857b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/image-colorspace.c",
867b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/image-gif.c",
877b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/image-jpeg.c",
887b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/image-photocd.c",
897b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/image-pix.c",
907b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/image-png.c",
917b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/image-pnm.c",
927b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/image-sgi.c",
937b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/image-sgilib.c",
947b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/image-sun.c",
957b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/image-tiff.c",
967b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/image-zoom.c",
977b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/image.c",
987b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/ipp.c",
997b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/lut.c",
1007b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/pack.c",
1017b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/pdftoippprinter.c",
1027b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/ppdgenerator.c",
1037b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/raster.c",
1047b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/rgb.c",
1057b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/cupsfilters/srgb.c",
1067b66cf61Sopenharmony_ci  ]
1077b66cf61Sopenharmony_ci
1087b66cf61Sopenharmony_ci  public_configs = [ ":cups_filters_config" ]
1097b66cf61Sopenharmony_ci
1107b66cf61Sopenharmony_ci  deps = [
1117b66cf61Sopenharmony_ci    ":cupsfilters_action",
1127b66cf61Sopenharmony_ci    "//third_party/cups:cups",
1137b66cf61Sopenharmony_ci    "//third_party/libjpeg-turbo:turbojpeg",
1147b66cf61Sopenharmony_ci    "//third_party/libpng:libpng",
1157b66cf61Sopenharmony_ci    "//third_party/zlib:libz",
1167b66cf61Sopenharmony_ci  ]
1177b66cf61Sopenharmony_ci
1187b66cf61Sopenharmony_ci  install_enable = true
1197b66cf61Sopenharmony_ci  subsystem_name = "$SUBSYSTEM_NAME"
1207b66cf61Sopenharmony_ci  part_name = "$PART_NAME"
1217b66cf61Sopenharmony_ci}
1227b66cf61Sopenharmony_ci
1237b66cf61Sopenharmony_ciohos_executable("imagetoraster") {
1247b66cf61Sopenharmony_ci  sources = [
1257b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/filter/common.c",
1267b66cf61Sopenharmony_ci    "$CUPS_FILTERS_CODE_DIR/filter/imagetoraster.c",
1277b66cf61Sopenharmony_ci  ]
1287b66cf61Sopenharmony_ci
1297b66cf61Sopenharmony_ci  deps = [
1307b66cf61Sopenharmony_ci    "//third_party/cups:cups",
1317b66cf61Sopenharmony_ci    "//third_party/cups-filters:cupsfilters",
1327b66cf61Sopenharmony_ci  ]
1337b66cf61Sopenharmony_ci
1347b66cf61Sopenharmony_ci  public_configs = [ ":cups_filters_config" ]
1357b66cf61Sopenharmony_ci
1367b66cf61Sopenharmony_ci  module_install_dir = "$cups_serverbin_dir/filter"
1377b66cf61Sopenharmony_ci  install_enable = true
1387b66cf61Sopenharmony_ci  subsystem_name = "$SUBSYSTEM_NAME"
1397b66cf61Sopenharmony_ci  part_name = "$PART_NAME"
1407b66cf61Sopenharmony_ci}
1417b66cf61Sopenharmony_ci
1427b66cf61Sopenharmony_ciohos_prebuilt_etc("cupsfilters.convs") {
1437b66cf61Sopenharmony_ci  source = "${target_gen_dir}/cupsfilters.convs"
1447b66cf61Sopenharmony_ci  deps = [ ":cupsfilters_action" ]
1457b66cf61Sopenharmony_ci  relative_install_dir = "cups/share/mime"
1467b66cf61Sopenharmony_ci  subsystem_name = "$SUBSYSTEM_NAME"
1477b66cf61Sopenharmony_ci  part_name = "$PART_NAME"
1487b66cf61Sopenharmony_ci}
1497b66cf61Sopenharmony_ci
1507b66cf61Sopenharmony_ciohos_prebuilt_etc("cupsfilters.types") {
1517b66cf61Sopenharmony_ci  source = "mime/cupsfilters.types"
1527b66cf61Sopenharmony_ci  deps = [ ":cupsfilters_action" ]
1537b66cf61Sopenharmony_ci  relative_install_dir = "cups/share/mime"
1547b66cf61Sopenharmony_ci  subsystem_name = "$SUBSYSTEM_NAME"
1557b66cf61Sopenharmony_ci  part_name = "$PART_NAME"
1567b66cf61Sopenharmony_ci}
157