Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / sdk / lib / crt / msvcrtex.cmake
1
2 include_directories(include/internal/mingw-w64)
3
4 if(NOT MSVC)
5 add_compile_flags("-Wno-main")
6 if(LTCG)
7 add_compile_flags("-fno-lto")
8 endif()
9 endif()
10
11 list(APPEND MSVCRTEX_SOURCE
12 startup/crtexe.c
13 startup/wcrtexe.c
14 startup/crt_handler.c
15 startup/crtdll.c
16 startup/_newmode.c
17 startup/wildcard.c
18 startup/tlssup.c
19 startup/mingw_helpers.c
20 startup/natstart.c
21 startup/charmax.c
22 startup/merr.c
23 startup/atonexit.c
24 startup/dllmain.c
25 startup/txtmode.c
26 startup/pesect.c
27 startup/tlsmcrt.c
28 startup/tlsthrd.c
29 startup/tlsmthread.c
30 startup/cinitexe.c
31 startup/gs_support.c
32 startup/dll_argv.c
33 startup/dllargv.c
34 startup/wdllargv.c
35 startup/crt0_c.c
36 startup/crt0_w.c
37 startup/dllentry.c
38 startup/reactos.c
39 misc/fltused.c
40 misc/isblank.c
41 misc/iswblank.c
42 misc/ofmt_stub.c)
43
44 if(NOT MSVC)
45 list(APPEND MSVCRTEX_SOURCE
46 startup/pseudo-reloc.c
47 startup/pseudo-reloc-list.c)
48 endif()
49
50 if(ARCH STREQUAL "i386")
51 list(APPEND MSVCRTEX_ASM_SOURCE
52 except/i386/chkstk_asm.s
53 except/i386/chkstk_ms.s
54 math/i386/ftol2_asm.s
55 math/i386/alldiv_asm.s)
56 list(APPEND MSVCRTEX_SOURCE
57 math/i386/ci.c
58 math/i386/cicos.c
59 math/i386/cilog.c
60 math/i386/cipow.c
61 math/i386/cisin.c
62 math/i386/cisqrt.c)
63 elseif(ARCH STREQUAL "amd64")
64 list(APPEND MSVCRTEX_ASM_SOURCE
65 except/amd64/chkstk_asm.s
66 except/amd64/chkstk_ms.s)
67 elseif(ARCH STREQUAL "arm")
68 list(APPEND MSVCRTEX_SOURCE
69 math/arm/__rt_sdiv.c
70 math/arm/__rt_sdiv64_worker.c
71 math/arm/__rt_udiv.c
72 math/arm/__rt_udiv64_worker.c
73 )
74 list(APPEND MSVCRTEX_ASM_SOURCE
75 except/arm/chkstk_asm.s
76 math/arm/__dtoi64.s
77 math/arm/__dtou64.s
78 math/arm/__i64tod.s
79 math/arm/__i64tos.s
80 math/arm/__stoi64.s
81 math/arm/__stou64.s
82 math/arm/__u64tod.s
83 math/arm/__u64tos.s
84 math/arm/__rt_sdiv64.s
85 math/arm/__rt_srsh.s
86 math/arm/__rt_udiv64.s
87 )
88 endif()
89
90 if(MSVC)
91 list(APPEND MSVCRTEX_SOURCE startup/mscmain.c)
92 else()
93 list(APPEND MSVCRTEX_SOURCE startup/gccmain.c)
94 endif()
95
96 set_source_files_properties(${MSVCRTEX_ASM_SOURCE} PROPERTIES COMPILE_DEFINITIONS "_DLL;_MSVCRTEX_")
97 add_asm_files(msvcrtex_asm ${MSVCRTEX_ASM_SOURCE})
98
99 add_library(msvcrtex ${MSVCRTEX_SOURCE} ${msvcrtex_asm})
100 add_target_compile_definitions(msvcrtex _DLL _MSVCRTEX_)
101 set_source_files_properties(startup/crtdll.c PROPERTIES COMPILE_DEFINITIONS CRTDLL)
102 set_source_files_properties(startup/crtexe.c
103 startup/wcrtexe.c PROPERTIES COMPILE_DEFINITIONS _M_CEE_PURE)
104
105 if(NOT MSVC)
106 target_link_libraries(msvcrtex oldnames)
107 endif()
108
109 if(STACK_PROTECTOR)
110 target_link_libraries(msvcrtex gcc_ssp)
111 endif()
112
113 add_dependencies(msvcrtex psdk asm)