| # Copyright 2018 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//common-mk/pkg_config.gni") |
| import("//common-mk/xml2cpp.gni") |
| |
| group("all") { |
| deps = [ |
| ":cromo", |
| ":libcromo", |
| ] |
| if (use.test) { |
| deps += [ |
| ":cromo_server_test", |
| ":dummy_modem", |
| ":sms_cache_test", |
| ":sms_message_test", |
| ":utilities_test", |
| ] |
| } |
| } |
| |
| genxml2cpp("cromo-adaptors") { |
| xml2cpp_type = "adaptor" |
| xml2cpp_in_dir = "local-xml" |
| xml2cpp_out_dir = "include/cromo/dbus_adaptors" |
| sources = [ |
| "${xml2cpp_in_dir}/org.freedesktop.DBus.Properties.xml", |
| ] |
| } |
| |
| pkg_config("default_config") { |
| pkg_deps = [ |
| "dbus-c++-1", |
| "gthread-2.0", |
| "gobject-2.0", |
| "libbrillo-${libbase_ver}", |
| "libchrome-${libbase_ver}", |
| "libmetrics-${libbase_ver}", |
| "libminijail", |
| ] |
| libs = [ "dl" ] |
| } |
| |
| static_library("libcromo") { |
| deps = [ |
| ":cromo-adaptors", |
| "//common-mk/external_dependencies:modemmanager-dbus-adaptors", |
| ] |
| sources = [ |
| "cromo_server.cc", |
| "hooktable.cc", |
| "modem_handler.cc", |
| "sms_cache.cc", |
| "sms_message.cc", |
| "syslog_helper.cc", |
| "utilities.cc", |
| ] |
| configs += [ |
| ":default_config", |
| "//common-mk:nouse_thin_archive", |
| ] |
| configs -= [ |
| # cromo uses try/catch to interact with dbus-c++. |
| "//common-mk:no_exceptions", |
| "//common-mk:use_thin_archive", |
| ] |
| } |
| |
| # cromo needs to export symbols, as specified in cromo.ver, to its |
| # plugins. gn currently does not link a static library with |
| # --whole-archive, which causes some unused symbols in libcromo.a get |
| # removed. As a workaround, the 'cromo' target explicitly takes the |
| # dependencies and sources from the 'libcromo' target, instead of |
| # depending on 'libcromo'. |
| config("default_visibility") { |
| cflags = [ "-fvisibility=default" ] |
| } |
| |
| executable("cromo") { |
| configs += [ |
| ":default_config", |
| ":default_visibility", |
| ] |
| configs -= [ "//common-mk:no_exceptions" ] |
| deps = [ |
| ":cromo-adaptors", |
| "//common-mk/external_dependencies:modemmanager-dbus-adaptors", |
| ] |
| defines = [ "PLUGINDIR=\"$libdir/cromo/plugins\"" ] |
| ldflags = [ "-Wl,--dynamic-list-cpp-typeinfo,--dynamic-list=${platform2_root}/cromo/cromo.ver" ] |
| libs = [ "pthread" ] |
| sources = [ |
| "carrier.cc", |
| "cromo_server.cc", |
| "hooktable.cc", |
| "main.cc", |
| "modem_handler.cc", |
| "plugin_manager.cc", |
| "sandbox.cc", |
| "sms_cache.cc", |
| "sms_message.cc", |
| "syslog_helper.cc", |
| "utilities.cc", |
| ] |
| } |
| |
| if (use.test) { |
| shared_library("dummy_modem") { |
| configs += [ ":default_config" ] |
| configs -= [ "//common-mk:no_exceptions" ] |
| deps = [ |
| "//common-mk/external_dependencies:modemmanager-dbus-adaptors", |
| ] |
| sources = [ |
| "dummy_modem.cc", |
| "dummy_modem_handler.cc", |
| ] |
| } |
| |
| executable("cromo_server_test") { |
| configs += [ |
| "//common-mk:test", |
| ":default_config", |
| ] |
| configs -= [ "//common-mk:no_exceptions" ] |
| deps = [ |
| ":libcromo", |
| "//common-mk/testrunner", |
| ] |
| sources = [ |
| "carrier.cc", |
| "cromo_server_test.cc", |
| ] |
| } |
| |
| executable("utilities_test") { |
| configs += [ |
| "//common-mk:test", |
| ":default_config", |
| ] |
| configs -= [ "//common-mk:no_exceptions" ] |
| deps = [ |
| ":libcromo", |
| "//common-mk/testrunner", |
| ] |
| sources = [ |
| "utilities_test.cc", |
| ] |
| } |
| |
| executable("sms_message_test") { |
| configs += [ |
| "//common-mk:test", |
| ":default_config", |
| ] |
| configs -= [ "//common-mk:no_exceptions" ] |
| deps = [ |
| ":libcromo", |
| "//common-mk/testrunner", |
| ] |
| sources = [ |
| "sms_message_test.cc", |
| ] |
| } |
| |
| executable("sms_cache_test") { |
| configs += [ |
| "//common-mk:test", |
| ":default_config", |
| ] |
| configs -= [ "//common-mk:no_exceptions" ] |
| deps = [ |
| ":libcromo", |
| "//common-mk/testrunner", |
| ] |
| sources = [ |
| "sms_cache_test.cc", |
| ] |
| } |
| } |