brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.1 KiB · c75c8b1 Raw
275 lines · plain
1# Helper function that creates an alias if a target specific implementation2# exists, otherwise it uses a generic one.3function(add_stdio_entrypoint_object name)4  if(TARGET libc.src.stdio.${LIBC_TARGET_OS}.${name})5    add_entrypoint_object(6      ${name}7      ALIAS8      DEPENDS9        .${LIBC_TARGET_OS}.${name}10    )11  elseif(TARGET libc.src.stdio.generic.${name})12    add_entrypoint_object(13      ${name}14      ALIAS15      DEPENDS16        .generic.${name}17    )18  endif()19endfunction(add_stdio_entrypoint_object)20 21if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS})22  add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS})23endif()24add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/generic)25 26if(NOT LLVM_LIBC_FULL_BUILD)27  list(APPEND use_system_file "COMPILE_OPTIONS" "-DLIBC_COPT_STDIO_USE_SYSTEM_FILE")28endif()29 30add_entrypoint_object(31  flockfile32  SRCS33    flockfile.cpp34  HDRS35    flockfile.h36  DEPENDS37    libc.hdr.types.FILE38    libc.src.__support.File.file39    libc.src.__support.File.platform_file40)41 42add_entrypoint_object(43  funlockfile44  SRCS45    funlockfile.cpp46  HDRS47    funlockfile.h48  DEPENDS49    libc.hdr.types.FILE50    libc.src.__support.File.file51    libc.src.__support.File.platform_file52)53 54add_entrypoint_object(55  fopencookie56  SRCS57    fopencookie.cpp58  HDRS59    fopencookie.h60  DEPENDS61    libc.hdr.stdio_macros62    libc.hdr.types.off_t63    libc.hdr.types.cookie_io_functions_t64    libc.hdr.types.FILE65    libc.src.__support.CPP.new66    libc.src.__support.File.file67)68 69add_entrypoint_object(70  setbuf71  SRCS72    setbuf.cpp73  HDRS74    setbuf.h75  DEPENDS76    libc.src.errno.errno77    libc.hdr.types.off_t78    libc.src.__support.File.file79    libc.src.__support.File.platform_file80)81 82add_entrypoint_object(83  setvbuf84  SRCS85    setvbuf.cpp86  HDRS87    setvbuf.h88  DEPENDS89    libc.src.errno.errno90    libc.hdr.types.FILE91    libc.src.__support.File.file92    libc.src.__support.File.platform_file93)94 95add_entrypoint_object(96  sscanf97  SRCS98    sscanf.cpp99  HDRS100    sscanf.h101  DEPENDS102    libc.src.__support.arg_list103    libc.src.stdio.scanf_core.scanf_main104    libc.src.stdio.scanf_core.string_reader105)106 107add_entrypoint_object(108  vsscanf109  SRCS110    vsscanf.cpp111  HDRS112    vsscanf.h113  DEPENDS114    libc.src.__support.arg_list115    libc.src.stdio.scanf_core.scanf_main116    libc.src.stdio.scanf_core.string_reader117)118 119add_entrypoint_object(120  sprintf121  SRCS122    sprintf.cpp123  HDRS124    sprintf.h125  DEPENDS126    libc.src.stdio.printf_core.printf_main127    libc.src.stdio.printf_core.writer128    libc.src.stdio.printf_core.core_structs129    libc.src.stdio.printf_core.error_mapper130    libc.src.__support.libc_errno131    libc.src.__support.CPP.limits132)133 134add_entrypoint_object(135  snprintf136  SRCS137    snprintf.cpp138  HDRS139    snprintf.h140  DEPENDS141    libc.src.stdio.printf_core.printf_main142    libc.src.stdio.printf_core.writer143    libc.src.stdio.printf_core.core_structs144    libc.src.stdio.printf_core.error_mapper145    libc.src.__support.libc_errno146    libc.src.__support.CPP.limits147)148 149add_entrypoint_object(150  asprintf151  SRCS152    asprintf.cpp153  HDRS154    asprintf.h155  DEPENDS156    libc.src.stdio.printf_core.vasprintf_internal157    libc.src.stdio.printf_core.core_structs158    libc.src.stdio.printf_core.error_mapper159    libc.src.__support.libc_errno160    libc.src.__support.CPP.limits161)162 163add_entrypoint_object(164  vsprintf165  SRCS166    vsprintf.cpp167  HDRS168    vsprintf.h169  DEPENDS170    libc.src.stdio.printf_core.printf_main171    libc.src.stdio.printf_core.writer172    libc.src.stdio.printf_core.core_structs173    libc.src.stdio.printf_core.error_mapper174    libc.src.__support.libc_errno175    libc.src.__support.CPP.limits176)177 178add_entrypoint_object(179  vsnprintf180  SRCS181    vsnprintf.cpp182  HDRS183    vsnprintf.h184  DEPENDS185    libc.src.stdio.printf_core.printf_main186    libc.src.stdio.printf_core.writer187    libc.src.stdio.printf_core.core_structs188    libc.src.stdio.printf_core.error_mapper189    libc.src.__support.libc_errno190    libc.src.__support.CPP.limits191)192 193add_entrypoint_object(194  vasprintf195  SRCS196    vasprintf.cpp197  HDRS198    vasprintf.h199  DEPENDS200    libc.src.stdio.printf_core.vasprintf_internal201    libc.src.stdio.printf_core.core_structs202    libc.src.stdio.printf_core.error_mapper203    libc.src.__support.libc_errno204    libc.src.__support.CPP.limits205)206 207add_subdirectory(printf_core)208add_subdirectory(scanf_core)209 210add_entrypoint_object(211  remove212  ALIAS213  DEPENDS214    .${LIBC_TARGET_OS}.remove215)216 217add_entrypoint_object(218  rename219  ALIAS220  DEPENDS221    .${LIBC_TARGET_OS}.rename222)223 224add_entrypoint_object(225  fdopen226  ALIAS227  DEPENDS228    .${LIBC_TARGET_OS}.fdopen229)230 231# These entrypoints have multiple potential implementations.232add_stdio_entrypoint_object(feof)233add_stdio_entrypoint_object(feof_unlocked)234add_stdio_entrypoint_object(ferror)235add_stdio_entrypoint_object(ferror_unlocked)236add_stdio_entrypoint_object(fseek)237add_stdio_entrypoint_object(ftell)238add_stdio_entrypoint_object(fseeko)239add_stdio_entrypoint_object(fileno)240add_stdio_entrypoint_object(ftello)241add_stdio_entrypoint_object(fflush)242add_stdio_entrypoint_object(clearerr)243add_stdio_entrypoint_object(clearerr_unlocked)244add_stdio_entrypoint_object(fopen)245add_stdio_entrypoint_object(fclose)246add_stdio_entrypoint_object(fread_unlocked)247add_stdio_entrypoint_object(fread)248add_stdio_entrypoint_object(perror)249add_stdio_entrypoint_object(puts)250add_stdio_entrypoint_object(fputs)251add_stdio_entrypoint_object(fwrite_unlocked)252add_stdio_entrypoint_object(fwrite)253add_stdio_entrypoint_object(fputc)254add_stdio_entrypoint_object(putc)255add_stdio_entrypoint_object(putchar)256add_stdio_entrypoint_object(printf)257add_stdio_entrypoint_object(fprintf)258add_stdio_entrypoint_object(fgetc)259add_stdio_entrypoint_object(fgetc_unlocked)260add_stdio_entrypoint_object(getc)261add_stdio_entrypoint_object(getc_unlocked)262add_stdio_entrypoint_object(getchar)263add_stdio_entrypoint_object(getchar_unlocked)264add_stdio_entrypoint_object(fgets)265add_stdio_entrypoint_object(ungetc)266add_stdio_entrypoint_object(scanf)267add_stdio_entrypoint_object(fscanf)268add_stdio_entrypoint_object(stdin)269add_stdio_entrypoint_object(stdout)270add_stdio_entrypoint_object(stderr)271add_stdio_entrypoint_object(vprintf)272add_stdio_entrypoint_object(vfprintf)273add_stdio_entrypoint_object(vscanf)274add_stdio_entrypoint_object(vfscanf)275