view src/CMakeLists.txt @ 134:ee13116349cd

build: Add test targets for eval and preprocess tests
author Lewin Bormann <lbo@spheniscida.de>
date Sun, 01 Sep 2019 19:24:45 +0200
parents b9ef95fb35dc
children 775a941b036c
line wrap: on
line source

cmake_minimum_required(VERSION 3.14)

ADD_SUBDIRECTORY(base/)

# Tests
if (CMAKE_BUILD_TYPE STREQUAL "Debug-gcov")
    ADD_COMPILE_OPTIONS(--coverage)
    LINK_LIBRARIES(gcov)
endif ()

ADD_LIBRARY(core STATIC
    atom.c
    built-ins.c
    eval.c
    expr.c
    func.c
    value.c)

ADD_LIBRARY(frontend STATIC
    parse.c
    preprocess.c)

if (CMAKE_BUILD_TYPE STREQUAL "Debug")
    TARGET_LINK_LIBRARIES(core base)
else ()
    TARGET_LINK_LIBRARIES(core base)
endif ()

TARGET_LINK_LIBRARIES(frontend core base y_parser)

# Atom test.
ADD_EXECUTABLE(atom_test atom_test.c)
TARGET_LINK_LIBRARIES(atom_test core)
YADD_TEST(atom_test)

# Built-in test.
ADD_EXECUTABLE(builtin_test built-ins_test.c)
TARGET_LINK_LIBRARIES(builtin_test core frontend)
YADD_TEST(builtin_test)

# Eval test.
ADD_EXECUTABLE(eval_test eval_test.c)
TARGET_LINK_LIBRARIES(eval_test frontend)
YADD_TEST(eval_test)

# Expr test.
ADD_EXECUTABLE(expr_test expr_test.c)
TARGET_LINK_LIBRARIES(expr_test core)
YADD_TEST(expr_test)

# Parse test
ADD_EXECUTABLE(parse_test parse_test.c)
TARGET_LINK_LIBRARIES(parse_test frontend)
YADD_TEST(parse_test)

# Preprocess test
ADD_EXECUTABLE(preprocess_test preprocess_test.c)
TARGET_LINK_LIBRARIES(preprocess_test frontend)
YADD_TEST(preprocess_test)

# Print sizes.
ADD_EXECUTABLE(sizes_test sizes_test.c)
TARGET_LINK_LIBRARIES(sizes_test core)
YADD_TEST(sizes_test)

# Value test.
ADD_EXECUTABLE(value_test value_test.c)
TARGET_LINK_LIBRARIES(value_test core)
YADD_TEST(value_test)