; 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"
}