llvm-project/clang/test/Driver/driverkit-path.c
Ian Anderson 515b4a4fdd
[clang][Darwin] Remove legacy framework search path logic in the frontend (#138234)
Move the Darwin framework search path logic from
InitHeaderSearch::AddDefaultIncludePaths to
DarwinClang::AddClangSystemIncludeArgs. Add a new -internal-iframework
cc1 argument to support the tool chain adding these paths.
Now that the tool chain is adding search paths via cc1 flag, they're
only added if they exist, so the Preprocessor/cuda-macos-includes.cu
test is no longer relevant.
Change Driver/driverkit-path.c and Driver/darwin-subframeworks.c to do
-### style testing similar to the darwin-header-search and
darwin-embedded-search-paths tests. Rename darwin-subframeworks.c to
darwin-framework-search-paths.c and have it test all framework search
paths, not just SubFrameworks.
Add a unit test to validate that the myriad of search path flags result
in the expected search path list.

Fixes https://github.com/llvm/llvm-project/issues/75638
2025-05-08 12:30:51 -07:00

36 lines
2.1 KiB
C

// UNSUPPORTED: system-windows
// Windows is unsupported because we use the Unix path separator `\`.
// RUN: %clang %s -target x86_64-apple-driverkit19.0 -mlinker-version=0 \
// RUN: -isysroot %S/Inputs/DriverKit19.0.sdk -### 2>&1 \
// RUN: | FileCheck %s --check-prefix=LD64-OLD
// RUN: %clang %s -target x86_64-apple-driverkit19.0 -mlinker-version=604.99 \
// RUN: -isysroot %S/Inputs/DriverKit19.0.sdk -### 2>&1 \
// RUN: | FileCheck %s --check-prefix=LD64-OLD
// RUN: %clang %s -target x86_64-apple-driverkit19.0 -mlinker-version=605.0 \
// RUN: -isysroot %S/Inputs/DriverKit19.0.sdk -### 2>&1 \
// RUN: | FileCheck %s --check-prefix=LD64-OLD
// RUN: %clang %s -target x86_64-apple-driverkit19.0 -mlinker-version=605.1 \
// RUN: -isysroot %S/Inputs/DriverKit19.0.sdk -### 2>&1 \
// RUN: | FileCheck %s --check-prefix=LD64-NEW
int main() { return 0; }
// LD64-OLD: "-isysroot" "[[PATH:[^"]*]]Inputs/DriverKit19.0.sdk"
// LD64-OLD: "-L[[PATH]]Inputs/DriverKit19.0.sdk/System/DriverKit/usr/lib"
// LD64-OLD: "-F[[PATH]]Inputs/DriverKit19.0.sdk/System/DriverKit/System/Library/Frameworks"
// LD64-NEW: "-isysroot" "[[PATH:[^"]*]]Inputs/DriverKit19.0.sdk"
// LD64-NEW-NOT: "-L[[PATH]]Inputs/DriverKit19.0.sdk/System/DriverKit/usr/lib"
// LD64-NEW-NOT: "-F[[PATH]]Inputs/DriverKit19.0.sdk/System/DriverKit/System/Library/Frameworks"
// LD64-NEW-NOT: "-F[[PATH]]Inputs/DriverKit19.0.sdk/System/DriverKit/System/Library/SubFrameworks"
// RUN: %clang %s -target x86_64-apple-driverkit19.0 -isysroot %S/Inputs/DriverKit19.0.sdk -x c++ -### 2>&1 \
// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit19.0.sdk --check-prefix=INC
//
// INC: "-isysroot" "[[SDKROOT]]"
// INC: "-internal-isystem" "[[SDKROOT]]/System/DriverKit/usr/local/include"
// INC: "-internal-isystem" "{{.+}}/lib{{(64)?}}/clang/{{[^/ ]+}}/include"
// INC: "-internal-externc-isystem" "[[SDKROOT]]/System/DriverKit/usr/include"
// INC: "-internal-iframework" "[[SDKROOT]]/System/DriverKit/System/Library/Frameworks"
// INC: "-internal-iframework" "[[SDKROOT]]/System/DriverKit/System/Library/SubFrameworks"