xref: /reactos/dll/win32/msxml3/CMakeLists.txt (revision 34593d93)
1
2add_definitions(
3    -D__WINESRC__
4    -D__ROS_LONG64__
5    -D_WINE
6    -DLIBXML_STATIC
7    -DCOM_NO_WINDOWS_H)
8
9include_directories(
10    ${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine
11    ${REACTOS_SOURCE_DIR}/sdk/lib/3rdparty/libwin-iconv)
12
13spec2def(msxml3.dll msxml3.spec ADD_IMPORTLIB NO_PRIVATE_WARNINGS)
14add_typelib(msxml3_v1.idl)
15
16list(APPEND SOURCE
17    attribute.c
18    bsc.c
19    cdata.c
20    comment.c
21    dispex.c
22    docfrag.c
23    doctype.c
24    domdoc.c
25    domimpl.c
26    element.c
27    entityref.c
28    httprequest.c
29    main.c
30    mxnamespace.c
31    mxwriter.c
32    node.c
33    nodelist.c
34    nodemap.c
35    parseerror.c
36    pi.c
37    saxreader.c
38    schema.c
39    selection.c
40    stylesheet.c
41    text.c
42    xdr.c
43    xmldoc.c
44    xmlelem.c
45    xmlparser.c
46    xmlview.c)
47
48FLEX_TARGET(xslpattern_scanner xslpattern.l ${CMAKE_CURRENT_BINARY_DIR}/xslpattern.yy.c)
49BISON_TARGET(xslpattern_parser xslpattern.y ${CMAKE_CURRENT_BINARY_DIR}/xslpattern.tab.c COMPILE_FLAGS "-p xslpattern_")
50ADD_FLEX_BISON_DEPENDENCY(xslpattern_scanner xslpattern_parser)
51
52list(APPEND PCH_SKIP_SOURCE
53    factory.c
54    uuid.c
55    ${FLEX_xslpattern_scanner_OUTPUTS}
56    ${BISON_xslpattern_parser_OUTPUTS})
57
58list(APPEND msxml3_rc_deps
59    ${CMAKE_CURRENT_SOURCE_DIR}/msxml3.manifest
60    ${CMAKE_CURRENT_SOURCE_DIR}/msxml3_v1.rgs
61    ${CMAKE_CURRENT_SOURCE_DIR}/xmlparser.rgs
62    ${CMAKE_CURRENT_BINARY_DIR}/msxml3_v1.tlb)
63
64set_source_files_properties(version.rc PROPERTIES OBJECT_DEPENDS "${msxml3_rc_deps}")
65
66add_library(msxml3 MODULE
67    ${SOURCE}
68    ${PCH_SKIP_SOURCE}
69    version.rc
70    ${CMAKE_CURRENT_BINARY_DIR}/msxml3_stubs.c
71    ${CMAKE_CURRENT_BINARY_DIR}/msxml3.def)
72
73add_idl_headers(xmlparser_idlheader xmlparser.idl)
74set_module_type(msxml3 win32dll)
75target_link_libraries(msxml3 libxml2 iconv-static uuid wine zlib)
76
77if(MSVC)
78    target_compile_options(msxml3 PRIVATE /FIwine/typeof.h /FImsvc.h)
79endif()
80
81add_importlibs(msxml3 urlmon ws2_32 shlwapi oleaut32 ole32 user32 msvcrt kernel32 ntdll)
82add_dependencies(msxml3 xmlparser_idlheader stdole2) # msxml3_v1.tlb needs stdole2.tlb
83add_pch(msxml3 precomp.h "${PCH_SKIP_SOURCE}")
84add_cd_file(TARGET msxml3 DESTINATION reactos/system32 FOR all)
85