diff --git a/bolt/tools/driver/CMakeLists.txt b/bolt/tools/driver/CMakeLists.txt --- a/bolt/tools/driver/CMakeLists.txt +++ b/bolt/tools/driver/CMakeLists.txt @@ -38,9 +38,9 @@ add_custom_target(bolt DEPENDS ${BOLT_DEPENDS}) install(PROGRAMS - ${CMAKE_BINARY_DIR}/bin/llvm-bolt - ${CMAKE_BINARY_DIR}/bin/perf2bolt - ${CMAKE_BINARY_DIR}/bin/llvm-boltdiff + ${LLVMPROJ_BINARY_BINDIR}/llvm-bolt + ${LLVMPROJ_BINARY_BINDIR}/perf2bolt + ${LLVMPROJ_BINARY_BINDIR}/llvm-boltdiff DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bolt ) diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -78,9 +78,9 @@ include_directories(${LLVM_INCLUDE_DIRS}) link_directories("${LLVM_LIBRARY_DIR}") - set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin ) - set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} ) - set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVMPROJ_BINARY_BINDIR} ) + set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVMPROJ_BINARY_LIBDIR} ) + set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVMPROJ_BINARY_LIBDIR} ) if(LLVM_INCLUDE_TESTS) find_package(Python3 ${LLVM_MINIMUM_PYTHON_VERSION} REQUIRED diff --git a/clang/cmake/caches/Fuchsia-stage2.cmake b/clang/cmake/caches/Fuchsia-stage2.cmake --- a/clang/cmake/caches/Fuchsia-stage2.cmake +++ b/clang/cmake/caches/Fuchsia-stage2.cmake @@ -133,7 +133,7 @@ set(RUNTIMES_${target}_SANITIZER_CXX_ABI_INTREE ON CACHE BOOL "") set(RUNTIMES_${target}_SANITIZER_TEST_CXX "libc++" CACHE STRING "") set(RUNTIMES_${target}_SANITIZER_TEST_CXX_INTREE ON CACHE BOOL "") - set(RUNTIMES_${target}_LLVM_TOOLS_DIR "${CMAKE_BINARY_DIR}/bin" CACHE BOOL "") + set(RUNTIMES_${target}_LLVM_TOOLS_DIR "${LLVMPROJ_BINARY_BINDIR}" CACHE BOOL "") set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "") # Use .build-id link. diff --git a/clang/cmake/modules/CMakeLists.txt b/clang/cmake/modules/CMakeLists.txt --- a/clang/cmake/modules/CMakeLists.txt +++ b/clang/cmake/modules/CMakeLists.txt @@ -9,7 +9,7 @@ set(CLANG_INSTALL_PACKAGE_DIR "${CMAKE_INSTALL_PACKAGEDIR}/clang" CACHE STRING "Path for CMake subdirectory for Clang (defaults to '${CMAKE_INSTALL_PACKAGEDIR}/clang')") # CMAKE_INSTALL_PACKAGEDIR might be absolute, so don't reuse below. -set(clang_cmake_builddir "${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/cmake/clang") +set(clang_cmake_builddir "${LLVMPROJ_BINARY_LIBDIR}/cmake/clang") # Keep this in sync with llvm/cmake/CMakeLists.txt! set(LLVM_INSTALL_PACKAGE_DIR "${CMAKE_INSTALL_PACKAGEDIR}/llvm" CACHE STRING diff --git a/clang/tools/scan-build-py/CMakeLists.txt b/clang/tools/scan-build-py/CMakeLists.txt --- a/clang/tools/scan-build-py/CMakeLists.txt +++ b/clang/tools/scan-build-py/CMakeLists.txt @@ -35,30 +35,30 @@ if ("${BinFile}" STREQUAL "scan-build") # Need to rename scan-build to scan-build-py to prevent overwriting # scan-build Perl implementation. - add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/scan-build-py + add_custom_command(OUTPUT ${LLVMPROJ_BINARY_BINDIR}/scan-build-py COMMAND ${CMAKE_COMMAND} -E make_directory - ${CMAKE_BINARY_DIR}/bin + ${LLVMPROJ_BINARY_BINDIR} COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bin/scan-build - ${CMAKE_BINARY_DIR}/bin/scan-build-py + ${LLVMPROJ_BINARY_BINDIR}/scan-build-py DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/scan-build) install (PROGRAMS "bin/scan-build" DESTINATION "${CMAKE_INSTALL_BINDIR}" RENAME scan-build-py COMPONENT scan-build-py) - list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/scan-build-py) + list(APPEND Depends ${LLVMPROJ_BINARY_BINDIR}/scan-build-py) else() - add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/${BinFile} + add_custom_command(OUTPUT ${LLVMPROJ_BINARY_BINDIR}/${BinFile} COMMAND ${CMAKE_COMMAND} -E make_directory - ${CMAKE_BINARY_DIR}/bin + ${LLVMPROJ_BINARY_BINDIR} COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile} - ${CMAKE_BINARY_DIR}/bin/ + ${LLVMPROJ_BINARY_BINDIR}/ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}) install(PROGRAMS bin/${BinFile} DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT scan-build-py) - list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile}) + list(APPEND Depends ${LLVMPROJ_BINARY_BINDIR}/${BinFile}) endif() endforeach() diff --git a/clang/tools/scan-build/CMakeLists.txt b/clang/tools/scan-build/CMakeLists.txt --- a/clang/tools/scan-build/CMakeLists.txt +++ b/clang/tools/scan-build/CMakeLists.txt @@ -38,14 +38,14 @@ if(CLANG_INSTALL_SCANBUILD) foreach(BinFile ${BinFiles}) - add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/${BinFile} + add_custom_command(OUTPUT ${LLVMPROJ_BINARY_BINDIR}/${BinFile} COMMAND ${CMAKE_COMMAND} -E make_directory - ${CMAKE_BINARY_DIR}/bin + ${LLVMPROJ_BINARY_BINDIR} COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile} - ${CMAKE_BINARY_DIR}/bin/ + ${LLVMPROJ_BINARY_BINDIR}/ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile}) + list(APPEND Depends ${LLVMPROJ_BINARY_BINDIR}/${BinFile}) install(PROGRAMS bin/${BinFile} DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT scan-build) diff --git a/clang/tools/scan-view/CMakeLists.txt b/clang/tools/scan-view/CMakeLists.txt --- a/clang/tools/scan-view/CMakeLists.txt +++ b/clang/tools/scan-view/CMakeLists.txt @@ -11,14 +11,14 @@ if(CLANG_INSTALL_SCANVIEW) foreach(BinFile ${BinFiles}) - add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/${BinFile} + add_custom_command(OUTPUT ${LLVMPROJ_BINARY_BINDIR}/${BinFile} COMMAND ${CMAKE_COMMAND} -E make_directory - ${CMAKE_BINARY_DIR}/bin + ${LLVMPROJ_BINARY_BINDIR} COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile} - ${CMAKE_BINARY_DIR}/bin/ + ${LLVMPROJ_BINARY_BINDIR}/ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}) - list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile}) + list(APPEND Depends ${LLVMPROJ_BINARY_BINDIR}/${BinFile}) install(PROGRAMS bin/${BinFile} DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT scan-view) diff --git a/flang/CMakeLists.txt b/flang/CMakeLists.txt --- a/flang/CMakeLists.txt +++ b/flang/CMakeLists.txt @@ -142,11 +142,11 @@ link_directories("${LLVM_LIBRARY_DIR}") - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVMPROJ_BINARY_BINDIR}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY - ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}) + ${LLVMPROJ_BINARY_LIBDIR}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY - ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}) + ${LLVMPROJ_BINARY_LIBDIR}) set(LLVM_EXTERNAL_LIT "${LLVM_TOOLS_BINARY_DIR}/llvm-lit" CACHE STRING "Command used to spawn lit") @@ -214,7 +214,7 @@ "Path for binary subdirectory (defaults to '${CMAKE_INSTALL_BINDIR}')") mark_as_advanced(FLANG_TOOLS_INSTALL_DIR) -set(FLANG_INTRINSIC_MODULES_DIR ${CMAKE_BINARY_DIR}/include/flang) +set(FLANG_INTRINSIC_MODULES_DIR ${LLVMPROJ_BINARY_INCLUDEDIR}/flang) set(FLANG_INCLUDE_DIR ${FLANG_BINARY_DIR}/include) # TODO: Remove when libclangDriver is lifted out of Clang diff --git a/flang/cmake/modules/CMakeLists.txt b/flang/cmake/modules/CMakeLists.txt --- a/flang/cmake/modules/CMakeLists.txt +++ b/flang/cmake/modules/CMakeLists.txt @@ -8,7 +8,7 @@ set(FLANG_INSTALL_PACKAGE_DIR "${CMAKE_INSTALL_PACKAGEDIR}/flang" CACHE STRING "Path for CMake subdirectory for Flang (defaults to '${CMAKE_INSTALL_PACKAGEDIR}/flang')") # CMAKE_INSTALL_PACKAGEDIR might be absolute, so don't reuse below. -set(flang_cmake_builddir "${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/cmake/flang") +set(flang_cmake_builddir "${LLVMPROJ_BINARY_LIBDIR}/cmake/flang") # Keep this in sync with llvm/cmake/CMakeLists.txt! set(LLVM_INSTALL_PACKAGE_DIR "${CMAKE_INSTALL_PACKAGEDIR}/llvm" CACHE STRING diff --git a/flang/tools/f18/CMakeLists.txt b/flang/tools/f18/CMakeLists.txt --- a/flang/tools/f18/CMakeLists.txt +++ b/flang/tools/f18/CMakeLists.txt @@ -57,12 +57,12 @@ if (NOT WIN32) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/flang-to-external-fc.in - ${CMAKE_BINARY_DIR}/bin/flang-to-external-fc + ${LLVMPROJ_BINARY_BINDIR}/flang-to-external-fc @ONLY ) - add_custom_target(flang-to-external-fc ALL DEPENDS ${CMAKE_BINARY_DIR}/bin/flang-to-external-fc) - install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/flang-to-external-fc DESTINATION "${CMAKE_INSTALL_BINDIR}") + add_custom_target(flang-to-external-fc ALL DEPENDS ${LLVMPROJ_BINARY_BINDIR}/flang-to-external-fc) + install(PROGRAMS ${LLVMPROJ_BINARY_BINDIR}/flang-to-external-fc DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() # TODO Move this to a more suitable location -file(COPY ${FLANG_SOURCE_DIR}/module/omp_lib.h DESTINATION "${CMAKE_BINARY_DIR}/include/flang/OpenMP/" FILE_PERMISSIONS OWNER_READ OWNER_WRITE) +file(COPY ${FLANG_SOURCE_DIR}/module/omp_lib.h DESTINATION "${LLVMPROJ_BINARY_INCLUDEDIR}/flang/OpenMP/" FILE_PERMISSIONS OWNER_READ OWNER_WRITE) diff --git a/libc/test/utils/tools/WrapperGen/CMakeLists.txt b/libc/test/utils/tools/WrapperGen/CMakeLists.txt --- a/libc/test/utils/tools/WrapperGen/CMakeLists.txt +++ b/libc/test/utils/tools/WrapperGen/CMakeLists.txt @@ -4,7 +4,7 @@ wrappergen_test.cpp ARGS --path=${LIBC_SOURCE_DIR} - --tool=${CMAKE_BINARY_DIR}/bin/libc-wrappergen + --tool=${LLVMPROJ_BINARY_BINDIR}/libc-wrappergen --api=${LIBC_SOURCE_DIR}/test/utils/tools/WrapperGen/testapi.td ) diff --git a/libcxxabi/CMakeLists.txt b/libcxxabi/CMakeLists.txt --- a/libcxxabi/CMakeLists.txt +++ b/libcxxabi/CMakeLists.txt @@ -87,7 +87,7 @@ if(LLVM_LIBRARY_OUTPUT_INTDIR) set(LIBCXXABI_GENERATED_INCLUDE_DIR "${LLVM_BINARY_DIR}/include/c++/v1") else() - set(LIBCXXABI_GENERATED_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include/c++/v1") + set(LIBCXXABI_GENERATED_INCLUDE_DIR "${LLVMPROJ_BINARY_INCLUDEDIR}/c++/v1") endif() # TODO: Remove this after branching for LLVM 15 diff --git a/lld/cmake/modules/CMakeLists.txt b/lld/cmake/modules/CMakeLists.txt --- a/lld/cmake/modules/CMakeLists.txt +++ b/lld/cmake/modules/CMakeLists.txt @@ -8,7 +8,7 @@ set(LLD_INSTALL_PACKAGE_DIR "${CMAKE_INSTALL_PACKAGEDIR}/lld" CACHE STRING "Path for CMake subdirectory for LLD (defaults to '${CMAKE_INSTALL_PACKAGEDIR}/lld')") # CMAKE_INSTALL_PACKAGEDIR might be absolute, so don't reuse below. -set(lld_cmake_builddir "${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/cmake/lld") +set(lld_cmake_builddir "${LLVMPROJ_BINARY_LIBDIR}/cmake/lld") # Keep this in sync with llvm/cmake/CMakeLists.txt! set(LLVM_INSTALL_PACKAGE_DIR "${CMAKE_INSTALL_PACKAGEDIR}/llvm" CACHE STRING diff --git a/lldb/bindings/python/CMakeLists.txt b/lldb/bindings/python/CMakeLists.txt --- a/lldb/bindings/python/CMakeLists.txt +++ b/lldb/bindings/python/CMakeLists.txt @@ -184,7 +184,7 @@ # lldb.exe or any other executables that were linked with liblldb. if (WIN32 AND NOT "${PYTHON_DLL}" STREQUAL "") # When using the Visual Studio CMake generator the lldb binaries end up in Release/bin, Debug/bin etc. - file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin" LLDB_BIN_DIR) + file(TO_NATIVE_PATH "${LLVM_RUNTIME_OUTPUT_INTDIR}" LLDB_BIN_DIR) file(TO_NATIVE_PATH "${PYTHON_DLL}" PYTHON_DLL_NATIVE_PATH) add_custom_command( TARGET ${swig_target} diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake --- a/lldb/cmake/modules/LLDBConfig.cmake +++ b/lldb/cmake/modules/LLDBConfig.cmake @@ -98,7 +98,7 @@ BASE_DIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}) # Essentially, emit the framework's dSYM outside of the framework directory. - set(LLDB_DEBUGINFO_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin CACHE STRING + set(LLDB_DEBUGINFO_INSTALL_PREFIX "${LLVM_RUNTIME_OUTPUT_INTDIR}" CACHE STRING "Directory to emit dSYM files stripped from executables and libraries (Darwin Only)") endif() diff --git a/lldb/cmake/modules/LLDBStandalone.cmake b/lldb/cmake/modules/LLDBStandalone.cmake --- a/lldb/cmake/modules/LLDBStandalone.cmake +++ b/lldb/cmake/modules/LLDBStandalone.cmake @@ -79,7 +79,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) include_directories( - "${CMAKE_BINARY_DIR}/include" + "${LLVMPROJ_BINARY_INCLUDEDIR}" "${LLVM_INCLUDE_DIRS}" "${CLANG_INCLUDE_DIRS}") @@ -109,6 +109,6 @@ set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake) endif() -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVMPROJ_BINARY_BINDIR}) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVMPROJ_BINARY_LIBDIR}) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVMPROJ_BINARY_LIBDIR}) diff --git a/mlir/cmake/modules/CMakeLists.txt b/mlir/cmake/modules/CMakeLists.txt --- a/mlir/cmake/modules/CMakeLists.txt +++ b/mlir/cmake/modules/CMakeLists.txt @@ -9,7 +9,7 @@ set(MLIR_INSTALL_PACKAGE_DIR "${CMAKE_INSTALL_PACKAGEDIR}/mlir" CACHE STRING "Path for CMake subdirectory for Polly (defaults to '${CMAKE_INSTALL_PACKAGEDIR}/polly')") # CMAKE_INSTALL_PACKAGEDIR might be absolute, so don't reuse below. -set(mlir_cmake_builddir "${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/cmake/mlir") +set(mlir_cmake_builddir "${LLVMPROJ_BINARY_LIBDIR}/cmake/mlir") # Keep this in sync with llvm/cmake/CMakeLists.txt! set(LLVM_INSTALL_PACKAGE_DIR "${CMAKE_INSTALL_PACKAGEDIR}/llvm" CACHE STRING diff --git a/mlir/examples/standalone/CMakeLists.txt b/mlir/examples/standalone/CMakeLists.txt --- a/mlir/examples/standalone/CMakeLists.txt +++ b/mlir/examples/standalone/CMakeLists.txt @@ -10,8 +10,8 @@ message(STATUS "Using MLIRConfig.cmake in: ${MLIR_DIR}") message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") -set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/bin) -set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/lib) +set(LLVM_RUNTIME_OUTPUT_INTDIR ${LLVMPROJ_BINARY_BINDIR}) +set(LLVM_LIBRARY_OUTPUT_INTDIR ${LLVMPROJ_BINARY_LIBDIR}) set(MLIR_BINARY_DIR ${CMAKE_BINARY_DIR}) list(APPEND CMAKE_MODULE_PATH "${MLIR_CMAKE_DIR}") diff --git a/mlir/test/CMakeLists.txt b/mlir/test/CMakeLists.txt --- a/mlir/test/CMakeLists.txt +++ b/mlir/test/CMakeLists.txt @@ -8,7 +8,7 @@ # Provide the MLIR CMake module dir so that the out of tree Standalone # dialect and can add it to the module path. set(MLIR_CMAKE_DIR - "${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/cmake/mlir") + "${LLVMPROJ_BINARY_LIBDIR}/cmake/mlir") # Passed to lit.site.cfg.py.in to set up the path where to find libraries. set(MLIR_LIB_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) diff --git a/mlir/utils/mbr/CMakeLists.txt b/mlir/utils/mbr/CMakeLists.txt --- a/mlir/utils/mbr/CMakeLists.txt +++ b/mlir/utils/mbr/CMakeLists.txt @@ -1 +1 @@ -configure_file(mlir-mbr.in ${CMAKE_BINARY_DIR}/bin/mlir-mbr @ONLY) +configure_file(mlir-mbr.in ${LLVMPROJ_BINARY_BINDIR}/mlir-mbr @ONLY) diff --git a/openmp/libomptarget/plugins/remote/CMakeLists.txt b/openmp/libomptarget/plugins/remote/CMakeLists.txt --- a/openmp/libomptarget/plugins/remote/CMakeLists.txt +++ b/openmp/libomptarget/plugins/remote/CMakeLists.txt @@ -26,7 +26,7 @@ if (Protobuf_FOUND AND gRPC_FOUND AND PROTOC AND GRPC_CPP_PLUGIN) libomptarget_say("Building remote offloading plugin.") - set(directory "${CMAKE_BINARY_DIR}/include/openmp/libomptarget/plugins/remote/") + set(directory "${LLVMPROJ_BINARY_INCLUDEDIR}/openmp/libomptarget/plugins/remote/") file(MAKE_DIRECTORY ${directory}) execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${directory}) execute_process(