cmake_minimum_required(VERSION 3.20) # Use the fancy version substitution project(cmake-cpputest-template VERSION 1.0 DESCRIPTION "template for cmake + cpputest" LANGUAGES C CXX ) enable_testing() set(TARGET_GROUP production CACHE STRING "Group to build") if(MSVC OR MSYS OR MINGW) message("### SETUP FOR WINDOWS ###") add_definitions(-DWINDOWS) else() message("### SETUP FOR UNIX ###") add_definitions(-DUNIX) endif() # For being able to used LSP set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # Request C 11 standard features set(CMAKE_C_STANDARD 18) set(CMAKE_C_STANDARD_REQUIRED True) set(CMAKE_C_FLAGS "-Wall -Werror -Wpedantic") # SETUP THE CXX flags for .cpp set(CMAKE_CXX_STANDARD 18) set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_FLAGS "-Wall -Werror -Wpedantic") # ####################################### # TESTING STUFF # ####################################### # find_library() set(CPPUTEST_INC_DIR "./cpputest/include") set(CPPUTEST_LIB "./cpputest/build/src/CppUTest/libCppUTest.a") # include_directories( # ${CPPUTEST_DIR} # ${CPPUTEST_DIR}/CppUTest # ${CPPUTEST_DIR}/CppUTestExt # ) # # add_library(CppUTest OBJECT # ${CPPUTEST_LIB} # ) if (UNIT_TESTING) if(DEFINED ENV{CPPUTEST_HOME}) message(STATUS "Using CppUTest home: $ENV{CPPUTEST_HOME}") set(CPPUTEST_INCLUDE_DIRS $ENV{CPPUTEST_HOME}/include) set(CPPUTEST_LIBRARIES $ENV{CPPUTEST_HOME}/lib) set(CPPUTEST_LDFLAGS CppUTest CppUTestExt) else() find_package(PkgConfig REQUIRED) pkg_search_module(CPPUTEST REQUIRED cpputest>=3.8) message(STATUS "Found CppUTest version ${CPPUTEST_VERSION}") endif() include_directories(${CPPUTEST_INCLUDE_DIRS} ../src/) link_directories(${CPPUTEST_LIBRARIES}) message(STATUS "CPPUTEST_DIR: ${CPPUTEST_DIR}") add_subdirectory(tests) endif() # ####################################### # PROJECT SPECIFIC # ####################################### add_subdirectory(src)