[CMAKE] Appel d'une function dans add_custom_target
Bonjour a tous,
Mon problème est plus ou moins résumé dans le titre, mais je vais le détailler :D. Je suis novice dans le développement d'une chaîne de compilation avec cmake et je bloque sur le point suivant:
je souhaite appeler une fonction qui possède un paramètre depuis un command add_custom_target, et le soucis et bien c'est que la fonction ne semble pas appelée...
Voici mon CMakeLists.txt il fonctionne bien modulo le dernier add_custom_target (build + exécution de l’exécutable):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| cmake_minimum_required(VERSION 3.7.2)
project(tests)
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
include(run_plus)
set(TEST_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
set(TEST_INC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/inc)
set(TESTS_SRCS
${TEST_SRC_DIR}/main.cpp
)
add_executable(tests.exe ${TESTS_SRCS})
target_include_directories(tests.exe PUBLIC
${TEST_INC_DIR}
/tools/exec/CppUnit/cppunit-1.12.0/include
)
#find_library(libcppunit cppunit)
find_library(libcppunit cppunit PATHS /tools/exec/CppUnit/cppunit-1.12.0/lib)
if(NOT libcppunit)
message(FATAL_ERROR "cppunit library not found")
endif()
target_link_libraries(tests.exe
${libcppunit}
)
#--coverage
target_compile_options(tests.exe PUBLIC -fprofile-arcs -ftest-coverage)
#run tests
add_custom_target(run_tests
command ${CMAKE_CURRENT_BINARY_DIR}/tests.exe
)
add_dependencies(run_tests tests.exe)
add_custom_target(run_tests_plus
command ${CMAKE_COMMAND} run_plus -D TARGET_NAME=tests.exe -P /home/bibi/projects/cmake/run_plus.cmake
)
add_dependencies(run_tests_plus run_tests) |
voici le script run_plus.cmake
Code:
1 2 3 4 5 6
| function(run_plusTARGET_NAME)
get_target_property(TARGET_SRC_FILES ${TARGET_NAME} SOURCES)
message(FATAL_ERROR "${SOURCES}")
endfunction(run_gcov) |
J'ai essayé un peu toutes les commandes proposées sur les différentes sites internet et là je sèche...
- command ${CMAKE_COMMAND} run_plus -D TARGET_NAME=tests.exe
- command ${CMAKE_COMMAND} -D TARGET_NAME=tests.exe -P /home/bibi/projects/cmake/run_plus.cmake
- command ${CMAKE_COMMAND} run_plus -D TARGET_NAME=tests.exe -P /home/bibi/projects/cmake/run_plus.cmake
Je ne suis peut-être pas obligé de passer par un add_custom_target, mais il faut forcement que cela s’exécute après la target run_tests car celle-ci génère les fichiers à post-traiter par la suite pas la fonction run_plus.
Merci par avance ;)