diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt index 55e9c86..287b4d8 100644 --- a/lang/CMakeLists.txt +++ b/lang/CMakeLists.txt @@ -3,9 +3,20 @@ cmake_minimum_required(VERSION 3.25) -# Create SNTP project +# Useful options for compiling +set(compile_opts -Wall -Wextra -Wpedantic -Werror -fwrapv -fno-strict-aliasing -fsigned-char) + +# Create TardisLang library project(TardisLang) file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/*.c") -add_executable(TardisLang ${SRC_FILES}) +add_library(TardisLang ${SRC_FILES}) set_property(TARGET TardisLang PROPERTY C_STANDARD 11) -target_compile_options(TardisLang PRIVATE -Wall -Wextra -Wpedantic -Werror -fwrapv -fno-strict-aliasing -fsigned-char) +target_compile_options(TardisLang PRIVATE ${compile_opts}) + +# Create test app program +project(TardisLangApp) +file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/app/*.c") +add_executable(TardisLangApp ${SRC_FILES}) +set_property(TARGET TardisLangApp PROPERTY C_STANDARD 11) +target_compile_options(TardisLangApp PRIVATE ${compile_opts}) +target_link_libraries(TardisLangApp PRIVATE TardisLang) diff --git a/lang/app/main.c b/lang/app/main.c new file mode 100644 index 0000000..a6bce43 --- /dev/null +++ b/lang/app/main.c @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +// Copyright (c) 2023 John Watts and the LuminaSensum contributors + +extern int lang_main(); + +int main(void) { return lang_main(); } diff --git a/lang/main.c b/lang/main.c index 0855884..4a398c0 100644 --- a/lang/main.c +++ b/lang/main.c @@ -79,7 +79,7 @@ abort_msg("no call found to dispatch"); } -int main(void) { +int lang_main(void) { init_symbols(); init_symbols(); init_symbols();