This patch takes in json files as input to determine that header files to process, and in which order, to pass along for CC1 invocations. This patch also includes an ASTVisitor to collect simple global variables.
64 lines
1.3 KiB
Plaintext
64 lines
1.3 KiB
Plaintext
// RUN: rm -rf %t
|
|
// RUN: split-file %s %t
|
|
// RUN: sed -e "s|SRC_DIR|%/t|g" %t/vars_inputs.json.in > %t/vars_inputs.json
|
|
|
|
/// Check multiple targets are captured.
|
|
// RUN: clang-installapi -target arm64-apple-macos13.1 -target arm64e-apple-macos13.1 \
|
|
// RUN: -fapplication-extension -install_name /usr/lib/vars.dylib \
|
|
// RUN: %t/vars_inputs.json -o %t/vars.tbd 2>&1 | FileCheck %s --allow-empty
|
|
// RUN: llvm-readtapi -compare %t/vars.tbd %t/expected.tbd 2>&1 | FileCheck %s --allow-empty
|
|
|
|
// CHECK-NOT: error:
|
|
// CHECK-NOT: warning:
|
|
|
|
//--- vars.h
|
|
extern int foo;
|
|
|
|
//--- vars_inputs.json.in
|
|
{
|
|
"headers": [ {
|
|
"path" : "SRC_DIR/vars.h",
|
|
"type" : "public"
|
|
}],
|
|
"version": "3"
|
|
}
|
|
|
|
//--- expected.tbd
|
|
{
|
|
"main_library": {
|
|
"compatibility_versions": [
|
|
{
|
|
"version": "0"
|
|
}],
|
|
"current_versions": [
|
|
{
|
|
"version": "0"
|
|
}],
|
|
"install_names": [
|
|
{
|
|
"name": "/usr/lib/vars.dylib"
|
|
}
|
|
],
|
|
"exported_symbols": [
|
|
{
|
|
"data": {
|
|
"global": [
|
|
"_foo"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"target_info": [
|
|
{
|
|
"min_deployment": "13.1",
|
|
"target": "arm64-macos"
|
|
},
|
|
{
|
|
"min_deployment": "13.1",
|
|
"target": "arm64e-macos"
|
|
}
|
|
]
|
|
},
|
|
"tapi_tbd_version": 5
|
|
}
|