diff options
| author | Alexey Gavrilov <alexey.gavrilov@mail.com> | 2026-03-27 14:03:55 +0700 |
|---|---|---|
| committer | Alexey Gavrilov <alexey.gavrilov@mail.com> | 2026-03-27 14:03:55 +0700 |
| commit | 6ffe96d1e3f0289c2070e050cf8e1a30288e6d91 (patch) | |
| tree | 746485cfc0f55dad82d1d0daad9677bf63475cba /arch/x86/cpuid | |
| parent | a4dea4148157a94a9143dbbd92fdd88b4358676c (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.txt | 25 | ||||
| -rw-r--r-- | arch/x86/cpuid/Cpuid.h | 2 | ||||
| -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 |
