aboutsummaryrefslogtreecommitdiff
path: root/clang/test/Driver/modules-print-library-module-manifest-path.cpp
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2025-01-12 21:20:20 -0500
committerTobias Hieta <tobias@hieta.se>2025-01-14 10:41:02 +0100
commitcd708029e0b2869e80abe31ddb175f7c35361f90 (patch)
tree59c674c18e0bb2fe82680dc1a1c397657c0050b2 /clang/test/Driver/modules-print-library-module-manifest-path.cpp
parent37aaa06c44451233c1bae40c71738032f9b16bdc (diff)
downloadllvm-release/19.x.zip
llvm-release/19.x.tar.gz
llvm-release/19.x.tar.bz2
Fix print module manifest file for macos (#122370)llvmorg-19.1.7release/19.x
This commit fixes -print-library-module-manifest-path on macos. Currently, this only works on linux systems. This is because on macos systems the library and header files are installed in a different location. The module manifest is next to the libraries and the search function was not looking in both places. There is also a test included. (cherry picked from commit acbd822879f7727127926c25e1b47f5017f962c5)
Diffstat (limited to 'clang/test/Driver/modules-print-library-module-manifest-path.cpp')
-rw-r--r--clang/test/Driver/modules-print-library-module-manifest-path.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/clang/test/Driver/modules-print-library-module-manifest-path.cpp b/clang/test/Driver/modules-print-library-module-manifest-path.cpp
index 3ba2709..8d17fe1 100644
--- a/clang/test/Driver/modules-print-library-module-manifest-path.cpp
+++ b/clang/test/Driver/modules-print-library-module-manifest-path.cpp
@@ -18,6 +18,28 @@
// RUN: --target=x86_64-linux-gnu 2>&1 \
// RUN: | FileCheck libcxx.cpp
+// for macos there is a different directory structure
+// where the library and libc++.modules.json file are in lib
+// directly but headers are in clang/ver directory which
+// is the resource directory
+// RUN: mkdir -p %t/Inputs/usr/lib/clang/20
+// RUN: touch %t/Inputs/usr/lib/libc++.so
+// RUN: touch %t/Inputs/usr/lib/libc++.modules.json
+// RUN: %clang -print-library-module-manifest-path \
+// RUN: -stdlib=libc++ \
+// RUN: -resource-dir=%t/Inputs/usr/lib/clang/20 \
+// RUN: --target=arm64-apple-darwin24.1.0 2>&1 \
+// RUN: | FileCheck libcxx.cpp.macos
+
+// RUN: rm %t/Inputs/usr/lib/libc++.so
+// RUN: touch %t/Inputs/usr/lib/libc++.a
+// RUN: touch %t/Inputs/usr/lib/libc++.modules.json
+// RUN: %clang -print-library-module-manifest-path \
+// RUN: -stdlib=libc++ \
+// RUN: -resource-dir=%t/Inputs/usr/lib/clang/20 \
+// RUN: --target=arm64-apple-darwin24.1.0 2>&1 \
+// RUN: | FileCheck libcxx.cpp.macos
+
// RUN: rm %t/Inputs/usr/lib/x86_64-linux-gnu/libc++.so
// RUN: touch %t/Inputs/usr/lib/x86_64-linux-gnu/libc++.a
// RUN: %clang -print-library-module-manifest-path \
@@ -40,6 +62,10 @@
// CHECK: {{.*}}/Inputs/usr/lib/x86_64-linux-gnu{{/|\\}}libc++.modules.json
+//--- libcxx.cpp.macos
+
+// CHECK: {{.*}}libc++.modules.json
+
//--- libcxx-no-shared-lib.cpp
// Note this might find a different path depending whether search path