60 lines
1.0 KiB
CMake
60 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
|
|
)
|
|
|
|
# =====
|
|
# 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
|
|
)
|