gux/lang/CMakeLists.txt

61 lines
1.0 KiB
CMake

cmake_minimum_required(VERSION 3.2)
find_package(PkgConfig REQUIRED)
project(gux-lang LANGUAGES C)
add_library(gux-lang OBJECT
src/node.c
src/lexer.c
src/parser.c
src/type.c
src/value.c
src/type_resolver.c
src/type_checker.c
)
set_property(TARGET gux-lang PROPERTY C_STANDARD 99)
add_dependencies(gux-lang gux-lib)
target_include_directories(gux-lang
PUBLIC gux-lib
PUBLIC ${CMAKE_SOURCE_DIR}/lang/src
)
target_link_libraries(gux-lang
PUBLIC gux-lib m
)
# =====
# TESTS
# =====
project(gux-lang-tests LANGUAGES C)
add_executable(gux-lang-tests
tests/trivial.c
tests/node.c
tests/lexer.c
tests/parser.c
tests/type.c
tests/value.c
tests/type_checker.c
)
set_property(TARGET gux-lang-tests PROPERTY C_STANDARD 99)
add_dependencies(gux-lang-tests gux-lang)
target_include_directories(gux-lang-tests
PUBLIC gux-lang
)
pkg_check_modules(CRITERION criterion REQUIRED IMPORTED_TARGET)
target_link_libraries(gux-lang-tests
PUBLIC gux-lang
PUBLIC gux-lib
PRIVATE PkgConfig::CRITERION
)