cmake_minimum_required(VERSION 3.28) project(valeri) # vli set(CMAKE_CXX_STANDARD 23) set(CMAKE_EXPORT_COMPILE_COMMANDS true) message(STATUS "Build type: ${CMAKE_BUILD_TYPE}") set (CMAKE_CXX_FLAGS "-fno-exceptions -static-libgcc -static-libstdc++ -Werror -Wall -Wunused-result -Wno-unused-function -Wno-unused-variable -fno-omit-frame-pointer -fsanitize=address -Wno-c99-designator") add_library(vm_lib) target_sources(vm_lib PRIVATE src/vm.cpp src/common.cpp src/arena.cpp src/error.cpp src/reader.cpp src/writer.cpp src/utf8.cpp src/compiler.cpp PUBLIC FILE_SET HEADERS BASE_DIRS src FILES src/arena.hpp src/common.hpp src/error.hpp src/pod.hpp src/result.hpp src/vm.hpp src/sourcerange.hpp src/reader.hpp src/writer.hpp src/utf8.hpp src/compiler.hpp ) add_executable(vli src/vli.cpp) target_link_libraries(vli vm_lib) install(TARGETS vli) # TESTING enable_testing() set(CPP_TESTS dict array symbol ) foreach(testname IN LISTS CPP_TESTS) add_executable("test_${testname}") target_sources("test_${testname}" PRIVATE test/${testname}.cpp PUBLIC FILE_SET HEADERS BASE_DIRS test FILES test/test.hpp) target_link_libraries("test_${testname}" vm_lib) add_test( NAME "test_${testname}" COMMAND $ ) endforeach()