projtec:cmake
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Next revisionBoth sides next revision | ||
projtec:cmake [2017/11/23 08:40] – [Tests Unitaires] orel | projtec: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" | + | include(CTest) |
- | if(ENABLE_DEBUG) | + | enable_testing() |
- | set(CMAKE_C_FLAGS " | + | |
- | set(CMAKE_LD_FLAGS " | + | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -std=c99 -g --coverage" |
- | else() | + | |
- | set(CMAKE_C_FLAGS " | + | |
- | endif() | + | |
add_executable(foo foo.c) | add_executable(foo foo.c) | ||
+ | |||
+ | add_test(test1 ./foo 2) | ||
+ | add_test(test2 ./foo 5) | ||
+ | </ | ||
+ | |||
+ | cmake . | ||
+ | make ExperimentalTest # ou make test | ||
+ | make ExperimentalCoverage | ||
+ | more Testing/ | ||
+ | |||
+ | Il est plus élégant de n' | ||
+ | |||
+ | <code text tests/ | ||
+ | cmake_minimum_required(VERSION 3.0) | ||
include(CTest) | include(CTest) | ||
enable_testing() | enable_testing() | ||
+ | |||
+ | set(CMAKE_C_FLAGS " | ||
+ | set(CMAKE_C_FLAGS_DEBUG " | ||
+ | |||
+ | add_executable(foo foo.c) | ||
add_test(test1 ./foo 2) | add_test(test1 ./foo 2) | ||
Line 220: | Line 236: | ||
</ | </ | ||
- | | + | |
- | make test | + | Il faut alors compiler le code en mode DEBUG (et non pas en mode RELEASE) : |
+ | |||
+ | | ||
+ | make ExperimentalTest | ||
make ExperimentalCoverage | make ExperimentalCoverage | ||
more Testing/ | more Testing/ | ||
- | + | ||
- | __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