5.6.6 : Le fichier CMakeLists.txt



Écrire le fichier CMakeLists.txt est assez simple :

On définit notre projet :
1
2
project(TestHadamardNvcpp)
cmake_minimum_required(VERSION 3.0)


On ajoute quelques flags de compilation (le fameux -stdpar, une option d'optimisation basique, les warnings et l'activation de C++17) :
1
set(CMAKE_CXX_FLAGS "-stdpar=gpu -O1 -Wall -std=c++17")


On créé notre bibliothèque de calcul :
1
add_library(test_hadamard_nvcpp_lib SHARED hadamard_product.cpp)


On créé notre bibliothèque de chronomètre (cela évitera au compilateur de faire des optimisations problématiques dans le main.cpp)
1
add_library(phoenix_timer SHARED timer.cpp)


On créé notre programme :
1
add_executable(test_hadamard_nvcpp main.cpp)


On le lie au bibliothèques déclarées précédemment :
1
target_link_libraries(test_hadamard_nvcpp test_hadamard_nvcpp_lib phoenix_timer)


Le fichier CMakeLists.txt complet :

1
2
3
4
5
6
7
project(TestHadamardNvcpp)
cmake_minimum_required(VERSION 3.0)
set(CMAKE_CXX_FLAGS "-stdpar=gpu -O1 -Wall -std=c++17")
add_library(test_hadamard_nvcpp_lib SHARED hadamard_product.cpp)
add_library(phoenix_timer SHARED timer.cpp)
add_executable(test_hadamard_nvcpp main.cpp)
target_link_libraries(test_hadamard_nvcpp test_hadamard_nvcpp_lib phoenix_timer)


Le fichier CMakeLists.txt est disponible ici.