diff options
Diffstat (limited to 'final/libomptarget/CMakeLists.txt')
-rw-r--r-- | final/libomptarget/CMakeLists.txt | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/final/libomptarget/CMakeLists.txt b/final/libomptarget/CMakeLists.txt new file mode 100644 index 0000000..a953662 --- /dev/null +++ b/final/libomptarget/CMakeLists.txt @@ -0,0 +1,84 @@ +##===----------------------------------------------------------------------===## +# +# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +# See https://llvm.org/LICENSE.txt for license information. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +# +##===----------------------------------------------------------------------===## +# +# Build offloading library and related plugins. +# +##===----------------------------------------------------------------------===## + +if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + message(FATAL_ERROR "Direct configuration not supported, please use parent directory!") +endif() + +# Add cmake directory to search for custom cmake functions. +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules ${CMAKE_MODULE_PATH}) + +if(OPENMP_STANDALONE_BUILD) + # Build all libraries into a common place so that tests can find them. + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) +endif() + +# Message utilities. +include(LibomptargetUtils) + +# Get dependencies for the different components of the project. +include(LibomptargetGetDependencies) + +# This is a list of all the targets that are supported/tested right now. +set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} aarch64-unknown-linux-gnu") +set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} powerpc64le-ibm-linux-gnu") +set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} powerpc64-ibm-linux-gnu") +set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} x86_64-pc-linux-gnu") +set (LIBOMPTARGET_ALL_TARGETS "${LIBOMPTARGET_ALL_TARGETS} nvptx64-nvidia-cuda") + +# Once the plugins for the different targets are validated, they will be added to +# the list of supported targets in the current system. +set (LIBOMPTARGET_SYSTEM_TARGETS "") + +# Check whether using debug mode. In debug mode, allow dumping progress +# messages at runtime by default. Otherwise, it can be enabled +# independently using the LIBOMPTARGET_ENABLE_DEBUG option. +string( TOLOWER "${CMAKE_BUILD_TYPE}" LIBOMPTARGET_CMAKE_BUILD_TYPE) +if(LIBOMPTARGET_CMAKE_BUILD_TYPE MATCHES debug) + option(LIBOMPTARGET_ENABLE_DEBUG "Allow debug output with the environment variable LIBOMPTARGET_DEBUG=1" ON) +else() + option(LIBOMPTARGET_ENABLE_DEBUG "Allow debug output with the environment variable LIBOMPTARGET_DEBUG=1" OFF) +endif() +if(LIBOMPTARGET_ENABLE_DEBUG) + add_definitions(-DOMPTARGET_DEBUG) +endif() + +include_directories(include) + +# Build target agnostic offloading library. +add_subdirectory(src) + +# Retrieve the path to the resulting library so that it can be used for +# testing. +get_target_property(LIBOMPTARGET_LIBRARY_DIR omptarget LIBRARY_OUTPUT_DIRECTORY) +if(NOT LIBOMPTARGET_LIBRARY_DIR) + set(LIBOMPTARGET_LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) +endif() + +# Definitions for testing, for reuse when testing libomptarget-nvptx. +if(OPENMP_STANDALONE_BUILD) + set(LIBOMPTARGET_OPENMP_HEADER_FOLDER "${CMAKE_CURRENT_BINARY_DIR}/../runtime/src" CACHE STRING + "Path to folder containing omp.h") + set(LIBOMPTARGET_OPENMP_HOST_RTL_FOLDER "${CMAKE_CURRENT_BINARY_DIR}/../runtime/src" CACHE STRING + "Path to folder containing libomp.so") +else() + set(LIBOMPTARGET_OPENMP_HEADER_FOLDER "${CMAKE_CURRENT_BINARY_DIR}/../runtime/src") +endif() + + +# Build offloading plugins and device RTLs if they are available. +add_subdirectory(plugins) +add_subdirectory(deviceRTLs) + +# Add tests. +add_subdirectory(test) |