[CMAKE]
[reactos.git] / dll / win32 / advapi32 / CMakeLists.txt
index 124566f..cb2aa80 100644 (file)
@@ -1,7 +1,8 @@
 
-set(CMAKE_C_CREATE_SHARED_LIBRARY "<CMAKE_C_COMPILER> <CMAKE_SHARED_LIBRARY_C_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
+set_unicode()
+
+spec2def(advapi32.dll advapi32.spec)
 
-add_definitions(-DUNICODE -D_UNICODE)
 add_definitions(-D_ADVAPI32_)
 
 remove_definitions(-D_WIN32_WINNT=0x502)
@@ -9,29 +10,61 @@ add_definitions(-D_WIN32_WINNT=0x600)
 
 include_directories(${REACTOS_BINARY_DIR}/include/reactos/idl)
 
-file(GLOB_RECURSE SOURCE *.c)
-
-set_source_files_properties(${REACTOS_BINARY_DIR}/include/reactos/idl/svcctl_c.c
-    ${REACTOS_BINARY_DIR}/include/reactos/idl/lsa_c.c
-    ${REACTOS_BINARY_DIR}/include/reactos/idl/eventlogrpc_c.c
-    PROPERTIES GENERATED TRUE)
+list(APPEND SOURCE
+    crypt/crypt.c
+    crypt/crypt_arc4.c
+    crypt/crypt_des.c
+    crypt/crypt_lmhash.c
+    crypt/crypt_md4.c
+    crypt/crypt_md5.c
+    crypt/crypt_sha.c
+    misc/dllmain.c
+    misc/efs.c
+    misc/hwprofiles.c
+    misc/logon.c
+    misc/msi.c
+    misc/shutdown.c
+    misc/sysfunc.c
+    misc/trace.c
+    reg/reg.c
+    sec/ac.c
+    sec/audit.c
+    sec/cred.c
+    sec/lsa.c
+    sec/misc.c
+    sec/sec.c
+    sec/sid.c
+    sec/trustee.c
+    service/eventlog.c
+    service/rpc.c
+    service/scm.c
+    service/sctrl.c
+    token/privilege.c
+    token/token.c
+    advapi32_stubs.c
+    advapi32.rc
+    ${CMAKE_CURRENT_BINARY_DIR}/advapi32.def)
+    
+if(NOT MSVC)
+    set_source_files_properties(advapi32.def PROPERTIES EXTERNAL_OBJECT TRUE)
+endif()
 
 add_library(advapi32 SHARED
-    ${SOURCE}
-    ${CMAKE_CURRENT_SOURCE_DIR}/advapi32.rc
     ${CMAKE_CURRENT_BINARY_DIR}/advapi32_advapi32.h.gch
-    ${REACTOS_BINARY_DIR}/include/reactos/idl/svcctl_c.c
-    ${REACTOS_BINARY_DIR}/include/reactos/idl/lsa_c.c
-    ${REACTOS_BINARY_DIR}/include/reactos/idl/eventlogrpc_c.c)
+    ${SOURCE})
 
-set_target_properties(advapi32 PROPERTIES LINK_FLAGS "-Wl,-entry,_DllMain@12")
+set_module_type(advapi32 win32dll)
 
-target_link_libraries(advapi32 ${CMAKE_CURRENT_SOURCE_DIR}/advapi32.def
+target_link_libraries(advapi32
+    svcctl_client
+    lsa_client
+    eventlogrpc_client
     wine
-    pseh
-    rpcrt4
-    ${REACTOS_SOURCE_DIR}/dll/win32/kernel32/libkernel32.a
-    ${REACTOS_SOURCE_DIR}/dll/ntdll/libntdll.a)
+    ${PSEH_LIB})
+
+add_importlibs(advapi32 rpcrt4 kernel32 ntdll msvcrt)
 
 add_pch(advapi32 ${CMAKE_CURRENT_SOURCE_DIR}/advapi32.h ${SOURCE})
-add_dependencies(advapi32 svcctl_client lsa_client eventlogrpc_client version)
+add_cab_target(advapi32 1)
+add_importlib_target(advapi32.spec libntdll)
+