Android: allow libnos to link with different datagram implementations
This removes the hard linking to the Citadel implementation.
Change-Id: I1a3ee719ad73351294744fbdeb0373bf4590903c
diff --git a/Android.bp b/Android.bp
index 2f59f5d..29289da 100644
--- a/Android.bp
+++ b/Android.bp
@@ -37,10 +37,8 @@
"-Wno-extended-offsetof",
"-Wno-unused-parameter",
],
- header_libs: [
- "nos_headers",
- "libnos_headers",
- ],
+ header_libs: ["nos_headers"],
+ shared_libs: ["libnos"]
}
cc_defaults {
diff --git a/libnos/Android.bp b/libnos/Android.bp
index cfbc1e3..3435daf 100644
--- a/libnos/Android.bp
+++ b/libnos/Android.bp
@@ -19,34 +19,42 @@
"test",
]
-cc_library_headers {
- name: "libnos_headers",
- defaults: ["nos_shared_cc_defaults"],
- header_libs: ["libnos_datagram_headers"],
- export_include_dirs: ["include"],
- export_header_lib_headers: ["libnos_datagram_headers"],
-}
-
cc_library {
name: "libnos",
srcs: [
"debug.cpp",
- "NuggetClient.cpp",
],
defaults: ["nos_shared_cc_defaults"],
- header_libs: [
- "nos_headers",
- "libnos_headers",
- ],
- shared_libs: [
- "libnos_datagram",
- "libnos_transport",
-
- // TODO: find a way to let each platform link in a datagram different
- // datagram implementation to resolce the `nos_device_open()`
- // dependency from NuggetClient
- "libnos_datagram_citadel",
- ],
- export_header_lib_headers: ["libnos_headers"],
+ header_libs: ["nos_headers"],
+ shared_libs: ["libnos_datagram"],
+ export_include_dirs: ["include"],
export_shared_lib_headers: ["libnos_datagram"],
}
+
+// This part of libnos must be linked with the target's implementation of
+// libnos_datagram. A library should be created for this such as:
+//
+// cc_library {
+// name: "libnos_client_xxx",
+// srcs: [":libnos_client"],
+// defaults: ["libnos_client_defaults"],
+// shared_libs: ["libnos_datagram_xxx"],
+// }
+//
+// Components that directly use `NuggetClient` must link against it. Other
+// components should be written against `NuggetClientInterface` and can simply
+// link against `libnos`.
+
+filegroup {
+ name: "libnos_client",
+ srcs: ["NuggetClient.cpp"],
+}
+
+cc_defaults {
+ name: "libnos_client_defaults",
+ header_libs: ["nos_headers"],
+ shared_libs: [
+ "libnos",
+ "libnos_transport",
+ ],
+}
diff --git a/libnos/test/Android.bp b/libnos/test/Android.bp
index ebabb9e..2a3654a 100644
--- a/libnos/test/Android.bp
+++ b/libnos/test/Android.bp
@@ -17,7 +17,7 @@
cc_test_library {
name: "libnos_mock",
defaults: ["nos_shared_cc_defaults"],
- header_libs: ["libnos_headers"],
+ shared_libs: ["libnos"],
export_include_dirs: ["include"],
- export_header_lib_headers: ["libnos_headers"],
+ export_shared_lib_headers: ["libnos"],
}
diff --git a/libnos_datagram/Android.bp b/libnos_datagram/Android.bp
index bd38e68..9f4a1c9 100644
--- a/libnos_datagram/Android.bp
+++ b/libnos_datagram/Android.bp
@@ -14,15 +14,8 @@
// limitations under the License.
//
-cc_library_headers {
- name: "libnos_datagram_headers",
- defaults: ["nos_shared_cc_defaults"],
- export_include_dirs: ["include"],
-}
-
cc_library {
name: "libnos_datagram",
defaults: ["nos_shared_cc_defaults"],
- header_libs: ["libnos_datagram_headers"],
- export_header_lib_headers: ["libnos_datagram_headers"],
+ export_include_dirs: ["include"],
}