3.1.5 : Le CMakeLists.txt principal
Voici le CMakeLists.txt : Commençons par le nom du projet et la version minimale de CMake :
1 2 |
project(TestProjectReleaseOnTag) cmake_minimum_required(VERSION 3.0) |
Ajoutons le sous dossier qui contient les scripts CMake dont nous aurons besoin pour mettre à jour notre projet ou créer des paquets binaire :
1 |
add_subdirectory(cmake)
|
Créons le projet :
1 2 3 |
phoenix_base_project("TestProjectReleaseOnTag" "0.0.10" "Test to automatically create release on tag" "https://gitlab.in2p3.fr/CTA-LAPP/PHOENIX_LIBS/TESTS/TestProjectReleaseOnTag") |
Incluons des dossiers :
1 2 3 |
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src) |
Créons le script qui permettra de tester si le projet est bien installer sur un système :
1 |
phoenix_create_find_full(TestProjectReleaseOnTag "shadok.h" "shadok" "test_print_shadok" "") |
Incluons les source du projet :
1 2 |
#To create the shadok : for line in `cat src/banner.txt`; do echo "std::cout << \"$line\" << std::endl;"; done add_subdirectory(src) |
Incluons les sources du programme :
1 |
add_subdirectory(program)
|
Créons une variable qui définie le programme (nous en aurons besoin pour les tests unitaires) :
1 |
set(TEST_PROGRAM_SHADOK "${CMAKE_CURRENT_BINARY_DIR}/program/test_print_shadok") |
Si les tests unitaires sont activés, nous ajoutons le dossier TESTS :
1 2 3 4 |
if(SELF_TESTS_MODE) include(CTest) add_subdirectory(TESTS) endif(SELF_TESTS_MODE) |
Variable définit pour l'inclusion de sous-projets :
1 |
set(PHOENIX_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/src;${PHOENIX_INCLUDE_DIRS}" CACHE INTERNAL "list of Phoenix include dirs") |
Le fichier CMakeLists.txt complet :
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 |
project(TestProjectReleaseOnTag) cmake_minimum_required(VERSION 3.0) add_subdirectory(cmake) phoenix_base_project("TestProjectReleaseOnTag" "0.0.10" "Test to automatically create release on tag" "https://gitlab.in2p3.fr/CTA-LAPP/PHOENIX_LIBS/TESTS/TestProjectReleaseOnTag") include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src) phoenix_create_find_full(TestProjectReleaseOnTag "shadok.h" "shadok" "test_print_shadok" "") #To create the shadok : for line in `cat src/banner.txt`; do echo "std::cout << \"$line\" << std::endl;"; done add_subdirectory(src) add_subdirectory(program) set(TEST_PROGRAM_SHADOK "${CMAKE_CURRENT_BINARY_DIR}/program/test_print_shadok") if(SELF_TESTS_MODE) include(CTest) add_subdirectory(TESTS) endif(SELF_TESTS_MODE) set(PHOENIX_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/src;${PHOENIX_INCLUDE_DIRS}" CACHE INTERNAL "list of Phoenix include dirs") |
Lien de téléchargement ici.