@@ -157,15 +157,22 @@ if(TARGET clang)
157
157
# TestFullLtoStepping depends on LTO, and only runs when the compiler is clang.
158
158
add_lldb_test_dependency (LTO )
159
159
160
- if (TARGET libcxx OR ( "libcxx" IN_LIST LLVM_ENABLE_RUNTIMES ) )
160
+ if ("libcxx" IN_LIST LLVM_ENABLE_RUNTIMES )
161
161
set (LLDB_HAS_LIBCXX ON )
162
+ # libc++ can only be used for tests after installing to a fake prefix
163
+ # which is done by the install-cxx-test-suite-prefix target in libc++. We
164
+ # ensure this is run by depending on the runtimes-test-depends target.
165
+ # While this could build too many dependencies, it is currently the only
166
+ # test dependencies target exposed by the runtimes build.
167
+ add_lldb_test_dependency (runtimes-test-depends )
168
+ set (LIBCXX_TEST_INSTALL_DIR "${CMAKE_BINARY_DIR} /runtimes/runtimes-${LLVM_DEFAULT_TARGET_TRIPLE} -bins/libcxx/test-suite-install" )
162
169
if (LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE )
163
- set (LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR} /${LLVM_DEFAULT_TARGET_TRIPLE} )
164
- set (LIBCXX_GENERATED_INCLUDE_DIR "${LLVM_BINARY_DIR } /include/c++/v1" )
165
- set (LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LLVM_BINARY_DIR } /include/${LLVM_DEFAULT_TARGET_TRIPLE} /c++/v1" )
170
+ set (LIBCXX_LIBRARY_DIR ${LIBCXX_TEST_INSTALL_DIR} /lib /${LLVM_DEFAULT_TARGET_TRIPLE} )
171
+ set (LIBCXX_GENERATED_INCLUDE_DIR "${LIBCXX_TEST_INSTALL_DIR } /include/c++/v1" )
172
+ set (LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LIBCXX_TEST_INSTALL_DIR } /include/${LLVM_DEFAULT_TARGET_TRIPLE} /c++/v1" )
166
173
else ()
167
- set (LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR } /lib${LIBCXX_LIBDIR_SUFFIX} )
168
- set (LIBCXX_GENERATED_INCLUDE_DIR "${CMAKE_BINARY_DIR } /include/c++/v1" )
174
+ set (LIBCXX_LIBRARY_DIR ${LIBCXX_TEST_INSTALL_DIR } /lib${LIBCXX_LIBDIR_SUFFIX} )
175
+ set (LIBCXX_GENERATED_INCLUDE_DIR "${LIBCXX_TEST_INSTALL_DIR } /include/c++/v1" )
169
176
endif ()
170
177
endif ()
171
178
0 commit comments