-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)
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)
+