summaryrefslogtreecommitdiffstats
path: root/arch/x86/cpuid
diff options
context:
space:
mode:
authorAlexey Gavrilov <alexey.gavrilov@mail.com>2026-03-27 14:03:55 +0700
committerAlexey Gavrilov <alexey.gavrilov@mail.com>2026-03-27 14:03:55 +0700
commit6ffe96d1e3f0289c2070e050cf8e1a30288e6d91 (patch)
tree746485cfc0f55dad82d1d0daad9677bf63475cba /arch/x86/cpuid
parenta4dea4148157a94a9143dbbd92fdd88b4358676c (diff)
Cmake build generator support: build stage
Multi-target architecture implementation: each root source code directory presents the one *INTERFACE* target to it's subdirectory subtargets that link only as *STATIC* library. For instance, *arch* directory presents *Architecture* target then *Architecture* target has *CPUID*, *IO*, *PORT* and etc. dependencies Exact order of linking targets is: boot.o CRTIBUNDLE <TARGETS> CRTNBUNDLE. Sequence destruction cause to UB. Please to pay attention to this. TODO - Debug information - Build type - Toolchain file - Image creation - Build by WinGW compiler on Windows platform (optional) Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
Diffstat (limited to 'arch/x86/cpuid')
-rw-r--r--arch/x86/cpuid/CMakeLists.txt25
-rw-r--r--arch/x86/cpuid/Cpuid.h2
-rw-r--r--arch/x86/cpuid/CpuidCheck.nasm (renamed from arch/x86/cpuid/CpuidCheck.s)0
3 files changed, 26 insertions, 1 deletions
diff --git a/arch/x86/cpuid/CMakeLists.txt b/arch/x86/cpuid/CMakeLists.txt
new file mode 100644
index 0000000..e8528e8
--- /dev/null
+++ b/arch/x86/cpuid/CMakeLists.txt
@@ -0,0 +1,25 @@
+add_library(CPUID STATIC)
+target_link_libraries(CPUID PUBLIC CXX_COMPILER_REQUIREMENTS)
+
+target_sources(CPUID PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/Cpuid.cpp
+)
+
+target_sources(CPUID
+ PUBLIC
+ FILE_SET HEADERS
+ BASE_DIRS
+ ${CMAKE_CURRENT_LIST_DIR}
+ FILES
+ ${CMAKE_CURRENT_LIST_DIR}/Cpuid.h
+)
+
+target_link_libraries(Architecture INTERFACE CPUID)
+
+add_library(CPUIDASM OBJECT)
+
+target_sources(CPUIDASM PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/CpuidCheck.nasm
+)
+
+target_sources(ArchitectureAssemblerSources PRIVATE $<TARGET_OBJECTS:CPUIDASM>)
diff --git a/arch/x86/cpuid/Cpuid.h b/arch/x86/cpuid/Cpuid.h
index a65cdc8..c8ad4aa 100644
--- a/arch/x86/cpuid/Cpuid.h
+++ b/arch/x86/cpuid/Cpuid.h
@@ -1,6 +1,6 @@
#ifndef CPUID_H
#define CPUID_H
-#include <types.h>
+#include <Types.h>
#include <MemoryOperations.h>
// To declare cpuid::Executor::Executor()
diff --git a/arch/x86/cpuid/CpuidCheck.s b/arch/x86/cpuid/CpuidCheck.nasm
index 67bc9eb..67bc9eb 100644
--- a/arch/x86/cpuid/CpuidCheck.s
+++ b/arch/x86/cpuid/CpuidCheck.nasm