67 lines
1.3 KiB
CMake
67 lines
1.3 KiB
CMake
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/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
|
|
)
|
|
|
|
|
|
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 $<TARGET_FILE:test_${testname}>
|
|
)
|
|
endforeach()
|