; RUN: rm -rf %t ; RUN: split-file %s %t ; RUN: sed -e "s|DSTROOT|%/t|g" %t/inputs.json.in > %t/inputs.json ; RUN: mkdir -p %t/modules.cache ; 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: -Xproject -fmodules-cache-path=%t/modules.cache \ ; 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: -Xproject -fmodules-cache-path=%t/modules.cache \ ; 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" }