valeri/CMakeLists.txt

66 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
)
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()