File: CMakeLists.txt

package info (click to toggle)
llvm-toolchain-15 1%3A15.0.6-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,554,644 kB
  • sloc: cpp: 5,922,452; ansic: 1,012,136; asm: 674,362; python: 191,568; objc: 73,855; f90: 42,327; lisp: 31,913; pascal: 11,973; javascript: 10,144; sh: 9,421; perl: 7,447; ml: 5,527; awk: 3,523; makefile: 2,520; xml: 885; cs: 573; fortran: 567
file content (69 lines) | stat: -rw-r--r-- 2,442 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
##===----------------------------------------------------------------------===##
#
# 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)

  # 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_llvm_library("omptarget.rtl.${tmachine_libname}" 
    SHARED
    ${CMAKE_CURRENT_SOURCE_DIR}/src/rtl.cpp

    ADDITIONAL_HEADER_DIRS
    ${LIBOMPTARGET_INCLUDE_DIR}
    ${LIBOMPTARGET_DEP_LIBELF_INCLUDE_DIR}
    ${LIBOMPTARGET_DEP_VEO_INCLUDE_DIR}

    LINK_LIBS
    PRIVATE
    elf_common
    ${LIBOMPTARGET_DEP_LIBFFI_LIBRARIES}
    ${LIBOMPTARGET_DEP_LIBELF_LIBRARIES}
    ${additional_libs}
    "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/../exports -Wl,-z,defs"

    NO_INSTALL_RPATH
  )

  # Install plugin under the lib destination folder.
  install(TARGETS  "omptarget.rtl.${tmachine_libname}" LIBRARY DESTINATION "${OPENMP_INSTALL_LIBDIR}")
  set_target_properties("omptarget.rtl.${tmachine_libname}" PROPERTIES 
    INSTALL_RPATH "$ORIGIN" BUILD_RPATH "$ORIGIN:${CMAKE_CURRENT_BINARY_DIR}/..")

  target_include_directories("omptarget.rtl.${tmachine_libname}" PRIVATE
    ${LIBOMPTARGET_INCLUDE_DIR}
    ${LIBOMPTARGET_DEP_LIBELF_INCLUDE_DIR}
    ${LIBOMPTARGET_DEP_VEO_INCLUDE_DIR})

  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()