add_definitions( -D_NTHALDLL_ -D_NTHAL_) include_directories( include ${REACTOS_SOURCE_DIR}/ntoskrnl/include) list(APPEND HAL_GENERIC_SOURCE generic/beep.c generic/cmos.c generic/display.c generic/dma.c generic/drive.c generic/halinit.c generic/memory.c generic/misc.c generic/reboot.c generic/sysinfo.c generic/usage.c) if(ARCH STREQUAL "i386") list(APPEND HAL_GENERIC_SOURCE generic/bios.c generic/portio.c) endif() if(NOT MSVC AND (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}) endif() add_dependencies(lib_hal_generic asm) add_pch(lib_hal_generic include/hal.h) if(ARCH STREQUAL "i386") ##################################### # Generate the pcidata source files in the x86 build # add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pci_classes.c ${CMAKE_CURRENT_BINARY_DIR}/pci_classes.h COMMAND native-bin2c ${CMAKE_CURRENT_SOURCE_DIR}/legacy/bus/pci_classes.ids ${CMAKE_CURRENT_BINARY_DIR}/pci_classes.c ${CMAKE_CURRENT_BINARY_DIR}/pci_classes.h ClassTable INIT_FUNCTION ${CMAKE_CURRENT_SOURCE_DIR}/include/hal.h DEPENDS native-bin2c ${CMAKE_CURRENT_SOURCE_DIR}/legacy/bus/pci_classes.ids) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pci_vendors.c ${CMAKE_CURRENT_BINARY_DIR}/pci_vendors.h COMMAND native-bin2c ${CMAKE_CURRENT_SOURCE_DIR}/legacy/bus/pci_vendors.ids ${CMAKE_CURRENT_BINARY_DIR}/pci_vendors.c ${CMAKE_CURRENT_BINARY_DIR}/pci_vendors.h VendorTable INIT_FUNCTION ${CMAKE_CURRENT_SOURCE_DIR}/include/hal.h DEPENDS native-bin2c ${CMAKE_CURRENT_SOURCE_DIR}/legacy/bus/pci_vendors.ids) ##################################### list(APPEND HAL_LEGACY_SOURCE legacy/bus/bushndlr.c legacy/bus/cmosbus.c legacy/bus/isabus.c legacy/bus/pcibus.c ${CMAKE_CURRENT_BINARY_DIR}/pci_classes.c ${CMAKE_CURRENT_BINARY_DIR}/pci_vendors.c legacy/bus/sysbus.c legacy/bussupp.c legacy/halpnpdd.c legacy/halpcat.c) if(NOT MSVC AND (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) if(MSVC OR (NOT CMAKE_VERSION VERSION_GREATER 2.8.7)) target_link_libraries(lib_hal_legacy lib_hal_generic) endif() endif() list(APPEND HAL_ACPI_SOURCE acpi/halacpi.c acpi/halpnpdd.c acpi/busemul.c legacy/bus/pcibus.c) if(NOT MSVC AND (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) if(MSVC OR (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(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7)) add_library(lib_hal_up OBJECT ${HAL_UP_SOURCE}) endif() list(APPEND HAL_APIC_ASM_SOURCE apic/apictrap.S apic/tsccal.S) list(APPEND HAL_APIC_SOURCE apic/apic.c apic/apictimer.c apic/halinit_apic.c apic/rtctimer.c apic/tsc.c) if(ARCH STREQUAL "i386") list(APPEND HAL_PIC_ASM_SOURCE generic/systimer.S generic/trap.S) list(APPEND HAL_PIC_SOURCE generic/profil.c generic/timer.c up/halinit_up.c up/pic.c) if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7)) add_library(lib_hal_pic OBJECT ${HAL_PIC_SOURCE} ${HAL_PIC_ASM_SOURCE}) add_dependencies(lib_hal_pic asm) endif() list(APPEND MINI_HAL_SOURCE generic/portio.c generic/systimer.S legacy/bus/bushndlr.c legacy/bus/cmosbus.c legacy/bus/isabus.c legacy/bus/pcibus.c legacy/bus/sysbus.c legacy/bussupp.c generic/beep.c generic/bios.c generic/cmos.c generic/dma.c generic/display.c generic/drive.c generic/misc.c generic/profil.c generic/reboot.c generic/spinlock.c generic/sysinfo.c generic/timer.c generic/usage.c up/halinit_mini.c up/pic.c up/processor.c) spec2def(hal.dll ../hal.spec ADD_IMPORTLIB) # hal if(NOT MSVC AND (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_asm_files(hal_asm ${HAL_PIC_ASM_SOURCE} generic/v86.S) add_library(hal SHARED ${HAL_UP_SOURCE} ${HAL_PIC_SOURCE} ${hal_asm} up/halup.rc ${CMAKE_CURRENT_BINARY_DIR}/hal.def) endif() if(MSVC OR (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 asm) set_entrypoint(hal HalInitSystem 8) set_subsystem(hal native) set_image_base(hal 0x00010000) add_cd_file(TARGET hal DESTINATION reactos/system32 NO_CAB FOR all) if(MSVC) add_target_link_flags(hal "/ignore:4216 /ignore:4078") endif() # hal acpi spec2def(halacpi.dll ../hal.spec) if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7)) add_library(halacpi SHARED $ $ $ $ generic/v86.S acpi/halacpi.rc ${CMAKE_CURRENT_BINARY_DIR}/halacpi.def) else() set_source_files_properties(${HAL_PIC_ASM_SOURCE} generic/v86.S PROPERTIES COMPILE_DEFINITIONS "CONFIG_ACPI") add_asm_files(halacpi_asm ${HAL_PIC_ASM_SOURCE} generic/v86.S) add_library(halacpi SHARED ${HAL_UP_SOURCE} ${HAL_PIC_SOURCE} ${halacpi_asm} acpi/halacpi.rc ${CMAKE_CURRENT_BINARY_DIR}/halacpi.def) endif() if(MSVC OR (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 asm) set_entrypoint(halacpi HalInitSystem@8) set_subsystem(halacpi native) set_image_base(halacpi 0x00010000) add_target_compile_definitions(halacpi CONFIG_ACPI) add_cd_file(TARGET halacpi DESTINATION reactos/system32 NO_CAB FOR all) if(MSVC) add_target_link_flags(halacpi "/ignore:4216 /ignore:4078") endif() # mini_hal add_library(mini_hal ${MINI_HAL_SOURCE}) add_target_compile_definitions(mini_hal _BLDR_ _MINIHAL_) add_dependencies(mini_hal psdk bugcodes asm) elseif(ARCH STREQUAL "amd64") spec2def(hal.dll ../hal.spec ADD_IMPORTLIB) list(APPEND HAL_SOURCE ${HAL_GENERIC_SOURCE} ${HAL_ACPI_SOURCE} ${HAL_APIC_SOURCE} generic/spinlock.c amd64/x86bios.c amd64/halinit.c amd64/processor.c ${CMAKE_CURRENT_BINARY_DIR}/hal.def) # hal add_library(hal SHARED ${HAL_SOURCE}) add_pch(hal include/hal.h) add_dependencies(hal psdk bugcodes asm) set_entrypoint(hal HalInitSystem) set_subsystem(hal native) set_image_base(hal 0x00010000) add_importlibs(hal ntoskrnl) target_link_libraries(hal libcntpr) if(MSVC) add_target_link_flags(hal "/ignore:4216") endif() add_cd_file(TARGET hal DESTINATION reactos/system32 NO_CAB FOR all) endif()