OSDN Git Service

Merge "Rename APEX Namespace" am: 52120b489b am: 6e1b2ec7ac
[android-x86/system-linkerconfig.git] / Android.bp
1 /*
2  * Copyright (C) 2019 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 cc_defaults {
18     name: "linkerconfig_defaults",
19     cflags: [
20         "-Wall",
21         "-Werror",
22         "-Wextra",
23     ],
24     defaults: ["libapexutil-deps"],
25     static_libs: [
26         "libapexutil",
27         "libbase",
28         "liblog",
29     ],
30     host_supported: true,
31 }
32
33 cc_defaults {
34     name: "linkerconfig_test_defaults",
35     defaults: ["linkerconfig_defaults"],
36     cflags: [
37         "-g",
38         "-Wunused",
39     ],
40     test_suites: ["general-tests"],
41 }
42
43 cc_library_static {
44     name: "linkerconfig_modules",
45     defaults: [ "linkerconfig_defaults" ],
46     export_include_dirs: [ "modules/include" ],
47     srcs: [
48         "modules/*.cc",
49     ],
50 }
51
52 cc_library_static {
53     name: "linkerconfig_contents",
54     defaults: [ "linkerconfig_defaults" ],
55     export_include_dirs: [ "contents/include" ],
56     static_libs: [
57         "linkerconfig_modules",
58     ],
59     srcs: [
60         "contents/namespace/*.cc",
61         "contents/section/*.cc",
62         "contents/configuration/*.cc",
63         "contents/context/*.cc",
64         "contents/common/*.cc",
65     ],
66 }
67
68 cc_library_static {
69     name: "linkerconfig_generator",
70     defaults : [ "linkerconfig_defaults" ],
71     export_include_dirs: [ "generator/include" ],
72     static_libs: [
73         "linkerconfig_modules",
74         "linkerconfig_contents",
75         "libc++fs",
76     ],
77     srcs: [
78         "generator/*.cc",
79     ],
80 }
81
82 cc_binary {
83     name: "linkerconfig",
84     defaults: [ "linkerconfig_defaults" ],
85     static_libs: [
86         "linkerconfig_modules",
87         "linkerconfig_contents",
88         "linkerconfig_generator",
89     ],
90     srcs: [
91         "main.cc",
92     ],
93     static_executable: true,
94     required: [
95         // files from /system/etc
96         "sanitizer.libraries.txt",
97         "vndkcorevariant.libraries.txt",
98         // Note that even thought linkerconfig requires at least one version of VNDK APEXes,
99         // we can't list it here because the exact version is unknown at build-time. It is decided
100         // at runtime according to ro.vndk.version (or ro.product.vndk.version)
101     ],
102 }
103
104 cc_test {
105     name: "linkerconfig_modules_unittest",
106     defaults: [ "linkerconfig_test_defaults" ],
107     srcs: [
108         "modules/tests/*_test.cc",
109     ],
110     static_libs: [
111         "libgmock",
112         "linkerconfig_modules",
113     ],
114 }
115
116 cc_test {
117     name: "linkerconfig_backward_compatibility_test",
118     defaults: [ "linkerconfig_test_defaults" ],
119     srcs: [
120         "contents/tests/backward_compatibility/*_test.cc",
121     ],
122     static_libs: [
123         "linkerconfig_modules",
124         "linkerconfig_contents",
125     ],
126 }
127
128 cc_test {
129     name: "linkerconfig_generator_unittest",
130     defaults: [ "linkerconfig_test_defaults" ],
131     srcs: [
132         "generator/tests/*_test.cc",
133     ],
134     static_libs: [
135         "linkerconfig_modules",
136         "linkerconfig_contents",
137         "linkerconfig_generator",
138     ],
139     data: [
140         "generator/tests/data/*.txt",
141     ],
142 }
143
144 cc_test {
145     name: "linkerconfig_contents_fulltest",
146     defaults: [ "linkerconfig_test_defaults" ],
147     local_include_dirs: [
148         "contents/tests/configuration/include",
149     ],
150     srcs: [
151         "contents/tests/configuration/*_test.cc",
152     ],
153     static_libs: [
154         "linkerconfig_modules",
155         "linkerconfig_contents",
156     ],
157 }
158
159 prebuilt_etc {
160     name: "ld.config.recovery.txt",
161     recovery: true,
162     filename: "ld.config.txt",
163     src: ":generate_recovery_linker_config",
164 }
165
166 genrule {
167     name: "generate_recovery_linker_config",
168     recovery: true,
169     out: ["ld.config.txt"],
170     tools: ["linkerconfig"],
171     cmd: "$(location linkerconfig) --recovery --target $(genDir)",
172 }