| ; RUN: rm -rf %t |
| ; RUN: split-file %s %t |
| ; RUN: sed -e "s|DSTROOT|%/t|g" %t/inputs.json.in > %t/inputs.json |
| |
| ; RUN: clang-installapi \ |
| ; RUN: -target arm64-apple-macos12 -install_name @rpath/libfoo.dylib \ |
| ; RUN: -current_version 1 -compatibility_version 1 \ |
| ; RUN: -Xproject -fmodules -I%t/usr/include \ |
| ; RUN: -F %S/Inputs/Foundation/ \ |
| ; RUN: -exclude-public-header %t/usr/include/public.h \ |
| ; RUN: -extra-project-header %t/project.h -I%t -dynamiclib \ |
| ; RUN: %t/inputs.json \ |
| ; RUN: -o %t/output.tbd 2>&1 | FileCheck %s --allow-empty |
| ; RUN: llvm-readtapi --compare %t/output.tbd %t/expected.tbd 2>&1 | FileCheck %s --allow-empty |
| |
| ; RUN: not clang-installapi \ |
| ; RUN: -target arm64-apple-macos12 -install_name @rpath/libfoo.dylib \ |
| ; RUN: -current_version 1 -compatibility_version 1 \ |
| ; RUN: -Xproject -fmodules -I%t/usr/include \ |
| ; RUN: -extra-project-header %t/project.h \ |
| ; RUN: -F %S/Inputs/Foundation/ \ |
| ; RUN: %t/inputs.json \ |
| ; RUN: -I%t -dynamiclib -o %t/output.tbd 2>&1 | FileCheck %s --check-prefix=PUBLIC |
| |
| ; CHECK-NOT: error |
| ; CHECK-NOT: warning |
| |
| ; PUBLIC: public.h:1:1: error: use of '@import' when modules are disabled |
| ; PUBLIC-NEXT: @import Foundation; |
| |
| //--- usr/include/public.h |
| @import Foundation; |
| extern int foo(); |
| |
| //--- project.h |
| @import Foundation; |
| extern int bar(); |
| |
| //--- expected.tbd |
| { |
| "main_library": { |
| "exported_symbols": [ |
| { |
| "text": { |
| "global": [ |
| "_bar" |
| ] |
| } |
| } |
| ], |
| "flags": [ |
| { |
| "attributes": [ |
| "not_app_extension_safe" |
| ] |
| } |
| ], |
| "install_names": [ |
| { |
| "name": "@rpath/libfoo.dylib" |
| } |
| ], |
| "target_info": [ |
| { |
| "min_deployment": "12", |
| "target": "arm64-macos" |
| } |
| ] |
| }, |
| "tapi_tbd_version": 5 |
| } |
| |
| ;--- inputs.json.in |
| { |
| "headers": [ { |
| "path" : "DSTROOT/usr/include/public.h", |
| "type" : "public" |
| } |
| ], |
| "version": "3" |
| } |