waitui/CMakeLists.txt

47 lines
1.3 KiB
CMake

cmake_minimum_required(VERSION 3.21 FATAL_ERROR)
include("${CMAKE_CURRENT_LIST_DIR}/project-meta-info.in")
project(waitui-project
VERSION ${project_version}
DESCRIPTION ${project_description}
HOMEPAGE_URL ${project_homepage}
LANGUAGES C
)
set(CMAKE_C_STANDARD 17)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
option(ENABLE_TEST_COVERAGE "Enable test coverage" OFF)
if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
include(CTest)
endif ()
add_subdirectory(app)
add_subdirectory(library/hashtable)
add_subdirectory(library/list)
add_subdirectory(library/log)
add_subdirectory(library/str)
if ((CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME OR MODERN_CMAKE_BUILD_TESTING)
AND BUILD_TESTING)
add_subdirectory(tests)
if (ENABLE_TEST_COVERAGE)
include(CodeCoverage)
set(MEMORYCHECK_COMMAND_OPTIONS "--trace-children=yes --leak-check=full")
setup_target_for_coverage_lcov(
NAME coverage
EXECUTABLE ${CMAKE_CTEST_COMMAND} -T memcheck
EXCLUDE "tests/*"
LCOV_ARGS --rc lcov_branch_coverage=1
GENHTML_ARGS --rc genhtml_branch_coverage=1
)
endif ()
endif ()