cmake_minimum_required(VERSION 3.31) project(log-e-sappho C) set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD_REQUIRED True) string(JOIN " " CMAKE_C_FLAGS "-Wall -Wextra -Wformat=2" "-Wconversion -Wsign-conversion -Wimplicit-fallthrough" "-Werror=implicit" "-Werror=incompatible-pointer-types" "-Werror=int-conversion") set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(INCLUDE_DIR include) set(SRC_DIR src) set(SPHO_HEADER ${INCLUDE_DIR}/spho/bind.h ${INCLUDE_DIR}/spho/ctx.h ${INCLUDE_DIR}/spho/err.h ${INCLUDE_DIR}/spho/scope.h ${INCLUDE_DIR}/spho/spho.h ${INCLUDE_DIR}/spho/subt.h ${INCLUDE_DIR}/spho/tp.h ) set(SPHO_SRC ${SRC_DIR}/spho/bind.c ${SRC_DIR}/spho/ctx.c ${SRC_DIR}/spho/scope.c ${SRC_DIR}/spho/subt.c ${SRC_DIR}/spho/tp.c ) add_library(spho STATIC ${SPHO_HEADER} ${SPHO_SRC}) target_include_directories(spho PRIVATE ${INCLUDE_DIR}) target_compile_definitions(spho PRIVATE $<$:SPHO_DEBUG> $<$:SPHO_USE_STRLCPY> ) add_executable(devcheck ${SRC_DIR}/run/devcheck.c) target_link_libraries(devcheck spho) target_include_directories(devcheck PRIVATE ${INCLUDE_DIR}) target_compile_definitions(devcheck PRIVATE $<$:SPHO_DEBUG> ) set(MSPH_SRC ${SRC_DIR}/msph/msph.c ${SRC_DIR}/msph/sphophi.c ${SRC_DIR}/msph/token.c ${SRC_DIR}/msph/tree.c ) set(MSPH_HEADER ${INCLUDE_DIR}/msph/common.h ${INCLUDE_DIR}/msph/err.h ${INCLUDE_DIR}/msph/sphophi.h ${INCLUDE_DIR}/msph/token.h ${INCLUDE_DIR}/msph/tree.h ) add_executable(msph ${MSPH_SRC} ${MSPH_HEADER}) target_include_directories(msph PRIVATE ${INCLUDE_DIR}) target_link_libraries(msph spho) target_compile_definitions(msph PRIVATE $<$:SPHO_DEBUG> $<$:SPHO_USE_STRLCPY> )