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 src/syms.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 tests/syms.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 )