Revert "[Libomptarget] Make libomptarget an LLVM library"
authorJoseph Huber <jhuber6@vols.utk.edu>
Wed, 20 Jul 2022 14:18:23 +0000 (10:18 -0400)
committerJoseph Huber <jhuber6@vols.utk.edu>
Wed, 20 Jul 2022 14:18:55 +0000 (10:18 -0400)
This reverts commit 643dfd97d52e7b0c0dfbe7fd6046de9d43b3daa6.

This patch still makes the AMDGPU buildbots unhappy. Reverting for now
until the AMD folks figure it out.

openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake
openmp/libomptarget/src/CMakeLists.txt

index 691822ed76d45297684337ea6f07267191992d73..1f2a50667c4fd30556d06501ae592c216356a09c 100644 (file)
@@ -26,7 +26,7 @@ include (FindPackageHandleStandardArgs)
 if (OPENMP_STANDALONE_BUILD)
   # Complete LLVM package is required for building libomptarget
   # in an out-of-tree mode.
-  find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}")
+  find_package(LLVM REQUIRED)
   message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
   message(STATUS "Using LLVM in: ${LLVM_DIR}")
   list(APPEND LIBOMPTARGET_LLVM_INCLUDE_DIRS ${LLVM_INCLUDE_DIRS})
index bc1c2a378593be69a247cd0e2b587898188f125f..8de88e567f957686e618df81c75915fe656c2055 100644 (file)
 
 libomptarget_say("Building offloading runtime library libomptarget.")
 
-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}
-
-  LINK_COMPONENTS
-  Support
-  Object
-
-  LINK_LIBS
-  ${CMAKE_DL_LIBS}
-  "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports"
+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
 )
 
-target_include_directories(omptarget PRIVATE ${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
+  ${CMAKE_DL_LIBS}
+  "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports")
 
-# Also install plugin under the standard lib destination folder.
-install(TARGETS omptarget LIBRARY DESTINATION "${OPENMP_INSTALL_LIBDIR}")
+# Install libomptarget under the lib destination folder.
+install(TARGETS omptarget LIBRARY COMPONENT omptarget
+  DESTINATION "${OPENMP_INSTALL_LIBDIR}")