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