[CMAKE]
[reactos.git] / lib / sdk / crt / CMakeLists.txt
1
2 include_directories(include)
3
4 add_definitions(-D_CRTBLD)
5
6 file(GLOB_RECURSE CRT_SOURCE "*.c")
7
8 if(NOT ARCH MATCHES i386)
9 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/except/i386/unwind.c)
10 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/*.c)
11 if(NOT ARCH MATCHES amd64)
12 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/float/i386/*.c)
13 endif(NOT ARCH MATCHES amd64)
14 else(NOT ARCH MATCHES i386)
15 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/math/stubs.c)
16 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/mem/memchr.c)
17 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/mem/memcpy.c)
18 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/mem/memmove.c)
19 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/mem/memset.c)
20 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/strcat.c)
21 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/strchr.c)
22 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/strcmp.c)
23 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/strcpy.c)
24 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/strlen.c)
25 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/strncat.c)
26 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/strncmp.c)
27 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/strncpy.c)
28 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/strnlen.c)
29 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/strrchr.c)
30 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/wcscat.c)
31 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/wcschr.c)
32 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/wcscmp.c)
33 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/wcscpy.c)
34 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/wcslen.c)
35 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/wcsncat.c)
36 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/wcsncmp.c)
37 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/wcsncpy.c)
38 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/wcsnlen.c)
39 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/wcsrchr.c)
40 endif(NOT ARCH MATCHES i386)
41
42 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/math/abs.c)
43 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/math/cos.c)
44 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/math/j0_y0.c)
45 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/math/j1_y1.c)
46 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/math/jn_yn.c)
47 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/math/labs.c)
48 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/math/rand_nt.c)
49 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/math/sin.c)
50 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/stdio/findgen.c)
51 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/stdlib/atold.c)
52 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/stdlib/malloc.c)
53 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/mbstowcs_nt.c)
54 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/strtold.c)
55 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/wcstombs_nt.c)
56 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/witoa.c)
57 list(REMOVE_ITEM CRT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/string/witow.c)
58
59 file(GLOB_RECURSE CRT_ASM_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/except/${ARCH}/*.s"
60 "${CMAKE_CURRENT_SOURCE_DIR}/math/${ARCH}/*.s"
61 "${CMAKE_CURRENT_SOURCE_DIR}/mem/${ARCH}/*.s"
62 "${CMAKE_CURRENT_SOURCE_DIR}/string/${ARCH}/*.s"
63 "${CMAKE_CURRENT_SOURCE_DIR}/setjmp/${ARCH}/*.s")
64
65 add_library(crt ${CRT_SOURCE} ${CRT_ASM_SOURCE} ${CMAKE_CURRENT_BINARY_DIR}/crt_precomp.h.gch)
66
67 set_property(TARGET crt PROPERTY COMPILE_DEFINITIONS __MINGW_IMPORT=extern USE_MSVCRT_PREFIX _MSVCRT_LIB_ _MSVCRT_ _MT)
68 add_pch(crt ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${CRT_SOURCE})
69 add_dependencies(crt psdk)
70
71 if(ARCH MATCHES i386)
72 set(LIBCNTPR_SOURCE
73 ${CMAKE_CURRENT_SOURCE_DIR}/except/i386/chkstk_asm.s
74 ${CMAKE_CURRENT_SOURCE_DIR}/except/i386/seh.s
75 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/alldiv_asm.s
76 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/alldvrm_asm.s
77 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/allmul_asm.s
78 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/allrem_asm.s
79 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/allshl_asm.s
80 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/allshr_asm.s
81 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/atan_asm.s
82 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/aulldiv_asm.s
83 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/aulldvrm_asm.s
84 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/aullrem_asm.s
85 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/aullshr_asm.s
86 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/ceil_asm.s
87 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/cos_asm.s
88 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/fabs_asm.s
89 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/floor_asm.s
90 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/ftol_asm.s
91 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/log_asm.s
92 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/pow_asm.s
93 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/sin_asm.s
94 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/sqrt_asm.s
95 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/tan_asm.s
96 ${CMAKE_CURRENT_SOURCE_DIR}/math/i386/ci.c
97 ${CMAKE_CURRENT_SOURCE_DIR}/math/abs.c
98 ${CMAKE_CURRENT_SOURCE_DIR}/math/div.c
99 ${CMAKE_CURRENT_SOURCE_DIR}/math/labs.c
100 ${CMAKE_CURRENT_SOURCE_DIR}/math/rand_nt.c
101 ${CMAKE_CURRENT_SOURCE_DIR}/mem/i386/memchr_asm.s
102 ${CMAKE_CURRENT_SOURCE_DIR}/mem/i386/memcpy_asm.s
103 ${CMAKE_CURRENT_SOURCE_DIR}/mem/i386/memmove_asm.s
104 ${CMAKE_CURRENT_SOURCE_DIR}/mem/i386/memset_asm.s
105 ${CMAKE_CURRENT_SOURCE_DIR}/mem/memccpy.c
106 ${CMAKE_CURRENT_SOURCE_DIR}/mem/memcmp.c
107 ${CMAKE_CURRENT_SOURCE_DIR}/mem/memicmp.c
108 ${CMAKE_CURRENT_SOURCE_DIR}/search/bsearch.c
109 ${CMAKE_CURRENT_SOURCE_DIR}/search/lfind.c
110 ${CMAKE_CURRENT_SOURCE_DIR}/setjmp/i386/setjmp.s
111 ${CMAKE_CURRENT_SOURCE_DIR}/stdlib/qsort.c
112 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/strcat_asm.s
113 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/strchr_asm.s
114 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/strcmp_asm.s
115 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/strcpy_asm.s
116 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/strlen_asm.s
117 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/strncat_asm.s
118 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/strncmp_asm.s
119 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/strncpy_asm.s
120 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/strnlen_asm.s
121 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/strrchr_asm.s
122 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/wcscat_asm.s
123 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/wcschr_asm.s
124 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/wcscmp_asm.s
125 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/wcscpy_asm.s
126 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/wcslen_asm.s
127 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/wcsncat_asm.s
128 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/wcsncmp_asm.s
129 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/wcsncpy_asm.s
130 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/wcsnlen_asm.s
131 ${CMAKE_CURRENT_SOURCE_DIR}/string/i386/wcsrchr_asm.s
132 ${CMAKE_CURRENT_SOURCE_DIR}/string/ctype.c
133 ${CMAKE_CURRENT_SOURCE_DIR}/string/scanf.c
134 ${CMAKE_CURRENT_SOURCE_DIR}/string/strcspn.c
135 ${CMAKE_CURRENT_SOURCE_DIR}/string/stricmp.c
136 ${CMAKE_CURRENT_SOURCE_DIR}/string/strnicmp.c
137 ${CMAKE_CURRENT_SOURCE_DIR}/string/strlwr.c
138 ${CMAKE_CURRENT_SOURCE_DIR}/string/strrev.c
139 ${CMAKE_CURRENT_SOURCE_DIR}/string/strset.c
140 ${CMAKE_CURRENT_SOURCE_DIR}/string/strstr.c
141 ${CMAKE_CURRENT_SOURCE_DIR}/string/strupr.c
142 ${CMAKE_CURRENT_SOURCE_DIR}/string/strpbrk.c
143 ${CMAKE_CURRENT_SOURCE_DIR}/string/strspn.c
144 ${CMAKE_CURRENT_SOURCE_DIR}/string/atoi64.c
145 ${CMAKE_CURRENT_SOURCE_DIR}/string/atoi.c
146 ${CMAKE_CURRENT_SOURCE_DIR}/string/atol.c
147 ${CMAKE_CURRENT_SOURCE_DIR}/string/itoa.c
148 ${CMAKE_CURRENT_SOURCE_DIR}/string/itow.c
149 ${CMAKE_CURRENT_SOURCE_DIR}/string/mbstowcs_nt.c
150 ${CMAKE_CURRENT_SOURCE_DIR}/string/splitp.c
151 ${CMAKE_CURRENT_SOURCE_DIR}/string/strtol.c
152 ${CMAKE_CURRENT_SOURCE_DIR}/string/strtoul.c
153 ${CMAKE_CURRENT_SOURCE_DIR}/string/strtoull.c
154 ${CMAKE_CURRENT_SOURCE_DIR}/string/wcs.c
155 ${CMAKE_CURRENT_SOURCE_DIR}/string/wcstol.c
156 ${CMAKE_CURRENT_SOURCE_DIR}/string/wcstombs_nt.c
157 ${CMAKE_CURRENT_SOURCE_DIR}/string/wcstoul.c
158 ${CMAKE_CURRENT_SOURCE_DIR}/string/wsplitp.c
159 ${CMAKE_CURRENT_SOURCE_DIR}/string/wtoi64.c
160 ${CMAKE_CURRENT_SOURCE_DIR}/string/wtoi.c
161 ${CMAKE_CURRENT_SOURCE_DIR}/string/wtol.c
162 ${CMAKE_CURRENT_SOURCE_DIR}/wstring/wcsicmp.c
163 ${CMAKE_CURRENT_SOURCE_DIR}/wstring/wcslwr.c
164 ${CMAKE_CURRENT_SOURCE_DIR}/wstring/wcsnicmp.c
165 ${CMAKE_CURRENT_SOURCE_DIR}/wstring/wcsupr.c
166 ${CMAKE_CURRENT_SOURCE_DIR}/wstring/wcscspn.c
167 ${CMAKE_CURRENT_SOURCE_DIR}/wstring/wcsspn.c
168 ${CMAKE_CURRENT_SOURCE_DIR}/wstring/wcsstr.c
169 )
170 else()
171 #TBD
172 endif()
173
174 add_library(libcntpr ${LIBCNTPR_SOURCE})
175 set_property(TARGET libcntpr PROPERTY COMPILE_DEFINITIONS NO_RTL_INLINES _NTSYSTEM_ _NTDLLBUILD_ _LIBCNT_ __CRT__NO_INLINE)
176 add_dependencies(libcntpr psdk)