User Tools

Site Tools


projtec:cmake

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
projtec:cmake [2017/11/23 08:40] – [Tests Unitaires] orelprojtec:cmake [2021/01/13 08:37] – [Tests Dynamiques] orel
Line 203: Line 203:
 cmake_minimum_required(VERSION 3.0) cmake_minimum_required(VERSION 3.0)
  
-option(ENABLE_DEBUG "debug options" ON+include(CTest
-if(ENABLE_DEBUG+enable_testing() 
-  set(CMAKE_C_FLAGS "-std=c99 -g -fprofile-arcs -ftest-coverage -Wall"+ 
-  set(CMAKE_LD_FLAGS "-fprofile-arcs -ftest-coverage"  +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -std=c99 -g --coverage")
-else() +
-  set(CMAKE_C_FLAGS "-std=c99 -O3 -Wall"+
-endif()+
  
 add_executable(foo foo.c) add_executable(foo foo.c)
 +
 +add_test(test1 ./foo 2)
 +add_test(test2 ./foo 5)
 +</code>
 +
 +  cmake .
 +  make ExperimentalTest # ou make test
 +  make ExperimentalCoverage
 +  more Testing/CoverageInfo/*
 +
 +Il est plus élégant de n'activer le coverage que en mode DEBUG...
 +
 +<code text tests/CMakeLists.txt>
 +cmake_minimum_required(VERSION 3.0)
  
 include(CTest) include(CTest)
 enable_testing() enable_testing()
 +
 +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
 +set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -g --coverage")
 +
 +add_executable(foo foo.c)
  
 add_test(test1 ./foo 2) add_test(test1 ./foo 2)
Line 220: Line 236:
 </code> </code>
  
-  cmake -DENABLE_DEBUG=ON  # ou bien utiliser ccmake + 
-  make test  +Il faut alors compiler le code en mode DEBUG (et non pas en mode RELEASE) : 
 + 
 +  cmake -DCMAKE_BUILD_TYPE=DEBUG 
 +  make ExperimentalTest
   make ExperimentalCoverage   make ExperimentalCoverage
   more Testing/CoverageInfo/*   more Testing/CoverageInfo/*
-   +
-__Nota Bene__ : Est-ce la bonne façon de faire ? Ne fait-il pas mieux utiliser CMAKE_C_FLAGS_DEBUG avec CMAKE_BUILD_TYPE. +
-  +
projtec/cmake.txt · Last modified: 2024/03/18 15:06 by 127.0.0.1