llvm/libc/src/stdio/gpu/CMakeLists.txt

add_header_library(
  gpu_file
  HDRS
    file.h
  DEPENDS
    libc.hdr.types.FILE
    libc.src.__support.RPC.rpc_client
    libc.src.__support.common
    .stdin
    .stdout
    .stderr
)

add_header_library(
  vfprintf_utils
  HDRS
    vfprintf_utils.h
  DEPENDS
    .gpu_file
)

add_entrypoint_object(
  feof
  SRCS
    feof.cpp
  HDRS
    ../feof.h
  DEPENDS
    libc.hdr.types.FILE
    libc.src.__support.RPC.rpc_client
)

add_entrypoint_object(
  ferror
  SRCS
    ferror.cpp
  HDRS
    ../ferror.h
  DEPENDS
    libc.hdr.types.FILE
    libc.src.__support.RPC.rpc_client
)

add_entrypoint_object(
  fseek
  SRCS
    fseek.cpp
  HDRS
    ../fseek.h
  DEPENDS
    libc.hdr.types.FILE
    .gpu_file
)

add_entrypoint_object(
  ftell
  SRCS
    ftell.cpp
  HDRS
    ../ftell.h
  DEPENDS
    libc.hdr.types.FILE
    .gpu_file
)

add_entrypoint_object(
  fflush
  SRCS
    fflush.cpp
  HDRS
    ../fflush.h
  DEPENDS
    libc.hdr.types.FILE
    .gpu_file
)

add_entrypoint_object(
  clearerr
  SRCS
    clearerr.cpp
  HDRS
    ../clearerr.h
  DEPENDS
    libc.hdr.types.FILE
    libc.src.__support.RPC.rpc_client
)

add_entrypoint_object(
  fopen
  SRCS
    fopen.cpp
  HDRS
    ../fopen.h
  DEPENDS
    libc.hdr.types.FILE
)

add_entrypoint_object(
  fclose
  SRCS
    fclose.cpp
  HDRS
    ../fclose.h
  DEPENDS
    libc.hdr.types.FILE
)

add_entrypoint_object(
  fread
  SRCS
    fread.cpp
  HDRS
    ../fread.h
  DEPENDS
    libc.hdr.types.FILE
)

add_entrypoint_object(
  puts
  SRCS
    puts.cpp
  HDRS
    ../puts.h
  DEPENDS
    libc.hdr.types.FILE
    libc.include.stdio # needed for stdin
    .gpu_file
)

add_entrypoint_object(
  fputs
  SRCS
    fputs.cpp
  HDRS
    ../fputs.h
  DEPENDS
    libc.hdr.types.FILE
    .gpu_file
)

add_entrypoint_object(
  fwrite
  SRCS
    fwrite.cpp
  HDRS
    ../fwrite.h
  DEPENDS
    libc.hdr.types.FILE
    .gpu_file
)

add_entrypoint_object(
  fputc
  SRCS
    fputc.cpp
  HDRS
    ../fputc.h
  DEPENDS
    libc.hdr.types.FILE
    .gpu_file
)

add_entrypoint_object(
  putc
  SRCS
    putc.cpp
  HDRS
    ../putc.h
  DEPENDS
    libc.hdr.types.FILE
    libc.include.stdio # needed for stdin
    .gpu_file
)

add_entrypoint_object(
  putchar
  SRCS
    putchar.cpp
  HDRS
    ../putchar.h
  DEPENDS
    libc.hdr.types.FILE
    libc.include.stdio # needed for stdin
    .gpu_file
)

add_entrypoint_object(
  fgetc
  SRCS
    fgetc.cpp
  HDRS
    ../fgetc.h
  DEPENDS
    libc.hdr.types.FILE
    .gpu_file
)

add_entrypoint_object(
  getc
  SRCS
    getc.cpp
  HDRS
    ../getc.h
  DEPENDS
    libc.hdr.types.FILE
    libc.include.stdio # needed for stdin
    .gpu_file
)

add_entrypoint_object(
  getchar
  SRCS
    getchar.cpp
  HDRS
    ../getchar.h
  DEPENDS
    libc.hdr.types.FILE
    libc.include.stdio # needed for stdin
    .gpu_file
)

add_entrypoint_object(
  fgets
  SRCS
    fgets.cpp
  HDRS
    ../fgets.h
  DEPENDS
    libc.hdr.types.FILE
    .gpu_file
    .feof
    .ferror
)

add_entrypoint_object(
  ungetc
  SRCS
    ungetc.cpp
  HDRS
    ../ungetc.h
  DEPENDS
    libc.hdr.types.FILE
    .gpu_file
)

add_entrypoint_object(
  remove
  SRCS
    remove.cpp
  HDRS
    ../remove.h
  DEPENDS
    libc.hdr.types.FILE
    .gpu_file
)

add_entrypoint_object(
  printf
  SRCS
    printf.cpp
  HDRS
    ../printf.h
  DEPENDS
    .vfprintf_utils
)

add_entrypoint_object(
  vprintf
  SRCS
    vprintf.cpp
  HDRS
    ../vprintf.h
  DEPENDS
    .vfprintf_utils
)

add_entrypoint_object(
  fprintf
  SRCS
    fprintf.cpp
  HDRS
    ../fprintf.h
  DEPENDS
    .vfprintf_utils
)

add_entrypoint_object(
  vfprintf
  SRCS
    vfprintf.cpp
  HDRS
    ../vfprintf.h
  DEPENDS
    .vfprintf_utils
)

add_entrypoint_object(
  stdin
  SRCS
    stdin.cpp
  HDRS
    ../stdin.h
  DEPENDS
    libc.hdr.types.FILE
)

add_entrypoint_object(
  stdout
  SRCS
    stdout.cpp
  HDRS
    ../stdout.h
  DEPENDS
    libc.hdr.types.FILE
)

add_entrypoint_object(
  stderr
  SRCS
    stderr.cpp
  HDRS
    ../stderr.h
  DEPENDS
    libc.hdr.types.FILE
)