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.