92603584fc0cfe32bcb40ebfe2b756cc40768bb6
[reactos.git] / lib / 3rdparty / mingw / CMakeLists.txt
1
2 include_directories(${REACTOS_SOURCE_DIR}/include/reactos/mingw-w64)
3
4 add_definitions(-D_CRTBLD)
5
6 if(NOT MSVC)
7 add_definitions(-Wno-main)
8 endif(NOT MSVC)
9
10 list(APPEND MINGW_COMMON_SOURCE
11 _newmode.c
12 atonexit.c
13 binmode.c
14 charmax.c
15 cinitexe.c
16 CRT_fp10.c
17 CRT_fp8.c
18 CRT_glob.c
19 crt_handler.c
20 dllentry.c
21 gs_support.c
22 merr.c
23 mingw_helpers.c
24 natstart.c
25 pesect.c
26 pseudo-reloc.c
27 pseudo-reloc-list.c
28 tlsmcrt.c
29 tlsmthread.c
30 tlssup.c
31 tlsthrd.c
32 txtmode.c
33 wildcard.c
34 xncommod.c
35 xthdloc.c
36 xtxtmode.c
37 ofmt_stub.c
38 cxa_pure_virtual.c)
39
40 if(MSVC)
41 list(APPEND MINGW_COMMON_SOURCE mscmain.c)
42 else()
43 list(APPEND MINGW_COMMON_SOURCE gccmain.c)
44 endif()
45
46 add_library(mingw_common ${MINGW_COMMON_SOURCE})
47
48 if(NOT MSVC)
49 target_link_libraries(mingw_common oldnames)
50 endif(NOT MSVC)
51
52 set_target_properties(mingw_common PROPERTIES COMPILE_DEFINITIONS _M_CEE_PURE)
53 add_dependencies(mingw_common psdk)
54
55 add_library(mingw_main crt0_c.c crtexe.c dllargv.c)
56 set_property(TARGET mingw_main PROPERTY COMPILE_DEFINITIONS _DLL __USE_CRTIMP)
57 add_dependencies(mingw_main psdk)
58
59 add_library(mingw_wmain crt0_w.c crtexe.c dllargv.c)
60 set_property(TARGET mingw_wmain PROPERTY COMPILE_DEFINITIONS WPRFLAG UNICODE _UNICODE)
61 add_dependencies(mingw_wmain psdk)
62
63 add_definitions(-DCRTDLL -D_WINDOWS_)
64 add_library(mingw_dllmain crtdll.c dllargv.c)
65 add_dependencies(mingw_dllmain psdk)
66
67 add_custom_command(
68 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/liboldnames.a
69 COMMAND ${MINGW_PREFIX}dlltool --def ${CMAKE_CURRENT_SOURCE_DIR}/moldname-msvcrt.def --kill-at --output-lib ${CMAKE_CURRENT_BINARY_DIR}/liboldnames.a
70 COMMAND ${MINGW_PREFIX}ar -rc ${CMAKE_CURRENT_BINARY_DIR}/liboldnames.a)
71
72 set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/liboldnames.a PROPERTIES GENERATED TRUE)
73
74 add_custom_target(oldnames ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/liboldnames.a)
75
76 add_library(getopt getopt.c)
77 set_property(TARGET getopt PROPERTY COMPILE_DEFINITIONS _DLL1 __USE_CRTIMP)
78 add_dependencies(getopt psdk)