diff --git a/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake b/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake --- a/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake +++ b/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake @@ -26,7 +26,7 @@ if (OPENMP_STANDALONE_BUILD) # Complete LLVM package is required for building libomptarget # in an out-of-tree mode. - find_package(LLVM REQUIRED) + find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}") message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") message(STATUS "Using LLVM in: ${LLVM_DIR}") list(APPEND LIBOMPTARGET_LLVM_INCLUDE_DIRS ${LLVM_INCLUDE_DIRS}) diff --git a/openmp/libomptarget/src/CMakeLists.txt b/openmp/libomptarget/src/CMakeLists.txt --- a/openmp/libomptarget/src/CMakeLists.txt +++ b/openmp/libomptarget/src/CMakeLists.txt @@ -12,35 +12,30 @@ libomptarget_say("Building offloading runtime library libomptarget.") -set(LIBOMPTARGET_SRC_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/api.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/device.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/interface.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/interop.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/omptarget.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rtl.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/LegacyAPI.cpp -) +add_llvm_library(omptarget + SHARED + + api.cpp + device.cpp + interface.cpp + interop.cpp + omptarget.cpp + rtl.cpp + LegacyAPI.cpp + + ADDITIONAL_HEADER_DIRS + ${LIBOMPTARGET_INCLUDE_DIR} -set(LIBOMPTARGET_SRC_FILES ${LIBOMPTARGET_SRC_FILES} PARENT_SCOPE) - -# Build libomptarget library with libdl dependency. -add_library(omptarget SHARED ${LIBOMPTARGET_SRC_FILES}) -set_target_properties(omptarget PROPERTIES INSTALL_RPATH "$ORIGIN" BUILD_RPATH "$ORIGIN") -if (OPENMP_ENABLE_LIBOMPTARGET_PROFILING) - # Add LLVMSupport dependency if profiling is enabled. - # Linking with LLVM component libraries also requires - # aligning the compile flags. - llvm_update_compile_flags(omptarget) - target_compile_definitions(omptarget PUBLIC OMPTARGET_PROFILE_ENABLED) - target_link_libraries(omptarget PRIVATE LLVMSupport) -endif() -target_include_directories(omptarget PRIVATE - ${LIBOMPTARGET_INCLUDE_DIR}) -target_link_libraries(omptarget PRIVATE + LINK_COMPONENTS + Support + Object + + LINK_LIBS ${CMAKE_DL_LIBS} - "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports") + "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports" +) + +target_include_directories(omptarget PRIVATE ${LIBOMPTARGET_INCLUDE_DIR}) -# Install libomptarget under the lib destination folder. -install(TARGETS omptarget LIBRARY COMPONENT omptarget - DESTINATION "${OPENMP_INSTALL_LIBDIR}") +# Also install plugin under the standard lib destination folder. +install(TARGETS omptarget LIBRARY DESTINATION "${OPENMP_INSTALL_LIBDIR}")