meta: add internal common library
This commit is contained in:
@@ -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
4
common/CMakeLists.txt
Normal 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/)
|
||||||
22
common/include/ivy/line-source.h
Normal file
22
common/include/ivy/line-source.h
Normal 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
12
common/line-source.c
Normal 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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user