# SPDX-License-Identifier: MIT # Copyright (c) 2023 John Watts and the LuminaSensum contributors cmake_minimum_required(VERSION 3.25) # Create mini-gmp library project(mini-gmp) file(GLOB GMP_SRC_FILES "${PROJECT_SOURCE_DIR}/mini-gmp/*.c") add_library(mini-gmp ${GMP_SRC_FILES}) target_include_directories(mini-gmp PUBLIC "${PROJECT_SOURCE_DIR}/mini-gmp/") set_property(TARGET mini-gmp PROPERTY C_STANDARD 11) # Useful options for compiling set(compile_opts -Wall -Wextra -Wpedantic -Werror -fwrapv -fno-strict-aliasing -fsigned-char) # Create TardisLang library project(TardisLang) add_custom_command( OUTPUT module_main.c COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/compile.py ${CMAKE_CURRENT_SOURCE_DIR}/modules/main.txt module_main.c DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/modules/main.txt ${CMAKE_CURRENT_SOURCE_DIR}/compile.py ) file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/*.c") add_library(TardisLang ${SRC_FILES} "module_main.c") target_include_directories(TardisLang PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") set_property(TARGET TardisLang PROPERTY C_STANDARD 11) target_compile_options(TardisLang PRIVATE ${compile_opts}) target_link_libraries(TardisLang PUBLIC mini-gmp) # Create test app program option(BUILD_TARDISLANG_APP "Build the TardisLang test app" ON) if(BUILD_TARDISLANG_APP) 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) endif()