From 56747bcf8f4cb8e26ec50a2a65416e4ac7d3ccfa Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Tue, 17 Jul 2012 14:11:49 +0000 Subject: [PATCH] [HAL] * Leverage the object library option provided by CMake 2.8.8+ which will speed up the build even further. * Compared strings using STREQUAL. * These wrapping conditions will go away as soon as we ship the new BE. svn path=/trunk/; revision=56909 --- reactos/hal/halx86/CMakeLists.txt | 104 +++++++++++++++++++++++------- 1 file changed, 81 insertions(+), 23 deletions(-) diff --git a/reactos/hal/halx86/CMakeLists.txt b/reactos/hal/halx86/CMakeLists.txt index 052a046cb00..aa636d03751 100644 --- a/reactos/hal/halx86/CMakeLists.txt +++ b/reactos/hal/halx86/CMakeLists.txt @@ -20,14 +20,19 @@ list(APPEND HAL_GENERIC_SOURCE generic/sysinfo.c generic/usage.c) -if(ARCH MATCHES i386) +if(ARCH STREQUAL i386) list(APPEND HAL_GENERIC_SOURCE generic/bios.c generic/portio.c) endif() -add_library(lib_hal_generic ${HAL_GENERIC_SOURCE}) -add_dependencies(lib_hal_generic asm) +if(CMAKE_VERSION VERSION_GREATER 2.8.7) + add_library(lib_hal_generic OBJECT ${HAL_GENERIC_SOURCE}) +else() + add_library(lib_hal_generic ${HAL_GENERIC_SOURCE}) + add_dependencies(lib_hal_generic asm) +endif() + add_pch(lib_hal_generic include/hal.h) list(APPEND HAL_LEGACY_SOURCE @@ -41,9 +46,17 @@ list(APPEND HAL_LEGACY_SOURCE legacy/halpnpdd.c legacy/halpcat.c) -add_library(lib_hal_legacy ${HAL_LEGACY_SOURCE}) +if(CMAKE_VERSION VERSION_GREATER 2.8.7) + add_library(lib_hal_legacy OBJECT ${HAL_LEGACY_SOURCE}) +else() + add_library(lib_hal_legacy ${HAL_LEGACY_SOURCE}) +endif() + #add_pch(lib_hal_legacy include/hal.h) -target_link_libraries(lib_hal_legacy lib_hal_generic) + +if(NOT CMAKE_VERSION VERSION_GREATER 2.8.7) + target_link_libraries(lib_hal_legacy lib_hal_generic) +endif() list(APPEND HAL_ACPI_SOURCE acpi/halacpi.c @@ -51,14 +64,25 @@ list(APPEND HAL_ACPI_SOURCE acpi/busemul.c legacy/bus/pcibus.c) -add_library(lib_hal_acpi ${HAL_ACPI_SOURCE}) +if(CMAKE_VERSION VERSION_GREATER 2.8.7) + add_library(lib_hal_acpi OBJECT ${HAL_ACPI_SOURCE}) +else() + add_library(lib_hal_acpi ${HAL_ACPI_SOURCE}) +endif() #add_pch(lib_hal_acpi include/hal.h) -target_link_libraries(lib_hal_acpi lib_hal_generic) + +if(NOT CMAKE_VERSION VERSION_GREATER 2.8.7) + target_link_libraries(lib_hal_acpi lib_hal_generic) +endif() list(APPEND HAL_UP_SOURCE generic/spinlock.c up/processor.c) +if(CMAKE_VERSION VERSION_GREATER 2.8.7) + add_library(lib_hal_up OBJECT ${HAL_UP_SOURCE}) +endif() + list(APPEND HAL_PIC_SOURCE generic/profil.c generic/timer.c @@ -67,6 +91,10 @@ list(APPEND HAL_PIC_SOURCE up/halinit_up.c up/pic.c) +if(CMAKE_VERSION VERSION_GREATER 2.8.7) + add_library(lib_hal_pic OBJECT ${HAL_PIC_SOURCE}) +endif() + list(APPEND HAL_APIC_SOURCE apic/apic.c apic/apictimer.c @@ -76,7 +104,7 @@ list(APPEND HAL_APIC_SOURCE apic/tsc.c apic/tsccal.S) -if(ARCH MATCHES i386) +if(ARCH STREQUAL i386) list(APPEND MINI_HAL_SOURCE generic/portio.c generic/systimer.S @@ -106,13 +134,28 @@ if(ARCH MATCHES i386) spec2def(hal.dll ../hal.spec ADD_IMPORTLIB) # hal - add_library(hal SHARED - ${HAL_UP_SOURCE} - ${HAL_PIC_SOURCE} - generic/v86.S - up/halup.rc - ${CMAKE_CURRENT_BINARY_DIR}/hal.def) - target_link_libraries(hal lib_hal_generic lib_hal_legacy libcntpr) + if(CMAKE_VERSION VERSION_GREATER 2.8.7) + add_library(hal SHARED + $ + $ + $ + $ + generic/v86.S + up/halup.rc + ${CMAKE_CURRENT_BINARY_DIR}/hal.def) + else() + add_library(hal SHARED + ${HAL_UP_SOURCE} + ${HAL_PIC_SOURCE} + generic/v86.S + up/halup.rc + ${CMAKE_CURRENT_BINARY_DIR}/hal.def) + endif() + + if(NOT CMAKE_VERSION VERSION_GREATER 2.8.7) + target_link_libraries(hal lib_hal_generic lib_hal_legacy) + endif() + target_link_libraries(hal libcntpr) add_importlibs(hal ntoskrnl) #add_pch(hal include/hal.h) add_dependencies(hal psdk bugcodes) @@ -126,13 +169,28 @@ if(ARCH MATCHES i386) # hal acpi spec2def(halacpi.dll ../hal.spec) - add_library(halacpi SHARED - ${HAL_UP_SOURCE} - ${HAL_PIC_SOURCE} - generic/v86.S - acpi/halacpi.rc - ${CMAKE_CURRENT_BINARY_DIR}/halacpi.def) - target_link_libraries(halacpi lib_hal_generic lib_hal_acpi libcntpr) + if(CMAKE_VERSION VERSION_GREATER 2.8.7) + add_library(halacpi SHARED + $ + $ + $ + $ + generic/v86.S + acpi/halacpi.rc + ${CMAKE_CURRENT_BINARY_DIR}/halacpi.def) + else() + add_library(halacpi SHARED + ${HAL_UP_SOURCE} + ${HAL_PIC_SOURCE} + generic/v86.S + acpi/halacpi.rc + ${CMAKE_CURRENT_BINARY_DIR}/halacpi.def) + endif() + + if(NOT CMAKE_VERSION VERSION_GREATER 2.8.7) + target_link_libraries(halacpi lib_hal_generic lib_hal_acpi) + endif() + target_link_libraries(halacpi libcntpr) add_importlibs(halacpi ntoskrnl) add_dependencies(halacpi psdk bugcodes) set_entrypoint(halacpi HalInitSystem@8) @@ -149,7 +207,7 @@ if(ARCH MATCHES i386) add_target_compile_definitions(mini_hal _BLDR_ _MINIHAL_) add_dependencies(mini_hal psdk bugcodes asm) -elseif(ARCH MATCHES amd64) +elseif(ARCH STREQUAL amd64) spec2def(hal.dll ../hal.spec ADD_IMPORTLIB)