[CMAKE]
[reactos.git] / dll / win32 / msi / CMakeLists.txt
index 3a6ce78..c7d217c 100644 (file)
@@ -1,84 +1,99 @@
 
+include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
+add_definitions(-D__WINESRC__ -DMSIRUNMODE=MSIRUNMODE_T)
+
+remove_definitions(-D_WIN32_WINNT=0x502)
+add_definitions(-D_WIN32_WINNT=0x600)
+
+set_rc_compiler()
 spec2def(msi.dll msi.spec)
 
-if (0)
+generate_idl_iids(msiserver.idl)
 
-include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
-add_definitions(-D__WINESRC__)
+list(APPEND SOURCE
+    action.c
+    alter.c
+    appsearch.c
+       assembly.c
+    automation.c
+    classes.c
+    cond.tab.c
+    create.c
+    custom.c
+    database.c
+    delete.c
+    dialog.c
+    distinct.c
+    drop.c
+    events.c
+    files.c
+    font.c
+    format.c
+    handle.c
+    helpers.c
+    insert.c
+    install.c
+    join.c
+    media.c
+    msi.c
+    msi_main.c
+    msiquery.c
+    package.c
+    preview.c
+    record.c
+    registry.c
+    regsvr.c
+    script.c
+    select.c
+    source.c
+    sql.tab.c
+    storages.c
+    streams.c
+    string.c
+    suminfo.c
+    table.c
+    tokenize.c
+    update.c
+    upgrade.c
+    where.c
+    msi.rc
+    ${CMAKE_CURRENT_BINARY_DIR}/msiserver_i.c
+    ${CMAKE_CURRENT_BINARY_DIR}/msi_stubs.c
+    ${CMAKE_CURRENT_BINARY_DIR}/msi.def)
+
+if(MSVC)
+    set_source_files_properties(custom.c PROPERTIES COMPILE_FLAGS /FImsvchelper.h)
+endif()
 
-add_library(msi SHARED
-            action.c
-            alter.c
-            appsearch.c
-            automation.c
-            classes.c
-            cond.tab.c
-            create.c</file>
-            custom.c</file>
-            database.c</file>
-            delete.c</file>
-            dialog.c</file>
-            distinct.c</file>
-            drop.c</file>
-            events.c</file>
-            files.c</file>
-            font.c</file>
-            format.c</file>
-            handle.c</file>
-            helpers.c</file>
-            insert.c</file>
-            install.c</file>
-            join.c</file>
-            media.c</file>
-            msi.c</file>
-            msi_main.c</file>
-            msiquery.c</file>
-            package.c</file>
-            preview.c</file>
-            record.c</file>
-            registry.c</file>
-            regsvr.c</file>
-            script.c</file>
-            select.c</file>
-            source.c</file>
-            sql.tab.c</file>
-            storages.c</file>
-            streams.c</file>
-            string.c</file>
-            suminfo.c</file>
-            table.c</file>
-            tokenize.c</file>
-            update.c</file>
-            upgrade.c</file>
-            where.c</file>
-            msi.rc</file>
-            ${CMAKE_CURRENT_BINARY_DIR}/msi.def)
+add_library(msi SHARED ${SOURCE})
+
+add_idl_Headers(msi_idlheader msiserver.idl)
+
+add_typelib(msi_tlb msiserver.idl)
 
 set_module_type(msi win32dll)
 
-target_link_libraries(msi wine uuid PSEH_LIB)
+target_link_libraries(msi uuid ${PSEH_LIB} wine)
 
-add_importlibs(msi
-               kernel32
-               urlmon
-               wininet
-               comctl32
-               shell32
-               shlwapi
-               cabinet
-               oleaut32
-               ole32
-               version
-               user32
-               gdi32
-               advapi32
-               odbccp32
-               ntdll)
+add_dependencies(msi msi_idlheader msi_tlb)
 
-#      <library>msiserver_interface</library>
-#      <dependency>msiserver</dependency>
-#      <dependency>msiheader</dependency>
+add_importlibs(msi
+    advapi32
+    cabinet
+    comctl32
+    gdi32
+    odbccp32
+    ole32
+    oleaut32
+    shell32
+    shlwapi
+    urlmon
+    user32
+    version
+    wininet
+    msvcrt
+    kernel32
+    ntdll)
 
-add_cab_target(msi 1)
-endif()
+add_cd_file(TARGET msi DESTINATION reactos/system32 FOR all)
 add_importlib_target(msi.spec)