aboutsummaryrefslogtreecommitdiff
path: root/clang/test/InstallAPI/project-header-only-args.test
blob: 76fecce5b4a2687f6132833e43322c45db9026e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
; 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"
}