1// Copyright 2017 Google Inc. All rights reserved.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package cc
16
17var (
18	llndkLibrarySuffix = ".llndk"
19	llndkHeadersSuffix = ".llndk"
20)
21
22// Holds properties to describe a stub shared library based on the provided version file.
23type llndkLibraryProperties struct {
24	// Relative path to the symbol map.
25	// An example file can be seen here: TODO(danalbert): Make an example.
26	Symbol_file *string
27
28	// Whether to export any headers as -isystem instead of -I. Mainly for use by
29	// bionic/libc.
30	Export_headers_as_system *bool
31
32	// Which headers to process with versioner. This really only handles
33	// bionic/libc/include right now.
34	Export_preprocessed_headers []string
35
36	// Whether the system library uses symbol versions.
37	Unversioned *bool
38
39	// list of llndk headers to re-export include directories from.
40	Export_llndk_headers []string
41
42	// list of directories relative to the Blueprints file that willbe added to the include path
43	// (using -I) for any module that links against the LLNDK variant of this module, replacing
44	// any that were listed outside the llndk clause.
45	Override_export_include_dirs []string
46
47	// whether this module can be directly depended upon by libs that are installed
48	// to /vendor and /product.
49	// When set to true, this module can only be depended on by VNDK libraries, not
50	// vendor nor product libraries. This effectively hides this module from
51	// non-system modules. Default value is false.
52	Private *bool
53
54	// if true, make this module available to provide headers to other modules that set
55	// llndk.symbol_file.
56	Llndk_headers *bool
57}
58