Index: libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake =================================================================== --- libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake +++ libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake @@ -158,3 +158,69 @@ LIBOMPTARGET_DEP_CUDA_DRIVER_LIBRARIES) mark_as_advanced(LIBOMPTARGET_DEP_CUDA_DRIVER_LIBRARIES) + +################################################################################ +# Looking for device bc compiler +################################################################################ +if (LIBOMPTARGET_NVPTX_ENABLE_BCLIB) + if (LIBOMPTARGET_NVPTX_CUDA_COMPILER AND LIBOMPTARGET_NVPTX_CUDA_LINKER) + #message(STATUS "Defined compiler ${LIBOMPTARGET_NVPTX_CUDA_COMPILER}") + #message(STATUS "Defined linker ${LIBOMPTARGET_NVPTX_CUDA_LINKER}") + else() + if (LIBOMPTARGET_NVPTX_CUDA_COMPILER) + get_filename_component(LIBOMPTARGET_NVPTX_CUDA_COMPILER_BINDIR ${LIBOMPTARGET_NVPTX_CUDA_COMPILER} DIRECTORY) + get_filename_component(LIBOMPTARGET_NVPTX_CUDA_COMPILER_DIR ${LIBOMPTARGET_NVPTX_CUDA_COMPILER_BINDIR} DIRECTORY) + #message(STATUS "Defined compiler dir ${LIBOMPTARGET_NVPTX_CUDA_COMPILER_DIR}") + endif() + + if (LIBOMPTARGET_NVPTX_CUDA_LINKER) + get_filename_component(LIBOMPTARGET_NVPTX_CUDA_LINKER_BINDIR ${LIBOMPTARGET_NVPTX_CUDA_LINKER} DIRECTORY) + get_filename_component(LIBOMPTARGET_NVPTX_CUDA_LINKER_DIR ${LIBOMPTARGET_NVPTX_CUDA_LINKER_BINDIR} DIRECTORY) + #message(STATUS "Defined linker dir ${LIBOMPTARGET_NVPTX_CUDA_LINKER_DIR}") + endif() + + if (CMAKE_CXX_COMPILER) + get_filename_component(CMAKE_CXX_COMPILER_BINDIR ${CMAKE_CXX_COMPILER} DIRECTORY) + get_filename_component(CMAKE_CXX_COMPILER_DIR ${CMAKE_CXX_COMPILER_BINDIR} DIRECTORY) + #message(STATUS "Default compiler dir ${CMAKE_CXX_COMPILER_DIR}") + endif() + + find_package(LLVM QUIET CONFIG + PATHS + ${LIBOMPTARGET_NVPTX_CUDA_COMPILER_DIR} + ${LIBOMPTARGET_NVPTX_CUDA_LINKER_DIR} + ${CMAKE_CXX_COMPILER_DIR} + NO_DEFAULT_PATH + ) + + if (LLVM_DIR) + message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}. Configure: ${LLVM_DIR}/LLVMConfig.cmake") + #message(STATUS " LLVM LLVM_INSTALL_PREFIX: ${LLVM_INSTALL_PREFIX}") + + set(LLVM_DIR_FOUND ${LLVM_DIR}) + set(LLVM_INSTALL_PREFIX ${LLVM_INSTALL_PREFIX}) + set(LLVM_MAIN_INCDIR ${LLVM_BUILD_MAIN_INCLUDE_DIR}) + + if (LLVM_INSTALL_PREFIX) + set(LLVM_BINDIR ${LLVM_INSTALL_PREFIX}/bin) + set(LLVM_INCDIR ${LLVM_INSTALL_PREFIX}/include) + set(LLVM_LIBDIR ${LLVM_INSTALL_PREFIX}/lib) + else() + set(LLVM_BINDIR ${LLVM_BUILD_BINARY_DIR}/bin) + set(LLVM_INCDIR ${LLVM_BUILD_BINARY_DIR}/include) + set(LLVM_LIBDIR ${LLVM_LIBRARY_DIRS}) + endif() + + if (NOT LIBOMPTARGET_NVPTX_CUDA_COMPILER) + set(LIBOMPTARGET_NVPTX_CUDA_COMPILER ${LLVM_BINDIR}/clang++) + endif() + + if (NOT LIBOMPTARGET_NVPTX_CUDA_LINKER) + set(LIBOMPTARGET_NVPTX_CUDA_LINKER ${LLVM_BINDIR}/llvm-link) + endif() + endif() + endif() +endif() + + +