meta: add msvc support

since bluelib is already cross-platform, this is mostly just adding
__declspec(dllexport) to the library functions.
This commit is contained in:
2024-11-14 19:30:36 +00:00
parent 51d7fdfb39
commit 646a851a10
17 changed files with 68 additions and 9 deletions

View File

@@ -3,3 +3,4 @@ file(GLOB_RECURSE lang_sources *.c *.h include/ivy/lang/*.h)
add_library(ivy-lang SHARED ${lang_sources})
target_include_directories(ivy-lang PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include/)
target_link_libraries(ivy-lang ivy-common Bluelib::Core Bluelib::Object)
target_compile_definitions(ivy-lang PRIVATE IVY_EXPORT=1)

View File

@@ -2,6 +2,7 @@
#define IVY_LANG_LEX_H_
#include <ivy/line-source.h>
#include <ivy/misc.h>
#include <ivy/status.h>
enum ivy_token_type {
@@ -108,12 +109,12 @@ struct ivy_lexer {
size_t lex_linebuf_ptr;
};
extern enum ivy_status ivy_lexer_init(struct ivy_lexer *lex);
extern void ivy_lexer_finish(struct ivy_lexer *lex);
IVY_API enum ivy_status ivy_lexer_init(struct ivy_lexer *lex);
IVY_API void ivy_lexer_finish(struct ivy_lexer *lex);
extern struct ivy_token *ivy_lexer_peek(struct ivy_lexer *lex);
extern struct ivy_token *ivy_lexer_read(struct ivy_lexer *lex);
IVY_API struct ivy_token *ivy_lexer_peek(struct ivy_lexer *lex);
IVY_API struct ivy_token *ivy_lexer_read(struct ivy_lexer *lex);
extern void ivy_token_destroy(struct ivy_token *tok);
IVY_API void ivy_token_destroy(struct ivy_token *tok);
#endif