meta: add internal common library

This commit is contained in:
2024-11-12 19:56:02 +00:00
parent d6dea45f52
commit bf2c9c1d90
4 changed files with 39 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
set(Bluelib_STATIC TRUE) set(Bluelib_STATIC TRUE)
find_package(Bluelib REQUIRED) find_package(Bluelib REQUIRED)
add_subdirectory(common)
add_subdirectory(lang) add_subdirectory(lang)
add_subdirectory(asm) add_subdirectory(asm)
add_subdirectory(rt) add_subdirectory(rt)

4
common/CMakeLists.txt Normal file
View File

@@ -0,0 +1,4 @@
file(GLOB_RECURSE common_sources *.c *.h include/ivy/*.h)
add_library(ivy-common SHARED ${common_sources})
target_include_directories(ivy-common PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include/)

View File

@@ -0,0 +1,22 @@
#ifndef IVY_COMMON_LINE_SOURCE_H_
#define IVY_COMMON_LINE_SOURCE_H_
#include <stddef.h>
enum ivy_line_source_status {
IVY_LS_OK = 0,
IVY_LS_EOF,
IVY_LS_ERR_IOERR,
IVY_LS_ERR_NOSYS,
};
struct ivy_line_source {
enum ivy_line_source_status (*s_readline)(
struct ivy_line_source *, char *, size_t, size_t *, const char *);
};
extern enum ivy_line_source_status ivy_line_source_readline(
struct ivy_line_source *src, char *buf, size_t count, size_t *nr_read,
const char *prompt);
#endif

12
common/line-source.c Normal file
View File

@@ -0,0 +1,12 @@
#include <ivy/line-source.h>
enum ivy_line_source_status ivy_line_source_readline(
struct ivy_line_source *src, char *buf, size_t count, size_t *nr_read,
const char *prompt)
{
if (src->s_readline) {
return src->s_readline(src, buf, count, nr_read, prompt);
}
return IVY_LS_ERR_NOSYS;
}