xref: /reactos/sdk/lib/crt/libcntpr.cmake (revision 11345aed)
1
2list(APPEND LIBCNTPR_SOURCE
3    float/isnan.c
4    math/abs.c
5    math/div.c
6    math/labs.c
7    math/rand_nt.c
8    mbstring/mbstrlen.c
9    mem/memccpy.c
10    mem/memcmp.c
11    mem/memicmp.c
12    misc/fltused.c
13    printf/_snprintf.c
14    printf/_snwprintf.c
15    printf/_vcprintf.c
16    printf/_vscwprintf.c
17    printf/_vsnprintf.c
18    printf/_vsnwprintf.c
19    printf/sprintf.c
20    printf/streamout.c
21    printf/swprintf.c
22    printf/vprintf.c
23    printf/vsprintf.c
24    printf/vswprintf.c
25    printf/wstreamout.c
26    search/bsearch.c
27    search/lfind.c
28    stdlib/qsort.c
29    string/_splitpath.c
30    string/_wsplitpath.c
31    string/ctype.c
32    string/iswctype.c
33    string/is_wctype.c
34    string/scanf.c
35    string/strcspn.c
36    string/stricmp.c
37    string/strnicmp.c
38    string/strlwr.c
39    string/strrev.c
40    string/strset.c
41    string/strstr.c
42    string/strupr.c
43    string/strpbrk.c
44    string/strspn.c
45    string/atoi64.c
46    string/atoi.c
47    string/atol.c
48    string/itoa.c
49    string/itow.c
50    string/mbstowcs_nt.c
51    string/strtoi64.c
52    string/strtol.c
53    string/strtoul.c
54    string/strtoull.c
55    string/wcs.c
56    string/wcstol.c
57    string/wcstombs_nt.c
58    string/wcstoul.c
59    string/wctype.c
60    string/wtoi64.c
61    string/wtoi.c
62    string/wtol.c
63    string/winesup.c
64    wstring/wcsicmp.c
65    wstring/wcslwr.c
66    wstring/wcsnicmp.c
67    wstring/wcsupr.c
68    wstring/wcscspn.c
69    wstring/wcsspn.c
70    wstring/wcsstr.c)
71
72if(ARCH STREQUAL "i386")
73    list(APPEND LIBCNTPR_ASM_SOURCE
74        except/i386/chkstk_asm.s
75        setjmp/i386/setjmp.s
76        math/i386/alldiv_asm.s
77        math/i386/alldvrm_asm.s
78        math/i386/allmul_asm.s
79        math/i386/allrem_asm.s
80        math/i386/allshl_asm.s
81        math/i386/allshr_asm.s
82        math/i386/atan_asm.s
83        math/i386/atan2_asm.s
84        math/i386/aulldiv_asm.s
85        math/i386/aulldvrm_asm.s
86        math/i386/aullrem_asm.s
87        math/i386/aullshr_asm.s
88        math/i386/ceil_asm.s
89        math/i386/cos_asm.s
90        math/i386/fabs_asm.s
91        math/i386/floor_asm.s
92        math/i386/ftol_asm.s
93        math/i386/ftol2_asm.s
94        math/i386/log_asm.s
95        math/i386/log10_asm.s
96        math/i386/pow_asm.s
97        math/i386/sin_asm.s
98        math/i386/sqrt_asm.s
99        math/i386/tan_asm.s
100        misc/i386/readcr4.S)
101
102    list(APPEND LIBCNTPR_SOURCE
103        math/i386/ci.c
104        math/i386/cicos.c
105        math/i386/cilog.c
106        math/i386/cipow.c
107        math/i386/cisin.c
108        math/i386/cisqrt.c
109        math/i386/ldexp.c)
110    if(NOT MSVC)
111        list(APPEND LIBCNTPR_SOURCE except/i386/chkstk_ms.s)
112    endif()
113elseif(ARCH STREQUAL "amd64")
114    list(APPEND LIBCNTPR_ASM_SOURCE
115        except/amd64/chkstk_asm.s
116        except/amd64/seh.s
117        setjmp/amd64/setjmp.s
118        math/amd64/atan.S
119        math/amd64/atan2.S
120        math/amd64/ceil.S
121        math/amd64/exp.S
122        math/amd64/fabs.S
123        math/amd64/floor.S
124        math/amd64/floorf.S
125        math/amd64/fmod.S
126        math/amd64/ldexp.S
127        math/amd64/log.S
128        math/amd64/log10.S
129        math/amd64/pow.S
130        math/amd64/sqrt.S
131        math/amd64/tan.S)
132    list(APPEND LIBCNTPR_SOURCE
133        except/amd64/ehandler.c
134        math/cos.c
135        math/sin.c)
136elseif(ARCH STREQUAL "arm")
137    list(APPEND LIBCNTPR_SOURCE
138        except/arm/chkstk_asm.s
139        except/arm/__jump_unwind.s
140        math/arm/__rt_sdiv.c
141        math/arm/__rt_sdiv64_worker.c
142        math/arm/__rt_udiv.c
143        math/arm/__rt_udiv64_worker.c
144    )
145    list(APPEND LIBCNTPR_ASM_SOURCE
146        except/arm/_abnormal_termination.s
147        except/arm/_except_handler2.s
148        except/arm/_except_handler3.s
149        except/arm/_global_unwind2.s
150        except/arm/_local_unwind2.s
151        except/arm/chkstk_asm.s
152        except/arm/ehandler.c
153        float/arm/_clearfp.s
154        float/arm/_controlfp.s
155        float/arm/_fpreset.s
156        float/arm/_statusfp.s
157        math/arm/atan.s
158        math/arm/atan2.s
159        math/arm/ceil.s
160        math/arm/exp.s
161        math/arm/fabs.s
162        math/arm/fmod.s
163        math/arm/floor.s
164        math/arm/ldexp.s
165        math/arm/log.s
166        math/arm/log10.s
167        math/arm/pow.s
168        math/arm/tan.s
169        math/arm/__dtoi64.s
170        math/arm/__dtou64.s
171        math/arm/__i64tod.s
172        math/arm/__i64tos.s
173        math/arm/__stoi64.s
174        math/arm/__stou64.s
175        math/arm/__u64tod.s
176        math/arm/__u64tos.s
177        math/arm/__rt_sdiv64.s
178        math/arm/__rt_srsh.s
179        math/arm/__rt_udiv64.s
180        setjmp/arm/setjmp.s
181    )
182endif()
183
184if(ARCH STREQUAL "i386")
185    list(APPEND LIBCNTPR_ASM_SOURCE
186        mem/i386/memchr_asm.s
187        mem/i386/memmove_asm.s
188        mem/i386/memset_asm.s
189        string/i386/strcat_asm.s
190        string/i386/strchr_asm.s
191        string/i386/strcmp_asm.s
192        string/i386/strcpy_asm.s
193        string/i386/strlen_asm.s
194        string/i386/strncat_asm.s
195        string/i386/strncmp_asm.s
196        string/i386/strncpy_asm.s
197        string/i386/strnlen_asm.s
198        string/i386/strrchr_asm.s
199        string/i386/wcscat_asm.s
200        string/i386/wcschr_asm.s
201        string/i386/wcscmp_asm.s
202        string/i386/wcscpy_asm.s
203        string/i386/wcslen_asm.s
204        string/i386/wcsncat_asm.s
205        string/i386/wcsncmp_asm.s
206        string/i386/wcsncpy_asm.s
207        string/i386/wcsnlen_asm.s
208        string/i386/wcsrchr_asm.s)
209else()
210    list(APPEND LIBCNTPR_SOURCE
211        math/cos.c
212        math/sin.c
213        math/sqrt.c
214        mem/memchr.c
215        mem/memcpy.c
216        mem/memmove.c
217        mem/memset.c
218        string/strcat.c
219        string/strchr.c
220        string/strcmp.c
221        string/strcpy.c
222        string/strlen.c
223        string/strncat.c
224        string/strncmp.c
225        string/strncpy.c
226        string/strnlen.c
227        string/strrchr.c
228        string/wcscat.c
229        string/wcschr.c
230        string/wcscmp.c
231        string/wcscpy.c
232        string/wcslen.c
233        string/wcsncat.c
234        string/wcsncmp.c
235        string/wcsncpy.c
236        string/wcsnlen.c
237        string/wcsrchr.c)
238endif()
239
240set_source_files_properties(${LIBCNTPR_ASM_SOURCE} PROPERTIES COMPILE_DEFINITIONS "NO_RTL_INLINES;_NTSYSTEM_;_NTDLLBUILD_;_LIBCNT_;__CRT__NO_INLINE;CRTDLL")
241add_asm_files(libcntpr_asm ${LIBCNTPR_ASM_SOURCE})
242
243add_library(libcntpr ${LIBCNTPR_SOURCE} ${libcntpr_asm})
244target_compile_definitions(libcntpr
245 PRIVATE    NO_RTL_INLINES
246    _NTSYSTEM_
247    _NTDLLBUILD_
248    _LIBCNT_
249    __CRT__NO_INLINE
250    CRTDLL)
251add_dependencies(libcntpr psdk asm)
252