Tour d'horizon de CMake Toulouse 26 janvier 2008Montel Laurent.

Slides:



Advertisements
Présentations similaires
Cours de C – Séance dexercices 19 Octobre Objectif Ecrire un serveur HTTP Sans gérer la partie réseau, on utilisera un utilitaire pour cela Serveur.
Advertisements

Patrick Reuter maître de conférences
Introduction Langage très répandu Noyau Linux VLC … Des avantages indéniables mais aussi des contraintes ! Ceci nest quun rapide tour.
Rappels C.
Au programme du jour …. Ce que vous navez pas encore vu Constantes et variables de classe Main et Tests Utilisation de lAPI Existence des packages Existence.
la programmation en langage C
C.
Exercice 1 1 (père) et 1 (fils) 1 (père) et 0 (fils)
Démo I : INF3135 Construction et maintenance de logiciels Groupe : 10
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique et de génie logiciel Développer.
Développer en C avec Eclipse Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique.
Structures de données IFT Abder Alikacem Espace de nommage Département d’informatique et de génie logiciel Édition Septembre 2009.
Structures de données IFT-2000 Abder Alikacem Espace de nommage Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
Projet de C – Matrices creuses
Points importants de la semaine Le préprocesseur. La conversion de types. Les fonctions.
1 La récursion. Nous avons vu qu'un programme est constitué d'un ensemble de fonctions. Il est possible pour une fonction donnée d'appeler une autre fonction.
ECP – Option SA Henri Fallon
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 4 Polymorphisme II.
Make 1 Les besoins 2 Définition 3 Makefile 4 Optimisation 5 Exemple de Makefile 6 Prototype 7 Autres outils © BTS II 2002 [tv]
Formation C++. Hello World ! #include /* Commentaire sur plusieurs lignes */ int main() { //Affiche hello world std::cout
La librairie assert.h.
B.Shishedjiev -Débogueur1 Déboguer? Comment trouver et corriger les erreurs?
9ième Classe (Mardi, 4 novembre) CSI2572. H Nous avons vu comment utiliser les directives #define #ifndef #endif Pour s’assurer de l’inclusion unique.
Inclusions & dépendances. C compile texte > objet int main () …
La notion de type revisitée en POO
Les Contrôles Page 1. Page 2 If … Elseif... Endif If … Endif if (i=5 and j
Autres éléments du langage
Les modules. Modules Un module est un ensemble de définitions de constantes, de variables et de fonctions réutilisables de projet en projet. Le langage.
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Les types composés Les enregistrements.
Les surcharges d'opérateurs
Le Préprocesseur. Sujets abordés: Préprocesseur –Qu’est ce? –Qu’est ce qu’une directive? Les macros –Les définir, les redéfinir, les dé-définir –Les macros.
Le Langage C MIAGE 2. Détails techniques Moniteur: Vincent Barreaud Responsable: Laurent.
Langage de programmation
Structures de données IFT-2000 Abder Alikacem Laboratoire #1 Département d’informatique et de génie logiciel Édition Septembre 2009.
Emacs Laurent Pierron
Outils logiciel pour la programmation en C. 2 Automatiser la compilation : make make est un utilitaire présent dans toute les distribution de linux >
GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
chkconfig Tel_Portable off Agenda ● Introduction – Mode de fonctionnement – Définitions ● Utilisation de base – Les commandes principales ● Utilisation.
PSPad / Windows. PSPad Fonctions génériques ● Coloration syntaxique ● UTF8, passage à la ligne UNIX / DOS / Mac ● Outline (C, Pascal, INI, HTML, XML,
1 Doxygen. 2 Doxygen : qu’est-ce que c’est ? Code C++, Java,... ● Un générateur de documentation – pour C + +, mais aussi C, Java, Fortran,... – Il fonctionne.
1 Le stage informatique de Masters APIM et PIE (2012/2013) Ivana Hrivnacova Vincent Lafage Basé sur le stage informatique du LAL et IPN par (2005/2006):
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
Portage d'une application sur GPU CreditCruncher.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Séminaire EOLE Dijon octobre 2008 Migration Eole.
Utilisation du logiciel EduStat © Distribution de fréquences simples Les compilations.
Utilisation du logiciel EduStat©
Programmation en C++ Héritage
Environnement du développement de BD ORACLE REPORTS 10g
Application Réfractaires
AugerDb / SimDb Gestion des simulations Auger Java
Grunt : introduction Qu'est-ce que Grunt ?
Algorithmique Langage C
Les fonctions.
Dans le module de prescription
Arguments de la ligne de commande
Modification d’un programme avec PicBasicPro Serge VE2HLS
File Transfer Protocol Secure
Programmation en C++ C++ de base
SRT2 APACHE.
Quand on aime, on ne compte pas...
Openstack - clients Emmanuel Braux
Système d’exploitation UNIX
2018 Nouveau Portail Web Journée des utilisateurs Octopus
1. LE LANGAGE SQL DDL Version 2 - Janvier Le langage SQL-DDL
5. Les modules Découpage d’une application en modules
Int 10. Int 6.
Business Intelligence en ACube OLAP et Reporting avec ACubeOLAP et GRaM.
Transcription de la présentation:

Tour d'horizon de CMake Toulouse 26 janvier 2008Montel Laurent

Qu'est ce qu'est « CMake » ? C'est un logiciel qui est: -> développé par Kitware ( -> Opensource -> Multiplatforme (*Unix*/Mac/Windows) -> un système de macros. Utilité: -> Un wrapper à la génération de Makefile. -> Remplace automake/autoconf sous Unix. -> génère les fichiers spécifiques aux environnements de compilation (Xcode/MSVC++/kdevelop3 etc.)

Les bases de CMake Arborescence: -> CMakeLists.txt -> cmake/module/Find.cmake -> ConfigureCheck.cmake -> config-.h.cmake

Les bases de CMake CMakeLists.txt set(drkonqi_SRCS main.cpp debugger.cpp krashconf.cpp krashadaptor.cpp drbugreport.cpp backtrace.cpp toplevel.cpp ) kde4_add_executable(drkonqi ${drkonqi_SRCS}) target_link_libraries(drkonqi ${KDE4_KIO_LIBS}) install(TARGETS drkonqi DESTINATION ${LIBEXEC_INSTALL_DIR}) Fonctionne sous forme de « Targets »

Les bases de CMake Macro standards dans CmakeLists.txt: -> add_subdirectory( ) -> find_package(<module) -> option( ) -> include ( ) -> configure_file(config-.h.cmake ) -> MESSAGE(STATUS )

Les bases de CMake Module Find.cmake if (GMP_INCLUDE_DIR AND GMP_LIBRARIES) # Already in cache, be silent set(GMP_FIND_QUIETLY TRUE) endif (GMP_INCLUDE_DIR AND GMP_LIBRARIES) find_path(GMP_INCLUDE_DIR NAMES gmp.h ) find_library(GMP_LIBRARIES NAMES gmp ) if(GMP_INCLUDE_DIR AND GMP_LIBRARIES) set(GMP_FOUND 1) endif(GMP_INCLUDE_DIR AND GMP_LIBRARIES) mark_as_advanced(GMP_INCLUDE_DIR GMP_LIBRARIES) Utilisation d'un module: -> Ajouter: find_package( ) exemple: find_package(Eigen) Variables standards: -> _FOUND -> _LIBRARIES -> _INCLUDE_DIRS

Les bases de CMake ConfigureChecks.cmake Image::Image(){ qDebug()<<"Le système supporte les images de type :" <<"png," <<"tiff"; } Ajout dans CMakeLists.txt : -> Find_package(PNG) -> if(PNG_FOUND) set(HAVE_PNG 1) endif(PNG_FOUND) -> configure_file(config-programme.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-programme.h )

Les bases de CMake ConfigureChecks.cmake Fichier config-programme.h.cmake: #cmakedefine HAVE_PNG 1 il deviendra lors de la génération si PNG trouvé: #define HAVE_PNG 1 sinon // #define HAVE_PNG 1 #include Image::Image(){ qDebug()<<"Le système supporte les images:" #ifdef HAVE_PNG <<"png" #endif <<"tiff"; }

Les bases de CMake ConfigureChecks.cmake Recherche de fichier: check_include_files(sys/stat.h HAVE_SYS_STAT_H) Recherche de prototype de fonction: check_prototype_exists(mkstemps "stdlib.h;unistd.h" HAVE_MKSTEMPS_PROTO) Compilation: check_cxx_source_compiles(" #include int main(){ struct statvfs *mntbufp; int flags; return getmntinfo(&mntbufp, flags); } " GETMNTINFO_USES_STATVFS )

Les bases de CMake Comment utiliser CMake ? Configuration en ligne de commande: lancer « cmake. » en ligne de commande :) Passage d'options: cmake -D. Exemple: cmake -DCMAKE_INSTALL_PREFIX=/opt/kde4.

Les bases de CMake CCMake ? ( en ncurses)

CMake dans KDE Automake/Autoconf -> Makefile.am -> configure.in.* -> répertoire admin CMake: -> CMakeLists.txt -> ConfigureCheck.cmake am2cmake + generate_findpackage_file

Questions ?