-remove_definitions(-D_WIN32_WINNT=0x502)
-add_definitions(-D_WIN32_WINNT=0x601)
-
add_definitions(
-D__WINESRC__
+ -D__ROS_LONG64__
-D_WINE
-DLIBXML_STATIC
-DCOM_NO_WINDOWS_H)
add_compile_flags("/FIwine/typeof.h /FImsvc.h")
endif()
-include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
-
-spec2def(msxml3.dll msxml3.spec ADD_IMPORTLIB)
+include_directories(
+ ${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine
+ ${REACTOS_SOURCE_DIR}/sdk/lib/3rdparty/libwin-iconv)
+spec2def(msxml3.dll msxml3.spec ADD_IMPORTLIB NO_PRIVATE_WARNINGS)
add_typelib(msxml3_v1.idl)
list(APPEND SOURCE
domimpl.c
element.c
entityref.c
- factory.c
httprequest.c
main.c
mxnamespace.c
selection.c
stylesheet.c
text.c
- uuid.c
xdr.c
xmldoc.c
xmlelem.c
xmlparser.c
- xmlview.c
- xslpattern.tab.c
- xslpattern.yy.c
- ${CMAKE_CURRENT_BINARY_DIR}/msxml3_stubs.c
- ${CMAKE_CURRENT_BINARY_DIR}/msxml3.def)
+ xmlview.c)
-add_library(msxml3 SHARED ${SOURCE} version.rc)
-
-if(NOT MSVC)
- # FIXME: http://www.cmake.org/Bug/view.php?id=12998
- #allow_warnings(msxml3)
- set_source_files_properties(${SOURCE} PROPERTIES COMPILE_FLAGS "-Wno-error")
-endif()
+list(APPEND PCH_SKIP_SOURCE
+ factory.c
+ uuid.c
+ xslpattern.tab.c
+ xslpattern.yy.c)
-add_idl_headers(xmlparser_idlheader xmlparser.idl)
-add_dependencies(msxml3 xmlparser_idlheader)
+# xslpattern.tab.c/xslpattern.yy.c have been generated with relative file paths...
+set_source_files_properties(xslpattern.tab.c xslpattern.yy.c PROPERTIES COMPILE_FLAGS "-UREACTOS_SOURCE_DIR -DREACTOS_SOURCE_DIR=\"\\\".\\\"\"")
-set_module_type(msxml3 win32dll)
-set_source_files_properties(version.rc PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/msxml3_v1.tlb)
-target_link_libraries(msxml3 libxml2 uuid wine wineldr)
+list(APPEND msxml3_rc_deps
+ ${CMAKE_CURRENT_SOURCE_DIR}/msxml3.manifest
+ ${CMAKE_CURRENT_SOURCE_DIR}/msxml3_v1.rgs
+ ${CMAKE_CURRENT_SOURCE_DIR}/xmlparser.rgs
+ ${CMAKE_CURRENT_BINARY_DIR}/msxml3_v1.tlb)
-add_importlibs(msxml3 urlmon wininet ws2_32 comctl32 shell32 shlwapi cabinet oleaut32 ole32 version user32 gdi32 advapi32 msvcrt kernel32 ntdll)
+set_source_files_properties(version.rc PROPERTIES OBJECT_DEPENDS "${msxml3_rc_deps}")
-# msxml3_v1.tlb needs stdole2.tlb
-add_dependencies(msxml3 stdole2)
+add_library(msxml3 MODULE
+ ${SOURCE}
+ ${PCH_SKIP_SOURCE}
+ version.rc
+ ${CMAKE_CURRENT_BINARY_DIR}/msxml3_stubs.c
+ ${CMAKE_CURRENT_BINARY_DIR}/msxml3.def)
+add_idl_headers(xmlparser_idlheader xmlparser.idl)
+set_module_type(msxml3 win32dll)
+target_link_libraries(msxml3 libxml2 iconv-static uuid wine zlib)
+add_importlibs(msxml3 urlmon ws2_32 shlwapi oleaut32 ole32 user32 msvcrt kernel32 ntdll)
+add_dependencies(msxml3 xmlparser_idlheader stdole2) # msxml3_v1.tlb needs stdole2.tlb
+add_pch(msxml3 precomp.h "${PCH_SKIP_SOURCE}")
add_cd_file(TARGET msxml3 DESTINATION reactos/system32 FOR all)