[CMAKE] Move toolchain specific handling to set_module_type_toolchain
authorJérôme Gardou <jerome.gardou@reactos.org>
Tue, 23 Mar 2021 08:54:46 +0000 (09:54 +0100)
committerJérôme Gardou <zefklop@users.noreply.github.com>
Tue, 23 Mar 2021 10:18:43 +0000 (11:18 +0100)
+ style fixes

sdk/cmake/CMakeMacros.cmake
sdk/cmake/gcc.cmake
sdk/cmake/msvc.cmake

index 9df6eb6..537a045 100644 (file)
@@ -574,14 +574,6 @@ function(set_module_type MODULE TYPE)
         set_subsystem(${MODULE} windows)
     endif()
 
-    # Set the PE image version numbers from the NT OS version ReactOS is based on
-    if(MSVC)
-        target_link_options(${MODULE} PRIVATE "/VERSION:5.01")
-    else()
-        target_link_options(${MODULE} PRIVATE
-            -Wl,--major-image-version,5 -Wl,--minor-image-version,01 -Wl,--major-os-version,5 -Wl,--minor-os-version,01)
-    endif()
-
     # Set unicode definitions
     if(__module_UNICODE)
         target_compile_definitions(${MODULE} PRIVATE UNICODE _UNICODE)
@@ -643,7 +635,7 @@ function(set_module_type MODULE TYPE)
         endif()
     endif()
 
-    if (TYPE STREQUAL kernel)
+    if(TYPE STREQUAL kernel)
         # Kernels are executables with exports
         set_property(TARGET ${MODULE} PROPERTY ENABLE_EXPORTS TRUE)
         set_target_properties(${MODULE} PROPERTIES DEFINE_SYMBOL "")
index cd9585d..1b5604b 100644 (file)
@@ -280,13 +280,20 @@ function(set_image_base MODULE IMAGE_BASE)
 endfunction()
 
 function(set_module_type_toolchain MODULE TYPE)
-    if (TYPE IN_LIST KERNEL_MODULE_TYPES)
+    # Set the PE image version numbers from the NT OS version ReactOS is based on
+    target_link_options(${MODULE} PRIVATE
+        -Wl,--major-image-version,5 -Wl,--minor-image-version,01 -Wl,--major-os-version,5 -Wl,--minor-os-version,01)
+
+    if(TYPE IN_LIST KERNEL_MODULE_TYPES)
         target_link_options(${MODULE} PRIVATE -Wl,--exclude-all-symbols,-file-alignment=0x1000,-section-alignment=0x1000)
+
         if(${TYPE} STREQUAL "wdmdriver")
             target_link_options(${MODULE} PRIVATE "-Wl,--wdmdriver")
         endif()
+
         # Place INIT &.rsrc section at the tail of the module, before .reloc
         add_linker_script(${MODULE} ${REACTOS_SOURCE_DIR}/sdk/cmake/init-section.lds)
+
         # Fixup section characteristics
         #  - Remove flags that LD overzealously puts (alignment flag, Initialized flags for code sections)
         #  - INIT section is made discardable
@@ -294,6 +301,7 @@ function(set_module_type_toolchain MODULE TYPE)
         #  - PAGE & .edata sections are made pageable.
         add_custom_command(TARGET ${MODULE} POST_BUILD
             COMMAND native-pefixup --${TYPE} $<TARGET_FILE:${MODULE}>)
+
         # Believe it or not, cmake doesn't do that
         set_property(TARGET ${MODULE} APPEND PROPERTY LINK_DEPENDS $<TARGET_PROPERTY:native-pefixup,IMPORTED_LOCATION>)
     endif()
index fd716b9..43a2c8a 100644 (file)
@@ -249,6 +249,9 @@ function(set_image_base MODULE IMAGE_BASE)
 endfunction()
 
 function(set_module_type_toolchain MODULE TYPE)
+    # Set the PE image version numbers from the NT OS version ReactOS is based on
+    target_link_options(${MODULE} PRIVATE "/VERSION:5.01")
+
     if((TYPE STREQUAL win32dll) OR (TYPE STREQUAL win32ocx) OR (TYPE STREQUAL cpl))
         target_link_options(${MODULE} PRIVATE /DLL)
     elseif(TYPE IN_LIST KERNEL_MODULE_TYPES)
@@ -261,7 +264,7 @@ function(set_module_type_toolchain MODULE TYPE)
             target_link_options(${MODULE} PRIVATE /DRIVER:WDM)
         elseif (TYPE STREQUAL kernel)
             # Mark .rsrc section as non-disposable non-pageable, as bugcheck code needs to access it
-            target_link_options(${MODULE} PRIVATE /SECTION:.rsrc,!DP )
+            target_link_options(${MODULE} PRIVATE /SECTION:.rsrc,!DP)
         endif()
     endif()