• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2023 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//build/ohos.gni")
15import("./cups.gni")
16
17config_dir = "${target_gen_dir}"
18cups_code_dir = "${target_gen_dir}/cups-2.4.0"
19core_code_dir = "$cups_code_dir/cups/"
20filter_code_dir = "$cups_code_dir/filter"
21backend_code_dir = "$cups_code_dir/backend"
22ppdc_code_dir = "$cups_code_dir/ppdc"
23scheduler_code_dir = "$cups_code_dir/scheduler"
24
25SUBSYSTEM_NAME = "thirdparty"
26PART_NAME = "cups"
27
28cups_generated_sources = [
29  "$core_code_dir/adminutil.c",
30  "$core_code_dir/array.c",
31  "$core_code_dir/auth.c",
32  "$core_code_dir/backchannel.c",
33  "$core_code_dir/backend.c",
34  "$core_code_dir/debug.c",
35  "$core_code_dir/dest-job.c",
36  "$core_code_dir/dest-localization.c",
37  "$core_code_dir/dest-options.c",
38  "$core_code_dir/dest.c",
39  "$core_code_dir/dir.c",
40  "$core_code_dir/encode.c",
41  "$core_code_dir/file.c",
42  "$core_code_dir/getdevices.c",
43  "$core_code_dir/getifaddrs.c",
44  "$core_code_dir/getputfile.c",
45  "$core_code_dir/globals.c",
46  "$core_code_dir/hash.c",
47  "$core_code_dir/http-addr.c",
48  "$core_code_dir/http-addrlist.c",
49  "$core_code_dir/http-support.c",
50  "$core_code_dir/http.c",
51  "$core_code_dir/ipp-file.c",
52  "$core_code_dir/ipp-support.c",
53  "$core_code_dir/ipp-vars.c",
54  "$core_code_dir/ipp.c",
55  "$core_code_dir/langprintf.c",
56  "$core_code_dir/language.c",
57  "$core_code_dir/md5.c",
58  "$core_code_dir/md5passwd.c",
59  "$core_code_dir/notify.c",
60  "$core_code_dir/options.c",
61  "$core_code_dir/ppd-attr.c",
62  "$core_code_dir/ppd-cache.c",
63  "$core_code_dir/ppd-conflicts.c",
64  "$core_code_dir/ppd-custom.c",
65  "$core_code_dir/ppd-emit.c",
66  "$core_code_dir/ppd-localize.c",
67  "$core_code_dir/ppd-mark.c",
68  "$core_code_dir/ppd-page.c",
69  "$core_code_dir/ppd-util.c",
70  "$core_code_dir/ppd.c",
71  "$core_code_dir/pwg-media.c",
72  "$core_code_dir/raster-error.c",
73  "$core_code_dir/raster-interpret.c",
74  "$core_code_dir/raster-stream.c",
75  "$core_code_dir/request.c",
76  "$core_code_dir/sidechannel.c",
77  "$core_code_dir/snmp.c",
78  "$core_code_dir/snprintf.c",
79  "$core_code_dir/string.c",
80  "$core_code_dir/tempfile.c",
81  "$core_code_dir/thread.c",
82  "$core_code_dir/tls-openssl.c",
83  "$core_code_dir/tls.c",
84  "$core_code_dir/transcode.c",
85  "$core_code_dir/usersys.c",
86  "$core_code_dir/util.c",
87]
88
89scheduler_util_generated_sources = [ "$scheduler_code_dir/util.c" ]
90
91cups_deviced_generated_sources = [ "$scheduler_code_dir/cups-deviced.c" ]
92
93cups_driverd_generated_sources = [ "$scheduler_code_dir/cups-driverd.cxx" ]
94
95cups_exec_generated_sources = [ "$scheduler_code_dir/cups-exec.c" ]
96
97cupsd_generated_sources = [
98  "$scheduler_code_dir/auth.c",
99  "$scheduler_code_dir/banners.c",
100  "$scheduler_code_dir/cert.c",
101  "$scheduler_code_dir/classes.c",
102  "$scheduler_code_dir/client.c",
103  "$scheduler_code_dir/colorman.c",
104  "$scheduler_code_dir/conf.c",
105  "$scheduler_code_dir/dirsvc.c",
106  "$scheduler_code_dir/env.c",
107  "$scheduler_code_dir/file.c",
108  "$scheduler_code_dir/ipp.c",
109  "$scheduler_code_dir/job.c",
110  "$scheduler_code_dir/listen.c",
111  "$scheduler_code_dir/log.c",
112  "$scheduler_code_dir/main.c",
113  "$scheduler_code_dir/network.c",
114  "$scheduler_code_dir/policy.c",
115  "$scheduler_code_dir/printers.c",
116  "$scheduler_code_dir/process.c",
117  "$scheduler_code_dir/quotas.c",
118  "$scheduler_code_dir/select.c",
119  "$scheduler_code_dir/server.c",
120  "$scheduler_code_dir/statbuf.c",
121  "$scheduler_code_dir/subscriptions.c",
122  "$scheduler_code_dir/sysman.c",
123]
124
125cupsfilter_generated_sources = [ "$scheduler_code_dir/cupsfilter.c" ]
126
127ipp_generated_sources = [ "$backend_code_dir/ipp.c" ]
128
129usb_generated_sources = [ "$backend_code_dir/usb.c" ]
130
131lp_generated_sources = [ "$cups_code_dir/systemv/lp.c" ]
132
133lpadmin_generated_sources = [ "$cups_code_dir/systemv/lpadmin.c" ]
134
135lpinfo_generated_sources = [ "$cups_code_dir/systemv/lpinfo.c" ]
136
137rastertopwg_generated_sources = [ "$filter_code_dir/rastertopwg.c" ]
138
139cupsmime_generated_sources = [
140  "$scheduler_code_dir/filter.c",
141  "$scheduler_code_dir/mime.c",
142  "$scheduler_code_dir/type.c",
143]
144
145cupsimage_generated_sources = [
146  "$core_code_dir/raster-interstub.c",
147  "$core_code_dir/raster-stubs.c",
148]
149
150backend_generated_sources = [
151  "$backend_code_dir/ieee1284.c",
152  "$backend_code_dir/network.c",
153  "$backend_code_dir/runloop.c",
154  "$backend_code_dir/snmp-supplies.c",
155]
156
157cupsppdc_generated_sources = [
158  "$ppdc_code_dir/ppdc-array.cxx",
159  "$ppdc_code_dir/ppdc-attr.cxx",
160  "$ppdc_code_dir/ppdc-catalog.cxx",
161  "$ppdc_code_dir/ppdc-choice.cxx",
162  "$ppdc_code_dir/ppdc-constraint.cxx",
163  "$ppdc_code_dir/ppdc-driver.cxx",
164  "$ppdc_code_dir/ppdc-file.cxx",
165  "$ppdc_code_dir/ppdc-filter.cxx",
166  "$ppdc_code_dir/ppdc-font.cxx",
167  "$ppdc_code_dir/ppdc-group.cxx",
168  "$ppdc_code_dir/ppdc-import.cxx",
169  "$ppdc_code_dir/ppdc-mediasize.cxx",
170  "$ppdc_code_dir/ppdc-message.cxx",
171  "$ppdc_code_dir/ppdc-option.cxx",
172  "$ppdc_code_dir/ppdc-profile.cxx",
173  "$ppdc_code_dir/ppdc-shared.cxx",
174  "$ppdc_code_dir/ppdc-source.cxx",
175  "$ppdc_code_dir/ppdc-string.cxx",
176  "$ppdc_code_dir/ppdc-variable.cxx",
177]
178
179ppdc_generated_sources = [ "$ppdc_code_dir/ppdc.cxx" ]
180
181mime_convs_generated_source = "$cups_code_dir/conf/mime.convs"
182mime_types_generated_source = "$cups_code_dir/conf/mime.types"
183
184action("cups_action") {
185  print("cups_action is exec")
186  script = "//third_party/cups/install.py"
187  outputs = []
188  outputs += cups_generated_sources
189  outputs += cups_deviced_generated_sources
190  outputs += cups_driverd_generated_sources
191  outputs += cups_exec_generated_sources
192  outputs += cupsd_generated_sources
193  outputs += cupsfilter_generated_sources
194  outputs += ipp_generated_sources
195  outputs += usb_generated_sources
196  outputs += lp_generated_sources
197  outputs += lpadmin_generated_sources
198  outputs += lpinfo_generated_sources
199  outputs += rastertopwg_generated_sources
200  outputs += cupsmime_generated_sources
201  outputs += cupsimage_generated_sources
202  outputs += backend_generated_sources
203  outputs += cupsppdc_generated_sources
204  outputs += ppdc_generated_sources
205  outputs += scheduler_util_generated_sources
206  outputs += [ mime_convs_generated_source ]
207  outputs += [ mime_types_generated_source ]
208
209  inputs = [ "//third_party/cups/cups-2.4.0-source.tar.gz" ]
210  cups_path = rebase_path("${target_gen_dir}", root_build_dir)
211  cups_source_path = rebase_path("//third_party/cups", root_build_dir)
212  args = [
213    "--gen-dir",
214    "$cups_path",
215    "--source-dir",
216    "$cups_source_path",
217  ]
218}
219
220group("third_party_cups") {
221  public_deps = [ ":cups" ]
222  deps = [
223    ":cups-deviced",
224    ":cups-driverd",
225    ":cups-exec",
226    ":cupsd",
227    ":cupsfilter",
228    ":cupsimage",
229    ":ipp",
230    ":mime.convs",
231    ":mime.types",
232    ":rastertopwg",
233    ":usb",
234  ]
235}
236
237config("cups_config") {
238  defines = cups_defines
239  include_dirs = [
240    "$config_dir",
241    "$cups_code_dir",
242    "$core_code_dir",
243    "//third_party/libusb",
244    "//third_party/openssl/include",
245    get_label_info(":cups_action", "target_gen_dir") + "/cups-2.4.0",
246  ]
247
248  cflags = [
249    "-Wno-unused-function",
250    "-Wno-unused-value",
251    "-Wno-implicit-function-declaration",
252    "-Wno-int-conversion",
253    "-D_FORTIFY_SOURCE=2",
254    "-fstack-protector-all",
255    "-fdata-sections",
256    "-ffunction-sections",
257    "-fno-asynchronous-unwind-tables",
258    "-fno-unwind-tables",
259    "-Os",
260  ]
261}
262
263ohos_shared_library("cups") {
264  sources = cups_generated_sources
265  sources += cupsimage_generated_sources
266  deps = [
267    ":cups_action",
268    "//third_party/openssl:libcrypto_shared",
269    "//third_party/openssl:libssl_shared",
270    "//third_party/zlib:libz",
271  ]
272  public_configs = [ ":cups_config" ]
273  subsystem_name = "$SUBSYSTEM_NAME"
274  part_name = "$PART_NAME"
275}
276
277ohos_shared_library("cupsimage") {
278  sources = cupsimage_generated_sources
279  deps = [
280    ":cups_action",
281    "//third_party/cups:cups",
282  ]
283  public_configs = [ ":cups_config" ]
284  subsystem_name = "$SUBSYSTEM_NAME"
285  part_name = "$PART_NAME"
286}
287
288ohos_executable("rastertopwg") {
289  sources = rastertopwg_generated_sources
290  deps = [
291    ":cups_action",
292    "//third_party/cups:cups",
293  ]
294  install_enable = true
295  module_install_dir = "$cups_serverbin_dir/filter"
296  public_configs = [ ":cups_config" ]
297  subsystem_name = "$SUBSYSTEM_NAME"
298  part_name = "$PART_NAME"
299}
300
301ohos_shared_library("backend") {
302  sources = backend_generated_sources
303  deps = [
304    ":cups_action",
305    "//third_party/cups:cups",
306  ]
307  public_configs = [ ":cups_config" ]
308  subsystem_name = "$SUBSYSTEM_NAME"
309  part_name = "$PART_NAME"
310}
311
312ohos_executable("ipp") {
313  sources = ipp_generated_sources
314  deps = [
315    ":cups_action",
316    "//third_party/cups:backend",
317    "//third_party/cups:cups",
318  ]
319  install_enable = true
320  module_install_dir = "$cups_serverbin_dir/backend"
321  public_configs = [ ":cups_config" ]
322  subsystem_name = "$SUBSYSTEM_NAME"
323  part_name = "$PART_NAME"
324}
325
326ohos_executable("usb") {
327  sources = usb_generated_sources
328  deps = [
329    ":cups_action",
330    "//third_party/cups:backend",
331    "//third_party/cups:cups",
332    "//third_party/libusb:libusb",
333  ]
334  install_enable = true
335  module_install_dir = "$cups_serverbin_dir/backend"
336  public_configs = [ ":cups_config" ]
337  subsystem_name = "$SUBSYSTEM_NAME"
338  part_name = "$PART_NAME"
339}
340
341#end of backend
342
343ohos_executable("lpadmin") {
344  sources = lpadmin_generated_sources
345  deps = [
346    ":cups_action",
347    "//third_party/cups:cups",
348  ]
349  install_enable = true
350  public_configs = [ ":cups_config" ]
351  subsystem_name = "$SUBSYSTEM_NAME"
352  part_name = "$PART_NAME"
353}
354
355ohos_executable("lpinfo") {
356  sources = lpinfo_generated_sources
357  deps = [
358    ":cups_action",
359    "//third_party/cups:cups",
360  ]
361  install_enable = true
362  public_configs = [ ":cups_config" ]
363  subsystem_name = "$SUBSYSTEM_NAME"
364  part_name = "$PART_NAME"
365}
366
367ohos_executable("lp") {
368  sources = lp_generated_sources
369  deps = [
370    ":cups_action",
371    "//third_party/cups:cups",
372  ]
373  install_enable = true
374  public_configs = [ ":cups_config" ]
375  subsystem_name = "$SUBSYSTEM_NAME"
376  part_name = "$PART_NAME"
377}
378
379#ppdc
380ohos_shared_library("cupsppdc") {
381  sources = cupsppdc_generated_sources
382  deps = [
383    ":cups_action",
384    "//third_party/cups:cups",
385  ]
386  public_configs = [ ":cups_config" ]
387  subsystem_name = "$SUBSYSTEM_NAME"
388  part_name = "$PART_NAME"
389}
390
391ohos_executable("ppdc") {
392  sources = ppdc_generated_sources
393  deps = [
394    ":cups_action",
395    "//third_party/cups:cups",
396    "//third_party/cups:cupsppdc",
397  ]
398  install_enable = true
399  public_configs = [ ":cups_config" ]
400  subsystem_name = "$SUBSYSTEM_NAME"
401  part_name = "$PART_NAME"
402}
403
404#end of ppdc
405
406#scheduler
407ohos_shared_library("cupsmime") {
408  sources = cupsmime_generated_sources
409  deps = [
410    ":cups_action",
411    "//third_party/cups:cups",
412  ]
413  public_configs = [ ":cups_config" ]
414  subsystem_name = "$SUBSYSTEM_NAME"
415  part_name = "$PART_NAME"
416}
417
418ohos_executable("cupsd") {
419  sources = cupsd_generated_sources
420  deps = [
421    ":cups_action",
422    "//third_party/cups:cups",
423    "//third_party/cups:cupsmime",
424  ]
425  install_enable = true
426  public_configs = [ ":cups_config" ]
427  subsystem_name = "$SUBSYSTEM_NAME"
428  part_name = "$PART_NAME"
429}
430
431ohos_executable("cupsfilter") {
432  sources = cupsfilter_generated_sources
433  deps = [
434    ":cups_action",
435    "//third_party/cups:cups",
436    "//third_party/cups:cupsmime",
437  ]
438  install_enable = true
439  public_configs = [ ":cups_config" ]
440  subsystem_name = "$SUBSYSTEM_NAME"
441  part_name = "$PART_NAME"
442}
443
444ohos_executable("cups-deviced") {
445  sources = cups_deviced_generated_sources
446  sources += scheduler_util_generated_sources
447  deps = [
448    ":cups_action",
449    "//third_party/cups:cups",
450    "//third_party/cups:cupsmime",
451  ]
452  install_enable = true
453  module_install_dir = "$cups_serverbin_dir/daemon"
454  public_configs = [ ":cups_config" ]
455  subsystem_name = "$SUBSYSTEM_NAME"
456  part_name = "$PART_NAME"
457}
458
459ohos_executable("cups-driverd") {
460  sources = cups_driverd_generated_sources
461  sources += scheduler_util_generated_sources
462  deps = [
463    ":cups_action",
464    "//third_party/cups:cups",
465    "//third_party/cups:cupsppdc",
466  ]
467  install_enable = true
468  module_install_dir = "$cups_serverbin_dir/daemon"
469  public_configs = [ ":cups_config" ]
470  subsystem_name = "$SUBSYSTEM_NAME"
471  part_name = "$PART_NAME"
472}
473
474ohos_executable("cups-exec") {
475  sources = cups_exec_generated_sources
476  deps = [ ":cups_action" ]
477  install_enable = true
478  module_install_dir = "$cups_serverbin_dir/daemon"
479  public_configs = [ ":cups_config" ]
480  subsystem_name = "$SUBSYSTEM_NAME"
481  part_name = "$PART_NAME"
482}
483
484ohos_prebuilt_etc("mime.convs") {
485  source = mime_convs_generated_source
486  deps = [ ":cups_action" ]
487  relative_install_dir = "cups/share/mime"
488  subsystem_name = "$SUBSYSTEM_NAME"
489  part_name = "$PART_NAME"
490}
491
492ohos_prebuilt_etc("mime.types") {
493  source = mime_types_generated_source
494  deps = [ ":cups_action" ]
495  relative_install_dir = "cups/share/mime"
496  subsystem_name = "$SUBSYSTEM_NAME"
497  part_name = "$PART_NAME"
498}
499