1 2include_directories(include/internal/mingw-w64) 3 4if(NOT MSVC) 5 add_compile_flags("-Wno-main") 6 if(LTCG) 7 add_compile_flags("-fno-lto") 8 endif() 9endif() 10 11list(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 44if(MSVC) 45 list(APPEND MSVCRTEX_SOURCE 46 startup/threadSafeInit.c) 47else() 48 list(APPEND MSVCRTEX_SOURCE 49 startup/pseudo-reloc.c 50 startup/pseudo-reloc-list.c) 51endif() 52 53if(ARCH STREQUAL "i386") 54 list(APPEND MSVCRTEX_ASM_SOURCE 55 except/i386/chkstk_asm.s 56 except/i386/chkstk_ms.s 57 math/i386/ftol2_asm.s 58 math/i386/alldiv_asm.s) 59 list(APPEND MSVCRTEX_SOURCE 60 math/i386/ci.c 61 math/i386/cicos.c 62 math/i386/cilog.c 63 math/i386/cipow.c 64 math/i386/cisin.c 65 math/i386/cisqrt.c) 66elseif(ARCH STREQUAL "amd64") 67 list(APPEND MSVCRTEX_ASM_SOURCE 68 except/amd64/chkstk_asm.s 69 except/amd64/chkstk_ms.s) 70elseif(ARCH STREQUAL "arm") 71 list(APPEND MSVCRTEX_SOURCE 72 math/arm/__rt_sdiv.c 73 math/arm/__rt_sdiv64_worker.c 74 math/arm/__rt_udiv.c 75 math/arm/__rt_udiv64_worker.c 76 ) 77 list(APPEND MSVCRTEX_ASM_SOURCE 78 except/arm/chkstk_asm.s 79 math/arm/__dtoi64.s 80 math/arm/__dtou64.s 81 math/arm/__i64tod.s 82 math/arm/__i64tos.s 83 math/arm/__stoi64.s 84 math/arm/__stou64.s 85 math/arm/__u64tod.s 86 math/arm/__u64tos.s 87 math/arm/__rt_sdiv64.s 88 math/arm/__rt_srsh.s 89 math/arm/__rt_udiv64.s 90 ) 91endif() 92 93if(MSVC) 94 list(APPEND MSVCRTEX_SOURCE startup/mscmain.c) 95else() 96 list(APPEND MSVCRTEX_SOURCE startup/gccmain.c) 97endif() 98 99set_source_files_properties(${MSVCRTEX_ASM_SOURCE} PROPERTIES COMPILE_DEFINITIONS "_DLL;_MSVCRTEX_") 100add_asm_files(msvcrtex_asm ${MSVCRTEX_ASM_SOURCE}) 101 102add_library(msvcrtex ${MSVCRTEX_SOURCE} ${msvcrtex_asm}) 103add_target_compile_definitions(msvcrtex _DLL _MSVCRTEX_) 104set_source_files_properties(startup/crtdll.c PROPERTIES COMPILE_DEFINITIONS CRTDLL) 105set_source_files_properties(startup/crtexe.c 106 startup/wcrtexe.c PROPERTIES COMPILE_DEFINITIONS _M_CEE_PURE) 107 108if(NOT MSVC) 109 target_link_libraries(msvcrtex oldnames) 110endif() 111 112if(STACK_PROTECTOR) 113 target_link_libraries(msvcrtex gcc_ssp) 114endif() 115 116add_dependencies(msvcrtex psdk asm) 117