blob: 16ce0891ca23faede49c1be778e6da2710029a33 [file] [log] [blame]
##===----------------------------------------------------------------------===##
#
# Build a plugin for a NEC Aurora machine if available. (Can also run on host)
#
##===----------------------------------------------------------------------===##
if(${LIBOMPTARGET_DEP_VEO_FOUND})
libomptarget_say("Building SX-Aurora VE offloading plugin.")
set(additional_libs "")
set(additional_libs ${LIBOMPTARGET_DEP_VEO_LIBRARIES}
${LIBOMPTARGET_DEP_VEOSINFO_LIBRARIES}
${additional_libs})
set(tmachine_name "ve")
set(tmachine_libname "ve")
set(tmachine_triple "ve-unknown-linux-unknown")
set(elf_machine_id 251)
include_directories(${LIBOMPTARGET_DEP_LIBELF_INCLUDE_DIR})
include_directories(${LIBOMPTARGET_DEP_VEO_INCLUDE_DIR})
# Define macro to be used as prefix of the runtime messages for this target.
add_definitions("-DTARGET_NAME=${tmachine_name}")
# Define macro with the ELF ID for this target.
add_definitions("-DTARGET_ELF_ID=${elf_machine_id}")
add_library("omptarget.rtl.${tmachine_libname}" SHARED
${CMAKE_CURRENT_SOURCE_DIR}/src/rtl.cpp)
# Install plugin under the lib destination folder.
install(TARGETS "omptarget.rtl.${tmachine_libname}"
LIBRARY DESTINATION lib${OPENMP_LIBDIR_SUFFIX})
target_link_libraries(
"omptarget.rtl.${tmachine_libname}"
elf_common
${LIBOMPTARGET_DEP_LIBFFI_LIBRARIES}
${LIBOMPTARGET_DEP_LIBELF_LIBRARIES}
${additional_libs}
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/../exports -Wl,-z,defs")
# Report to the parent scope that we are building a plugin.
set(LIBOMPTARGET_SYSTEM_TARGETS
"${LIBOMPTARGET_SYSTEM_TARGETS} ${tmachine_triple}" PARENT_SCOPE)
else()
libomptarget_say("Not building nec-aurora plugin: libveo or libveosinfo not found.")
endif()