1*bdf72706Swangleiset(supported_targets x86_64 aarch64 ppc64 ppc64le riscv64 s390x loongarch64) 2330d8983SJohannes Doerfertif(NOT ${CMAKE_SYSTEM_PROCESSOR} IN_LIST supported_targets) 3770d9283SJoseph Huber message(STATUS "Not building ${machine} NextGen offloading plugin") 4330d8983SJohannes Doerfert return() 5330d8983SJohannes Doerfertendif() 6330d8983SJohannes Doerfert 7330d8983SJohannes Doerfertset(machine ${CMAKE_SYSTEM_PROCESSOR}) 8330d8983SJohannes Doerfertif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le$") 9330d8983SJohannes Doerfert set(machine ppc64) 10330d8983SJohannes Doerfertendif() 11330d8983SJohannes Doerfert 12330d8983SJohannes Doerfert# Create the library and add the default arguments. 1372b0c11cSJoseph Huberadd_target_library(omptarget.rtl.host ${machine}) 14330d8983SJohannes Doerfert 1572b0c11cSJoseph Hubertarget_sources(omptarget.rtl.host PRIVATE src/rtl.cpp) 16330d8983SJohannes Doerfert 17330d8983SJohannes Doerfertif(LIBOMPTARGET_DEP_LIBFFI_FOUND) 18770d9283SJoseph Huber message(STATUS "Building ${machine} plugin linked with libffi") 19330d8983SJohannes Doerfert if(FFI_STATIC_LIBRARIES) 2072b0c11cSJoseph Huber target_link_libraries(omptarget.rtl.host PRIVATE FFI::ffi_static) 21330d8983SJohannes Doerfert else() 2272b0c11cSJoseph Huber target_link_libraries(omptarget.rtl.host PRIVATE FFI::ffi) 23330d8983SJohannes Doerfert endif() 24330d8983SJohannes Doerfertelse() 25770d9283SJoseph Huber message(STATUS "Building ${machine} plugin for dlopened libffi") 2672b0c11cSJoseph Huber target_sources(omptarget.rtl.host PRIVATE dynamic_ffi/ffi.cpp) 2772b0c11cSJoseph Huber target_include_directories(omptarget.rtl.host PRIVATE dynamic_ffi) 28330d8983SJohannes Doerfertendif() 29330d8983SJohannes Doerfert 3072b0c11cSJoseph Hubertarget_include_directories(omptarget.rtl.host PRIVATE 31330d8983SJohannes Doerfert ${LIBOMPTARGET_INCLUDE_DIR}) 32330d8983SJohannes Doerfert 33330d8983SJohannes Doerfertif(LIBOMPTARGET_DEP_LIBFFI_FOUND) 3472b0c11cSJoseph Huber list(APPEND LIBOMPTARGET_TESTED_PLUGINS omptarget.rtl.host) 35330d8983SJohannes Doerfert set(LIBOMPTARGET_TESTED_PLUGINS 36330d8983SJohannes Doerfert "${LIBOMPTARGET_TESTED_PLUGINS}" PARENT_SCOPE) 37330d8983SJohannes Doerfertelse() 38770d9283SJoseph Huber message(STATUS "Not generating ${tmachine_name} tests. LibFFI not found.") 39330d8983SJohannes Doerfertendif() 40330d8983SJohannes Doerfert 41330d8983SJohannes Doerfert# Define the target specific triples and ELF machine values. 42330d8983SJohannes Doerfertif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le$") 43330d8983SJohannes Doerfert list(APPEND LIBOMPTARGET_SYSTEM_TARGETS 44330d8983SJohannes Doerfert "powerpc64le-ibm-linux-gnu" "powerpc64le-ibm-linux-gnu-LTO") 45330d8983SJohannes Doerfert set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS}" PARENT_SCOPE) 46330d8983SJohannes Doerfertelseif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64$") 47330d8983SJohannes Doerfert list(APPEND LIBOMPTARGET_SYSTEM_TARGETS 48330d8983SJohannes Doerfert "powerpc64-ibm-linux-gnu" "powerpc64-ibm-linux-gnu-LTO") 49330d8983SJohannes Doerfert set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS}" PARENT_SCOPE) 50330d8983SJohannes Doerfertelseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64$") 51330d8983SJohannes Doerfert list(APPEND LIBOMPTARGET_SYSTEM_TARGETS 521a0cf245SJan Patrick Lehr "x86_64-unknown-linux-gnu" "x86_64-unknown-linux-gnu-LTO") 53330d8983SJohannes Doerfert set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS}" PARENT_SCOPE) 54330d8983SJohannes Doerfertelseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64$") 55330d8983SJohannes Doerfert list(APPEND LIBOMPTARGET_SYSTEM_TARGETS 56330d8983SJohannes Doerfert "aarch64-unknown-linux-gnu" "aarch64-unknown-linux-gnu-LTO") 57330d8983SJohannes Doerfert set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS}" PARENT_SCOPE) 58330d8983SJohannes Doerfertelseif(CMAKE_SYSTEM_PROCESSOR MATCHES "s390x$") 59330d8983SJohannes Doerfert list(APPEND LIBOMPTARGET_SYSTEM_TARGETS 60330d8983SJohannes Doerfert "s390x-ibm-linux-gnu" "s390x-ibm-linux-gnu-LTO") 61330d8983SJohannes Doerfert set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS}" PARENT_SCOPE) 62b6bd7477Saurel32elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "riscv64$") 63b6bd7477Saurel32 list(APPEND LIBOMPTARGET_SYSTEM_TARGETS 64b6bd7477Saurel32 "riscv64-unknown-linux-gnu" "riscv64-unknown-linux-gnu-LTO") 65b6bd7477Saurel32 set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS}" PARENT_SCOPE) 66*bdf72706Swangleielseif(CMAKE_SYSTEM_PROCESSOR MATCHES "loongarch64$") 67*bdf72706Swanglei list(APPEND LIBOMPTARGET_SYSTEM_TARGETS 68*bdf72706Swanglei "loongarch64-unknown-linux-gnu" "loongarch64-unknown-linux-gnu-LTO") 69*bdf72706Swanglei set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS}" PARENT_SCOPE) 70330d8983SJohannes Doerfertendif() 71