• 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/hilog-helper.c",
109  "$scheduler_code_dir/ipp.c",
110  "$scheduler_code_dir/job.c",
111  "$scheduler_code_dir/listen.c",
112  "$scheduler_code_dir/log.c",
113  "$scheduler_code_dir/main.c",
114  "$scheduler_code_dir/network.c",
115  "$scheduler_code_dir/policy.c",
116  "$scheduler_code_dir/printers.c",
117  "$scheduler_code_dir/process.c",
118  "$scheduler_code_dir/quotas.c",
119  "$scheduler_code_dir/select.c",
120  "$scheduler_code_dir/server.c",
121  "$scheduler_code_dir/statbuf.c",
122  "$scheduler_code_dir/subscriptions.c",
123  "$scheduler_code_dir/sysman.c",
124]
125
126cupsfilter_generated_sources = [ "$scheduler_code_dir/cupsfilter.c" ]
127
128ipp_generated_sources = [ "$backend_code_dir/ipp.c" ]
129
130usb_generated_sources = [
131  "$backend_code_dir/usb.c",
132  "$backend_code_dir/usb_manager.cxx",
133]
134
135lp_generated_sources = [ "$cups_code_dir/systemv/lp.c" ]
136
137lpadmin_generated_sources = [ "$cups_code_dir/systemv/lpadmin.c" ]
138
139lpinfo_generated_sources = [ "$cups_code_dir/systemv/lpinfo.c" ]
140
141rastertopwg_generated_sources = [ "$filter_code_dir/rastertopwg.c" ]
142
143cupsmime_generated_sources = [
144  "$scheduler_code_dir/filter.c",
145  "$scheduler_code_dir/mime.c",
146  "$scheduler_code_dir/type.c",
147]
148
149cupsimage_generated_sources = [
150  "$core_code_dir/raster-interstub.c",
151  "$core_code_dir/raster-stubs.c",
152]
153
154backend_generated_sources = [
155  "$backend_code_dir/ieee1284.c",
156  "$backend_code_dir/network.c",
157  "$backend_code_dir/runloop.c",
158  "$backend_code_dir/snmp-supplies.c",
159]
160
161cupsppdc_generated_sources = [
162  "$ppdc_code_dir/ppdc-array.cxx",
163  "$ppdc_code_dir/ppdc-attr.cxx",
164  "$ppdc_code_dir/ppdc-catalog.cxx",
165  "$ppdc_code_dir/ppdc-choice.cxx",
166  "$ppdc_code_dir/ppdc-constraint.cxx",
167  "$ppdc_code_dir/ppdc-driver.cxx",
168  "$ppdc_code_dir/ppdc-file.cxx",
169  "$ppdc_code_dir/ppdc-filter.cxx",
170  "$ppdc_code_dir/ppdc-font.cxx",
171  "$ppdc_code_dir/ppdc-group.cxx",
172  "$ppdc_code_dir/ppdc-import.cxx",
173  "$ppdc_code_dir/ppdc-mediasize.cxx",
174  "$ppdc_code_dir/ppdc-message.cxx",
175  "$ppdc_code_dir/ppdc-option.cxx",
176  "$ppdc_code_dir/ppdc-profile.cxx",
177  "$ppdc_code_dir/ppdc-shared.cxx",
178  "$ppdc_code_dir/ppdc-source.cxx",
179  "$ppdc_code_dir/ppdc-string.cxx",
180  "$ppdc_code_dir/ppdc-variable.cxx",
181]
182
183ppdc_generated_sources = [ "$ppdc_code_dir/ppdc.cxx" ]
184
185mime_convs_generated_source = "$cups_code_dir/conf/mime.convs"
186mime_types_generated_source = "$cups_code_dir/conf/mime.types"
187
188action("cups_action") {
189  print("cups_action is exec")
190  script = "//third_party/cups/install.py"
191  outputs = []
192  outputs += cups_generated_sources
193  outputs += cups_deviced_generated_sources
194  outputs += cups_driverd_generated_sources
195  outputs += cups_exec_generated_sources
196  outputs += cupsd_generated_sources
197  outputs += cupsfilter_generated_sources
198  outputs += ipp_generated_sources
199  outputs += usb_generated_sources
200  outputs += lp_generated_sources
201  outputs += lpadmin_generated_sources
202  outputs += lpinfo_generated_sources
203  outputs += rastertopwg_generated_sources
204  outputs += cupsmime_generated_sources
205  outputs += cupsimage_generated_sources
206  outputs += backend_generated_sources
207  outputs += cupsppdc_generated_sources
208  outputs += ppdc_generated_sources
209  outputs += scheduler_util_generated_sources
210  outputs += [ mime_convs_generated_source ]
211  outputs += [ mime_types_generated_source ]
212
213  inputs = [ "//third_party/cups/cups-2.4.0-source.tar.gz" ]
214  cups_path = rebase_path("${target_gen_dir}", root_build_dir)
215  cups_source_path = rebase_path("//third_party/cups", root_build_dir)
216  args = [
217    "--gen-dir",
218    "$cups_path",
219    "--source-dir",
220    "$cups_source_path",
221  ]
222}
223
224group("third_party_cups") {
225  public_deps = [ ":cups" ]
226  deps = [
227    ":cups-deviced",
228    ":cups-driverd",
229    ":cups-exec",
230    ":cupsd",
231    ":cupsfilter",
232    ":cupsimage",
233    ":ipp",
234    ":mime.convs",
235    ":mime.types",
236    ":rastertopwg",
237    ":usb",
238  ]
239}
240
241config("cups_config") {
242  defines = cups_defines
243  include_dirs = [
244    "$config_dir",
245    "$cups_code_dir",
246    "$core_code_dir",
247    "//third_party/libusb",
248    "//third_party/openssl/include",
249    get_label_info(":cups_action", "target_gen_dir") + "/cups-2.4.0",
250  ]
251
252  cflags = [
253    "-Wno-unused-function",
254    "-Wno-unused-value",
255    "-Wno-implicit-function-declaration",
256    "-Wno-int-conversion",
257    "-D_FORTIFY_SOURCE=2",
258    "-fstack-protector-all",
259    "-fdata-sections",
260    "-ffunction-sections",
261    "-fno-asynchronous-unwind-tables",
262    "-fno-unwind-tables",
263    "-Os",
264  ]
265}
266
267ohos_shared_library("cups") {
268  sources = cups_generated_sources
269  sources += cupsimage_generated_sources
270  deps = [
271    ":cups_action",
272    "//third_party/openssl:libcrypto_shared",
273    "//third_party/openssl:libssl_shared",
274    "//third_party/zlib:libz",
275  ]
276  public_configs = [ ":cups_config" ]
277  subsystem_name = "$SUBSYSTEM_NAME"
278  part_name = "$PART_NAME"
279}
280
281ohos_shared_library("cupsimage") {
282  sources = cupsimage_generated_sources
283  deps = [
284    ":cups_action",
285    "//third_party/cups:cups",
286  ]
287  public_configs = [ ":cups_config" ]
288  subsystem_name = "$SUBSYSTEM_NAME"
289  part_name = "$PART_NAME"
290}
291
292ohos_executable("rastertopwg") {
293  sources = rastertopwg_generated_sources
294  deps = [
295    ":cups_action",
296    "//third_party/cups:cups",
297  ]
298  install_enable = true
299  module_install_dir = "$cups_serverbin_dir/filter"
300  public_configs = [ ":cups_config" ]
301  subsystem_name = "$SUBSYSTEM_NAME"
302  part_name = "$PART_NAME"
303}
304
305ohos_shared_library("backend") {
306  sources = backend_generated_sources
307  deps = [
308    ":cups_action",
309    "//third_party/cups:cups",
310  ]
311  public_configs = [ ":cups_config" ]
312  subsystem_name = "$SUBSYSTEM_NAME"
313  part_name = "$PART_NAME"
314}
315
316ohos_executable("ipp") {
317  sources = ipp_generated_sources
318  deps = [
319    ":cups_action",
320    "//third_party/cups:backend",
321    "//third_party/cups:cups",
322  ]
323  install_enable = true
324  module_install_dir = "$cups_serverbin_dir/backend"
325  public_configs = [ ":cups_config" ]
326  subsystem_name = "$SUBSYSTEM_NAME"
327  part_name = "$PART_NAME"
328}
329
330ohos_executable("usb") {
331  sources = usb_generated_sources
332  deps = [
333    ":cups_action",
334    "//third_party/cups:backend",
335    "//third_party/cups:cups",
336    "//third_party/libusb:libusb",
337  ]
338  external_deps = [
339    "c_utils:utils",
340    "drivers_interface_usb:libusb_proxy_1.0",
341    "hilog:libhilog",
342    "usb_manager:usbsrv_client",
343  ]
344  install_enable = true
345  module_install_dir = "$cups_serverbin_dir/backend"
346  public_configs = [ ":cups_config" ]
347  subsystem_name = "$SUBSYSTEM_NAME"
348  part_name = "$PART_NAME"
349}
350
351#end of backend
352
353ohos_executable("lpadmin") {
354  sources = lpadmin_generated_sources
355  deps = [
356    ":cups_action",
357    "//third_party/cups:cups",
358  ]
359  install_enable = true
360  public_configs = [ ":cups_config" ]
361  subsystem_name = "$SUBSYSTEM_NAME"
362  part_name = "$PART_NAME"
363}
364
365ohos_executable("lpinfo") {
366  sources = lpinfo_generated_sources
367  deps = [
368    ":cups_action",
369    "//third_party/cups:cups",
370  ]
371  install_enable = true
372  public_configs = [ ":cups_config" ]
373  subsystem_name = "$SUBSYSTEM_NAME"
374  part_name = "$PART_NAME"
375}
376
377ohos_executable("lp") {
378  sources = lp_generated_sources
379  deps = [
380    ":cups_action",
381    "//third_party/cups:cups",
382  ]
383  install_enable = true
384  public_configs = [ ":cups_config" ]
385  subsystem_name = "$SUBSYSTEM_NAME"
386  part_name = "$PART_NAME"
387}
388
389#ppdc
390ohos_shared_library("cupsppdc") {
391  sources = cupsppdc_generated_sources
392  deps = [
393    ":cups_action",
394    "//third_party/cups:cups",
395  ]
396  public_configs = [ ":cups_config" ]
397  subsystem_name = "$SUBSYSTEM_NAME"
398  part_name = "$PART_NAME"
399}
400
401ohos_executable("ppdc") {
402  sources = ppdc_generated_sources
403  deps = [
404    ":cups_action",
405    "//third_party/cups:cups",
406    "//third_party/cups:cupsppdc",
407  ]
408  install_enable = true
409  public_configs = [ ":cups_config" ]
410  subsystem_name = "$SUBSYSTEM_NAME"
411  part_name = "$PART_NAME"
412}
413
414#end of ppdc
415
416#scheduler
417ohos_shared_library("cupsmime") {
418  sources = cupsmime_generated_sources
419  deps = [
420    ":cups_action",
421    "//third_party/cups:cups",
422  ]
423  public_configs = [ ":cups_config" ]
424  subsystem_name = "$SUBSYSTEM_NAME"
425  part_name = "$PART_NAME"
426}
427
428ohos_executable("cupsd") {
429  sources = cupsd_generated_sources
430  deps = [
431    ":cups_action",
432    "//third_party/cups:cups",
433    "//third_party/cups:cupsmime",
434  ]
435  install_enable = true
436  external_deps = [ "hilog:libhilog" ]
437  public_configs = [ ":cups_config" ]
438  subsystem_name = "$SUBSYSTEM_NAME"
439  part_name = "$PART_NAME"
440}
441
442ohos_executable("cupsfilter") {
443  sources = cupsfilter_generated_sources
444  deps = [
445    ":cups_action",
446    "//third_party/cups:cups",
447    "//third_party/cups:cupsmime",
448  ]
449  install_enable = true
450  public_configs = [ ":cups_config" ]
451  subsystem_name = "$SUBSYSTEM_NAME"
452  part_name = "$PART_NAME"
453}
454
455ohos_executable("cups-deviced") {
456  sources = cups_deviced_generated_sources
457  sources += scheduler_util_generated_sources
458  deps = [
459    ":cups_action",
460    "//third_party/cups:cups",
461    "//third_party/cups:cupsmime",
462  ]
463  install_enable = true
464  module_install_dir = "$cups_serverbin_dir/daemon"
465  public_configs = [ ":cups_config" ]
466  subsystem_name = "$SUBSYSTEM_NAME"
467  part_name = "$PART_NAME"
468}
469
470ohos_executable("cups-driverd") {
471  sources = cups_driverd_generated_sources
472  sources += scheduler_util_generated_sources
473  deps = [
474    ":cups_action",
475    "//third_party/cups:cups",
476    "//third_party/cups:cupsppdc",
477  ]
478  install_enable = true
479  module_install_dir = "$cups_serverbin_dir/daemon"
480  public_configs = [ ":cups_config" ]
481  subsystem_name = "$SUBSYSTEM_NAME"
482  part_name = "$PART_NAME"
483}
484
485ohos_executable("cups-exec") {
486  sources = cups_exec_generated_sources
487  deps = [ ":cups_action" ]
488  install_enable = true
489  module_install_dir = "$cups_serverbin_dir/daemon"
490  public_configs = [ ":cups_config" ]
491  subsystem_name = "$SUBSYSTEM_NAME"
492  part_name = "$PART_NAME"
493}
494
495ohos_prebuilt_etc("mime.convs") {
496  source = mime_convs_generated_source
497  deps = [ ":cups_action" ]
498  relative_install_dir = "cups/share/mime"
499  subsystem_name = "$SUBSYSTEM_NAME"
500  part_name = "$PART_NAME"
501}
502
503ohos_prebuilt_etc("mime.types") {
504  source = mime_types_generated_source
505  deps = [ ":cups_action" ]
506  relative_install_dir = "cups/share/mime"
507  subsystem_name = "$SUBSYSTEM_NAME"
508  part_name = "$PART_NAME"
509}
510