xref: /llvm-project/libc/utils/gpu/server/CMakeLists.txt (revision f6f4744176c8838a55fabd6f978ac08c3612aabc)
1add_library(llvmlibc_rpc_server STATIC
2  ${LIBC_SOURCE_DIR}/src/stdio/printf_core/writer.cpp
3  ${LIBC_SOURCE_DIR}/src/stdio/printf_core/converter.cpp
4  rpc_server.cpp
5)
6
7# Include the RPC implemenation from libc.
8target_include_directories(llvmlibc_rpc_server PRIVATE ${LIBC_SOURCE_DIR})
9target_include_directories(llvmlibc_rpc_server PUBLIC ${LIBC_SOURCE_DIR}/include)
10target_include_directories(llvmlibc_rpc_server PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
11
12# Ignore unsupported clang attributes if we're using GCC.
13target_compile_options(llvmlibc_rpc_server PUBLIC
14                       $<$<CXX_COMPILER_ID:GNU>:-Wno-attributes>)
15target_compile_definitions(llvmlibc_rpc_server PUBLIC
16                           LIBC_COPT_USE_C_ASSERT
17                           LIBC_COPT_MEMCPY_USE_EMBEDDED_TINY
18                           LIBC_TYPES_LONG_DOUBLE_IS_FLOAT64
19                           LIBC_COPT_ARRAY_ARG_LIST
20                           LIBC_COPT_PRINTF_DISABLE_WRITE_INT
21                           LIBC_COPT_PRINTF_DISABLE_INDEX_MODE
22                           LIBC_COPT_PRINTF_DISABLE_STRERROR
23                           LIBC_NAMESPACE=${LIBC_NAMESPACE})
24
25# Install the server and associated header.
26install(FILES ${LIBC_SOURCE_DIR}/shared/rpc.h
27              ${LIBC_SOURCE_DIR}/shared/rpc_util.h
28              ${LIBC_SOURCE_DIR}/shared/rpc_opcodes.h
29        DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/shared
30        COMPONENT libc-headers)
31install(TARGETS llvmlibc_rpc_server
32        ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}"
33        COMPONENT libc)
34