[CMAKE]
[reactos.git] / dll / win32 / kernel32 / CMakeLists.txt
index c0697bb..e94f513 100644 (file)
@@ -1,6 +1,4 @@
 
-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>")
-
 add_definitions(-D_KERNEL32_)
 
 remove_definitions(-D_WIN32_WINNT=0x502)
@@ -8,6 +6,10 @@ add_definitions(-D_WIN32_WINNT=0x600)
 
 include_directories(${REACTOS_SOURCE_DIR}/include/reactos/subsys)
 
+set_rc_compiler()
+
+spec2def(kernel32.dll kernel32.spec)
+
 list(APPEND SOURCE
     debug/debugger.c
     debug/output.c
@@ -94,20 +96,30 @@ list(APPEND SOURCE
     thread/fls.c
     thread/thread.c
     thread/tls.c
-    thread/${ARCH}/fiber.S
-    thread/${ARCH}/thread.S
     kernel32.rc
-    kernel32_stubs.c)
+    ${CMAKE_CURRENT_BINARY_DIR}/kernel32.def)
+
+if(ARCH MATCHES i386)
+list(APPEND SOURCE
+    thread/i386/fiber.S
+    thread/i386/thread.S)
+elseif(ARCH MATCHES amd64)
+list(APPEND SOURCE
+    thread/amd64/fiber.S
+    thread/amd64/thread.S)
+endif(ARCH MATCHES i386)
 
 add_library(kernel32 SHARED
-    ${SOURCE}
-    ${CMAKE_CURRENT_BINARY_DIR}/kernel32_k32.h.gch)
+    ${CMAKE_CURRENT_BINARY_DIR}/kernel32_k32.h.gch
+    ${SOURCE})
 
-set_target_properties(kernel32 PROPERTIES LINK_FLAGS "-Wl,-entry,_DllMain@12")
+set_entrypoint(kernel32 DllMain@12)
+set_image_base(kernel32 ${baseaddress_kernel32})
 
-target_link_libraries(kernel32 ${CMAKE_CURRENT_SOURCE_DIR}/kernel32.def
-    pseh
-    ${REACTOS_SOURCE_DIR}/dll/ntdll/libntdll.a)
+target_link_libraries(kernel32 ${PSEH_LIB})
 
+add_importlibs(kernel32 ntdll)
 add_pch(kernel32 ${CMAKE_CURRENT_SOURCE_DIR}/k32.h ${SOURCE})
-add_dependencies(kernel32 errcodes version)
+add_dependencies(kernel32 psdk errcodes asm)
+add_cd_file(TARGET kernel32 DESTINATION reactos/system32 FOR all)
+add_importlib_target(kernel32.spec)