10e1e1fc8SChuanqi Xu // Test that -print-library-module-manifest-path finds the correct file. 20e1e1fc8SChuanqi Xu 30e1e1fc8SChuanqi Xu // RUN: rm -rf %t && split-file %s %t && cd %t 40e1e1fc8SChuanqi Xu // RUN: mkdir -p %t/Inputs/usr/lib/x86_64-linux-gnu 50e1e1fc8SChuanqi Xu // RUN: touch %t/Inputs/usr/lib/x86_64-linux-gnu/libc++.so 62152094aSMark de Wever // RUN: touch %t/Inputs/usr/lib/x86_64-linux-gnu/libc++.a 70e1e1fc8SChuanqi Xu 80e1e1fc8SChuanqi Xu // RUN: %clang -print-library-module-manifest-path \ 90e1e1fc8SChuanqi Xu // RUN: -stdlib=libc++ \ 100e1e1fc8SChuanqi Xu // RUN: -resource-dir=%t/Inputs/usr/lib/x86_64-linux-gnu \ 110e1e1fc8SChuanqi Xu // RUN: --target=x86_64-linux-gnu 2>&1 \ 120e1e1fc8SChuanqi Xu // RUN: | FileCheck libcxx-no-module-json.cpp 130e1e1fc8SChuanqi Xu 142152094aSMark de Wever // RUN: touch %t/Inputs/usr/lib/x86_64-linux-gnu/libc++.modules.json 150e1e1fc8SChuanqi Xu // RUN: %clang -print-library-module-manifest-path \ 160e1e1fc8SChuanqi Xu // RUN: -stdlib=libc++ \ 170e1e1fc8SChuanqi Xu // RUN: -resource-dir=%t/Inputs/usr/lib/x86_64-linux-gnu \ 180e1e1fc8SChuanqi Xu // RUN: --target=x86_64-linux-gnu 2>&1 \ 190e1e1fc8SChuanqi Xu // RUN: | FileCheck libcxx.cpp 200e1e1fc8SChuanqi Xu 21acbd8228SBill Hoffman // for macos there is a different directory structure 22acbd8228SBill Hoffman // where the library and libc++.modules.json file are in lib 23acbd8228SBill Hoffman // directly but headers are in clang/ver directory which 24acbd8228SBill Hoffman // is the resource directory 25acbd8228SBill Hoffman // RUN: mkdir -p %t/Inputs/usr/lib/clang/20 26acbd8228SBill Hoffman // RUN: touch %t/Inputs/usr/lib/libc++.so 27acbd8228SBill Hoffman // RUN: touch %t/Inputs/usr/lib/libc++.modules.json 28acbd8228SBill Hoffman // RUN: %clang -print-library-module-manifest-path \ 29acbd8228SBill Hoffman // RUN: -stdlib=libc++ \ 30acbd8228SBill Hoffman // RUN: -resource-dir=%t/Inputs/usr/lib/clang/20 \ 31acbd8228SBill Hoffman // RUN: --target=arm64-apple-darwin24.1.0 2>&1 \ 32acbd8228SBill Hoffman // RUN: | FileCheck libcxx.cpp.macos 33acbd8228SBill Hoffman 34acbd8228SBill Hoffman // RUN: rm %t/Inputs/usr/lib/libc++.so 35acbd8228SBill Hoffman // RUN: touch %t/Inputs/usr/lib/libc++.a 36acbd8228SBill Hoffman // RUN: touch %t/Inputs/usr/lib/libc++.modules.json 37acbd8228SBill Hoffman // RUN: %clang -print-library-module-manifest-path \ 38acbd8228SBill Hoffman // RUN: -stdlib=libc++ \ 39acbd8228SBill Hoffman // RUN: -resource-dir=%t/Inputs/usr/lib/clang/20 \ 40acbd8228SBill Hoffman // RUN: --target=arm64-apple-darwin24.1.0 2>&1 \ 41acbd8228SBill Hoffman // RUN: | FileCheck libcxx.cpp.macos 42acbd8228SBill Hoffman 432152094aSMark de Wever // RUN: rm %t/Inputs/usr/lib/x86_64-linux-gnu/libc++.so 442152094aSMark de Wever // RUN: touch %t/Inputs/usr/lib/x86_64-linux-gnu/libc++.a 452152094aSMark de Wever // RUN: %clang -print-library-module-manifest-path \ 462152094aSMark de Wever // RUN: -stdlib=libc++ \ 472152094aSMark de Wever // RUN: -resource-dir=%t/Inputs/usr/lib/x86_64-linux-gnu \ 482152094aSMark de Wever // RUN: --target=x86_64-linux-gnu 2>&1 \ 492152094aSMark de Wever // RUN: | FileCheck libcxx-no-shared-lib.cpp 502152094aSMark de Wever 51*2c34632aSChuanqi Xu // Testing with libstdc++ 52*2c34632aSChuanqi Xu // RUN: touch %t/Inputs/usr/lib/x86_64-linux-gnu/libstdc++.so 53*2c34632aSChuanqi Xu // RUN: touch %t/Inputs/usr/lib/x86_64-linux-gnu/libstdc++.modules.json 540e1e1fc8SChuanqi Xu // RUN: %clang -print-library-module-manifest-path \ 550e1e1fc8SChuanqi Xu // RUN: -stdlib=libstdc++ \ 560e1e1fc8SChuanqi Xu // RUN: -resource-dir=%t/Inputs/usr/lib/x86_64-linux-gnu \ 570e1e1fc8SChuanqi Xu // RUN: --target=x86_64-linux-gnu 2>&1 \ 580e1e1fc8SChuanqi Xu // RUN: | FileCheck libstdcxx.cpp 590e1e1fc8SChuanqi Xu 600e1e1fc8SChuanqi Xu //--- libcxx-no-module-json.cpp 610e1e1fc8SChuanqi Xu 620e1e1fc8SChuanqi Xu // CHECK: <NOT PRESENT> 630e1e1fc8SChuanqi Xu 640e1e1fc8SChuanqi Xu //--- libcxx.cpp 650e1e1fc8SChuanqi Xu 662152094aSMark de Wever // CHECK: {{.*}}/Inputs/usr/lib/x86_64-linux-gnu{{/|\\}}libc++.modules.json 672152094aSMark de Wever 68acbd8228SBill Hoffman //--- libcxx.cpp.macos 69acbd8228SBill Hoffman 70acbd8228SBill Hoffman // CHECK: {{.*}}libc++.modules.json 71acbd8228SBill Hoffman 722152094aSMark de Wever //--- libcxx-no-shared-lib.cpp 732152094aSMark de Wever 742152094aSMark de Wever // Note this might find a different path depending whether search path 752152094aSMark de Wever // contains a different libc++.so. 762152094aSMark de Wever // CHECK: {{.*}}libc++.modules.json 770e1e1fc8SChuanqi Xu 780e1e1fc8SChuanqi Xu //--- libstdcxx.cpp 790e1e1fc8SChuanqi Xu 80*2c34632aSChuanqi Xu // CHECK: {{.*}}libstdc++.modules.json