summaryrefslogtreecommitdiffstats
path: root/include
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 /include
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 'include')
-rw-r--r--include/CMakeLists.txt27
-rw-r--r--include/MemoryOperations.h2
-rw-r--r--include/StringOperations.h2
-rw-r--r--include/Templates.h2
-rw-r--r--include/TypeConverter.h2
-rw-r--r--include/Types.h (renamed from include/types.h)0
-rw-r--r--include/containers/CMakeLists.txt10
7 files changed, 41 insertions, 4 deletions
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
new file mode 100644
index 0000000..1b06451
--- /dev/null
+++ b/include/CMakeLists.txt
@@ -0,0 +1,27 @@
+add_library(Include STATIC)
+
+target_sources(Include
+ PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/MemoryOperations.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/StringOperations.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/TypeConverter.cpp
+)
+
+target_sources(Include
+ PUBLIC
+ FILE_SET HEADERS
+ FILES
+ ${CMAKE_CURRENT_LIST_DIR}/ISingleton.h
+ ${CMAKE_CURRENT_LIST_DIR}/MemoryOperations.h
+ ${CMAKE_CURRENT_LIST_DIR}/StringOperations.h
+ ${CMAKE_CURRENT_LIST_DIR}/Templates.h
+ ${CMAKE_CURRENT_LIST_DIR}/TypeConverter.h
+ ${CMAKE_CURRENT_LIST_DIR}/Types.h
+)
+
+add_subdirectory(containers)
+
+# Link include library to all consumers
+target_link_libraries(Architecture INTERFACE Include)
+target_link_libraries(Kernel INTERFACE Include)
+target_link_libraries(Drivers INTERFACE Include)
diff --git a/include/MemoryOperations.h b/include/MemoryOperations.h
index 046ca1d..ef116dd 100644
--- a/include/MemoryOperations.h
+++ b/include/MemoryOperations.h
@@ -1,7 +1,7 @@
#ifndef MEMORYOPERATIONS_H
#define MEMORYOPERATIONS_H
-#include <types.h>
+#include <Types.h>
class MemoryOperations
diff --git a/include/StringOperations.h b/include/StringOperations.h
index 5d2826c..53519fe 100644
--- a/include/StringOperations.h
+++ b/include/StringOperations.h
@@ -1,7 +1,7 @@
#ifndef STRINGOPERATIONS_H
#define STRINGOPERATIONS_H
-#include <types.h>
+#include <Types.h>
class MemArea
diff --git a/include/Templates.h b/include/Templates.h
index 8a1bd95..00b97d3 100644
--- a/include/Templates.h
+++ b/include/Templates.h
@@ -2,7 +2,7 @@
#define TEMPLATES_H
-#include <types.h>
+#include <Types.h>
template<typename T, T val>
struct constant
diff --git a/include/TypeConverter.h b/include/TypeConverter.h
index f9db95c..8b426b9 100644
--- a/include/TypeConverter.h
+++ b/include/TypeConverter.h
@@ -1,7 +1,7 @@
#ifndef TYPECONVERTER_H
#define TYPECONVERTER_H
-#include <types.h>
+#include <Types.h>
class IntConverter
{
diff --git a/include/types.h b/include/Types.h
index 9f59063..9f59063 100644
--- a/include/types.h
+++ b/include/Types.h
diff --git a/include/containers/CMakeLists.txt b/include/containers/CMakeLists.txt
new file mode 100644
index 0000000..aab0387
--- /dev/null
+++ b/include/containers/CMakeLists.txt
@@ -0,0 +1,10 @@
+add_library(ContainersHeaders INTERFACE)
+
+target_sources(ContainersHeaders
+ PUBLIC
+ FILE_SET HEADERS
+ FILES
+ ${CMAKE_CURRENT_LIST_DIR}/Tuple.h
+)
+
+target_link_libraries(Include PUBLIC ContainersHeaders)