summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDanny Holman <dholman@gymli.org>2024-09-15 14:49:26 -0500
committerDanny Holman <dholman@gymli.org>2024-09-15 14:49:26 -0500
commit5b2c84c0b6880c66657e6fdd0f802a2187c25d05 (patch)
treef2e46a1dbb8ca1496245449893c6a08e980867c5 /include
parent1064864b5112653e0038adeca05ae6db090bf587 (diff)
build: break the engine into its subsystemsv0.60
Break the source code into various subsystem directories. This allows certain subsystems to be disabled at compile time, if needed. Move the build system from raw Makefiles to a CMake generator. This drastically simplifies the build and requires only editing a single file, rather than the several make.config files in subsystem directories. Signed-off-by: Danny Holman <dholman@gymli.org>
Diffstat (limited to 'include')
-rw-r--r--include/rune/core/abort.h29
-rw-r--r--include/rune/core/alloc.h41
-rw-r--r--include/rune/core/logging.h (renamed from include/rune/logging.h)6
-rw-r--r--include/rune/util/list.h (renamed from include/rune/list.h)10
-rw-r--r--include/rune/util/types.h (renamed from include/rune/types.h)6
-rw-r--r--include/rune/util/util.h (renamed from include/rune/util.h)4
6 files changed, 83 insertions, 13 deletions
diff --git a/include/rune/core/abort.h b/include/rune/core/abort.h
new file mode 100644
index 0000000..60f368e
--- /dev/null
+++ b/include/rune/core/abort.h
@@ -0,0 +1,29 @@
+/*
+ * Rune Game Engine
+ * Copyright 2024 Danny Holman <dholman@gymli.org>
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ */
+
+#ifndef RUNE_ABORT_H
+#define RUNE_ABORT_H
+
+#include <rune/util/types.h>
+
+RAPI void rune_abort(void);
+
+#endif
diff --git a/include/rune/core/alloc.h b/include/rune/core/alloc.h
new file mode 100644
index 0000000..35170d8
--- /dev/null
+++ b/include/rune/core/alloc.h
@@ -0,0 +1,41 @@
+/*
+ * Rune Game Engine
+ * Copyright 2024 Danny Holman <dholman@gymli.org>
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ */
+
+#ifndef RUNE_ALLOC_H
+#define RUNE_ALLOC_H
+
+#include <rune/util/types.h>
+#include <rune/util/list.h>
+
+struct mem_block {
+ void *ptr;
+ size_t sz;
+ int free;
+ struct list_head list;
+};
+
+RAPI void* rune_alloc(size_t sz);
+RAPI void* rune_calloc(size_t nmemb, size_t sz);
+RAPI void* rune_realloc(void *ptr, size_t sz);
+RAPI void rune_free(void *ptr);
+RAPI void rune_free_all(void);
+
+#endif
diff --git a/include/rune/logging.h b/include/rune/core/logging.h
index 5b9aabf..6bb6470 100644
--- a/include/rune/logging.h
+++ b/include/rune/core/logging.h
@@ -19,10 +19,10 @@
* 3. This notice may not be removed or altered from any source distribution.
*/
-#ifndef RUNE_LOGGING_H
-#define RUNE_LOGGING_H
+#ifndef RUNE_CORE_LOGGING_H
+#define RUNE_CORE_LOGGING_H
-#include <rune/util.h>
+#include <rune/util/types.h>
enum log_level {
LOG_FATAL,
diff --git a/include/rune/list.h b/include/rune/util/list.h
index 1107491..ed6db5e 100644
--- a/include/rune/list.h
+++ b/include/rune/util/list.h
@@ -19,17 +19,17 @@
* 3. This notice may not be removed or altered from any source distribution.
*/
-#ifndef RUNE_LIST_H
-#define RUNE_LIST_H
+#ifndef RUNE_UTIL_LIST_H
+#define RUNE_UTIL_LIST_H
#include <stddef.h>
-struct list_head {
+RAPI struct list_head {
struct list_head *next;
struct list_head *prev;
};
-static inline void list_add(struct list_head *new, struct list_head *head) {
+RAPI static inline void list_add(struct list_head *new, struct list_head *head) {
struct list_head *temp = head;
while (temp->next != NULL)
temp = temp->next;
@@ -39,7 +39,7 @@ static inline void list_add(struct list_head *new, struct list_head *head) {
new->next = NULL;
}
-static inline void list_del(struct list_head *item) {
+RAPI static inline void list_del(struct list_head *item) {
struct list_head *next = item->next;
struct list_head *prev = item->prev;
if (next != NULL)
diff --git a/include/rune/types.h b/include/rune/util/types.h
index 03e3edb..ac92ecb 100644
--- a/include/rune/types.h
+++ b/include/rune/util/types.h
@@ -19,10 +19,10 @@
* 3. This notice may not be removed or altered from any source distribution.
*/
-#ifndef RUNE_TYPES_H
-#define RUNE_TYPES_H
+#ifndef RUNE_UTIL_TYPES_H
+#define RUNE_UTIL_TYPES_H
-#include <rune/util.h>
+#include <rune/util/util.h>
STATIC_ASSERT(sizeof(uint8_t) == 1, "Expected uint8_t to be 1 byte");
STATIC_ASSERT(sizeof(uint16_t) == 2, "Expected uint16_t to be 2 bytes");
diff --git a/include/rune/util.h b/include/rune/util/util.h
index 04429c4..dcf45e4 100644
--- a/include/rune/util.h
+++ b/include/rune/util/util.h
@@ -19,8 +19,8 @@
* 3. This notice may not be removed or altered from any source distribution.
*/
-#ifndef RUNE_UTIL_H
-#define RUNE_UTIL_H
+#ifndef RUNE_UTIL_UTIL_H
+#define RUNE_UTIL_UTIL_H
#include <assert.h>
#include <stdint.h>