aboutsummaryrefslogtreecommitdiff
path: root/src/script_sys.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/script_sys.c')
-rw-r--r--src/script_sys.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/script_sys.c b/src/script_sys.c
new file mode 100644
index 0000000..047ba8a
--- /dev/null
+++ b/src/script_sys.c
@@ -0,0 +1,33 @@
+#include "script_sys.h"
+
+#include <libtcc.h>
+#include <stddef.h>
+#include <stdio.h>
+
+TCCState* state = NULL;
+
+int goob(void)
+{
+ return 255;
+}
+
+void init_script_sys(void)
+{
+ state = tcc_new();
+ tcc_set_output_type(state, TCC_OUTPUT_MEMORY);
+
+ tcc_add_symbol(state, "goob", goob);
+
+ tcc_add_file(state, "assets/src/main.c");
+
+ tcc_relocate(state, TCC_RELOCATE_AUTO);
+
+ int(*const test)() = tcc_get_symbol(state, "test");
+ printf("Result: %i\n", test());
+}
+
+void deinit_script_sys(void)
+{
+ tcc_delete(state);
+ state = NULL;
+} \ No newline at end of file