[SelectOpt] Support ADD and SUB with zext operands. (#115489)
[llvm-project.git] / libc / src / stdio / printf_core / CMakeLists.txt
blob9eaffe2f7ed6215fd800bb78e47a994243733708
1 if(LIBC_CONF_PRINTF_DISABLE_FLOAT)
2   list(APPEND printf_config_copts "-DLIBC_COPT_PRINTF_DISABLE_FLOAT")
3 endif()
4 if(LIBC_CONF_PRINTF_DISABLE_INDEX_MODE)
5   list(APPEND printf_config_copts "-DLIBC_COPT_PRINTF_DISABLE_INDEX_MODE")
6 endif()
7 if(LIBC_CONF_PRINTF_DISABLE_WRITE_INT)
8   list(APPEND printf_config_copts "-DLIBC_COPT_PRINTF_DISABLE_WRITE_INT")
9 endif()
10 if(LIBC_CONF_PRINTF_FLOAT_TO_STR_USE_MEGA_LONG_DOUBLE_TABLE)
11   list(APPEND printf_config_copts "-DLIBC_COPT_FLOAT_TO_STR_USE_MEGA_LONG_DOUBLE_TABLE")
12 endif()
13 if(LIBC_CONF_PRINTF_FLOAT_TO_STR_USE_DYADIC_FLOAT)
14   list(APPEND printf_config_copts "-DLIBC_COPT_FLOAT_TO_STR_USE_DYADIC_FLOAT")
15 endif()
16 if(LIBC_CONF_PRINTF_FLOAT_TO_STR_NO_SPECIALIZE_LD)
17   list(APPEND printf_config_copts "-DLIBC_COPT_FLOAT_TO_STR_NO_SPECIALIZE_LD")
18 endif()
19 if(LIBC_CONF_PRINTF_DISABLE_FIXED_POINT)
20   list(APPEND printf_config_copts "-DLIBC_COPT_PRINTF_DISABLE_FIXED_POINT")
21 endif()
22 if(LIBC_CONF_PRINTF_DISABLE_STRERROR)
23   list(APPEND printf_config_copts "-DLIBC_COPT_PRINTF_DISABLE_STRERROR")
24 endif()
25 if(printf_config_copts)
26   list(PREPEND printf_config_copts "COMPILE_OPTIONS")
27 endif()
29 add_header_library(
30   printf_config
31   HDRS
32     printf_config.h
33   ${printf_config_copts}
36 add_header_library(
37   core_structs
38   HDRS
39     core_structs.h
40   DEPENDS
41     libc.src.__support.CPP.string_view
42     libc.src.__support.FPUtil.fp_bits
45 add_header_library(
46   parser
47   HDRS
48     parser.h
49   DEPENDS
50     .core_structs
51     libc.src.__support.arg_list
52     libc.src.__support.ctype_utils
53     libc.src.__support.str_to_integer
54     libc.src.__support.CPP.algorithm
55     libc.src.__support.CPP.bit
56     libc.src.__support.CPP.optional
57     libc.src.__support.CPP.string_view
58     libc.src.__support.CPP.type_traits
59     libc.src.__support.common
62 add_object_library(
63   writer
64   SRCS
65     writer.cpp
66   HDRS
67     writer.h
68   DEPENDS
69     .core_structs
70     libc.src.__support.CPP.string_view
71     libc.src.__support.macros.optimization
72     libc.src.string.memory_utils.inline_memcpy
73     libc.src.string.memory_utils.inline_memset
76 add_object_library(
77   converter
78   SRCS
79     converter.cpp
80   HDRS
81     converter.h
82     converter_atlas.h
83     converter_utils.h
84     string_converter.h
85     char_converter.h
86     int_converter.h
87     ptr_converter.h
88     write_int_converter.h
89     float_inf_nan_converter.h
90     float_hex_converter.h
91     float_dec_converter.h
92     fixed_converter.h #TODO: Check if this should be disabled when fixed unavail
93     strerror_converter.h
94   DEPENDS
95     .core_structs
96     .printf_config
97     .writer
98     libc.src.__support.big_int
99     libc.src.__support.common
100     libc.src.__support.CPP.limits
101     libc.src.__support.CPP.span
102     libc.src.__support.CPP.string_view
103     libc.src.__support.float_to_string
104     libc.src.__support.FPUtil.fenv_impl
105     libc.src.__support.FPUtil.fp_bits
106     libc.src.__support.FPUtil.rounding_mode
107     libc.src.__support.integer_to_string
108     libc.src.__support.libc_assert
109     libc.src.__support.uint128
110     libc.src.__support.StringUtil.error_to_string
113 add_object_library(
114   printf_main
115   SRCS
116     printf_main.cpp
117   HDRS
118     printf_main.h
119   DEPENDS
120     .parser
121     .converter
122     .writer
123     .core_structs
124     libc.src.__support.arg_list
127 add_header_library(
128   vasprintf_internal
129   HDRS
130     vasprintf_internal.h
131   DEPENDS
132     libc.hdr.func.malloc
133     libc.hdr.func.free
134     libc.hdr.func.realloc
135     libc.src.__support.arg_list
136     libc.src.stdio.printf_core.printf_main
137     libc.src.stdio.printf_core.writer
140 if(NOT (TARGET libc.src.__support.File.file) AND LLVM_LIBC_FULL_BUILD)
141   # Not all platforms have a file implementation. If file is unvailable, and a
142   # full build is requested, then we must skip all file based printf sections.
143   return()
144 endif()
146 add_header_library(
147   vfprintf_internal
148   HDRS
149     vfprintf_internal.h
150   DEPENDS
151     libc.src.__support.File.file
152     libc.src.__support.arg_list
153     libc.src.stdio.printf_core.printf_main
154     libc.src.stdio.printf_core.writer
155   ${use_system_file}