Systèmes de construction logicielle Introduction à cmake

Documents pareils
Builds et tests Utilisation de CMake et de Dart

Construction de logiciel et packaging

Environnements de développement (intégrés)

Environnements et Outils de Développement Cours 1 Introduction

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Chapitre 10 : Logiciels

Créer son premier package.deb. 19 août

Guide d installation de L A TEX

Remise à niveau d un programme JAVA du domaine public

Présentation Utilisation. VirtualBox. Firas Kraïem. 22 février 2014

MANUEL UTILISATEUR KIWI BACKUP V 3

TD séance n 2c Mise à jour des Systèmes

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

Projet de développement

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

FusionInventory. Guillaume Rousse Journées francophones de Perl 2011

Quelques éléments de compilation en C et makefiles

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Optimisation de logiciels de modélisation sur centre de calcul

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Accès aux ressources informatiques de l ENSEEIHT à distance

A. Architecture du serveur Tomcat 6

Cours Langage C/C++ Programmation modulaire

Installation et compilation de gnurbs sous Windows

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Parallels Transporter Lisez-moi

Virtual Box Mettez un PC dans votre... PC

Installation LTE-SIM. Simulation du réseau 4G (LTE-SIM) en vue d optimiser les ressources spectrales de l opérateur.

Problématique. Techniques générales. Déploiement Windows. Déploiement Linux. Déploiement Mac OS X. Applications Windows. Applications Linux

L informatique en BCPST

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Introduction à Eclipse

Installation et prise en main

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Automatisation de l administration système avec

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Spécialiste Systèmes et Réseaux

MRTG & RRD Tool. Multi Router Traffic Grapher

Contrôle distant par liaison SSH Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Tutoriel code::blocks

JITSI. Est un logiciel pour : Messagerie instantanée Appels téléphoniques Visioconférence et pont vidéo Partage d'écrans

Linux est-il crédible pour le PC familial? Xavier Passot N7 I76 Pour l AI N7 le 11 mars 2010

Atelier Migration. Mohamadi ZONGO Formateur assistant Kassim ASSIROU Atelier Migration.

Chapitre I Notions de base et outils de travail

Presentation d'ubuntu. Chistophe Sauthier Objectif Libre - Ubuntu-fr Nicolas Barcet - Ubuntu Server Product Manager

Manuel logiciel client Java

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Manuel du Desktop Sharing

Cours Linux. Cours en ligne Administrateur Systèmes Linux. Académie Libre

Personnes ressources Tice. Académie de Rouen

DHCPD v3 Installation et configuration

Gérer ses environnements de développement avec Vagrant RMLL 2012

Calcul Scientifique avec 3

RMLL Présentation Activité Pentaho

Retour d'expérience avec : OCS Inventory & GLP

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Travail personnel sur ordinateur

Manuel du client de bureau distant de KDE

Guide du nouveau responsable Debian. Guide du nouveau responsable Debian

Mon premier rpm. 7 juin Avant de commencer RPM URPMI RPMBUILD... 2

Tutoriel : Utilisation du serveur de calcul à distance de PSE

Introduction à l informatique en BCPST

TP1. Outils Java Eléments de correction

TP1 : Initiation à Java et Eclipse

Sync-A-BOX et Duplicati. est une plateforme Cloud pour stocker et gérer vos données en ligne.

User Documentation. Documentation utilisateur. version 0.2b

Sophos Antivirus, guide d installation

Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés 2011/2012

TD/TP 1 Introduction au SDK d Android

C.M. 1 & 2 : Prise en main de Linux

TD 1 - Installation de système UNIX, partitionnement

C2I. Ou réapprendre ce que l on connait. Florimond GUENIAT Première semaine Cours C2I l IUT de Sceaux C2I 1 / 21. florimond.gueniat@limsi.

REPUBLIQUE ISLAMIQUE DE MAURITANIE

Programmation C. Apprendre à développer des programmes simples dans le langage C

La création d un paquet Debian. Aurélien Jarno. Journées du Logiciel Libre. 15 octobre 2005

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Programmation Mobile Android Master CCI

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

DotNet. Plan. Les outils de développement

Les formations. Administrateur Systèmes et Réseaux. ENI Ecole Informatique

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

II- Préparation du serveur et installation d OpenVpn :

Programmer en JAVA. par Tama

Chi rement des postes PC / MAC / LINUX

Tour d horizon des différents SSO disponibles

Initiation à la librairie graphique VTK

Outils pour les réseaux de neurones et contenu du CD-Rom

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Fais ton site internet toi-même

Description de l implantation dans le centre d examen (nom du service ou de l outil et caractéristiques techniques)

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

La programmation orientée objet et le langage C++

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Reproductibilité des expériences de l article "Analyse et réduction du chemin critique dans l exécution d une application"

A Libre Ouvert. Médiathèque Jacques Ellul. le

Transcription:

Systèmes de construction logicielle Introduction à cmake F. Langrognet F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 1 / 33

PLAN 1 Objectifs des systèmes de construction logicielle 2 cmake Introduction Langage cmake et utilisation makefile, make, cmake 3 Exemples avec cmake Construction d un exécutable Construction d une bibliothèque Création de packages F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 2 / 33

PLAN 1 Objectifs des systèmes de construction logicielle 2 cmake Introduction Langage cmake et utilisation makefile, make, cmake 3 Exemples avec cmake Construction d un exécutable Construction d une bibliothèque Création de packages F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 3 / 33

Objectifs des systèmes de construction logicielle Définition Les systèmes de construction logicielle (build systems ou encore moteur de production) sont des logiciels dont l objectif principal est d automatiser, directement ou indirectement, le processus de compilation d un code source voire la distribution des produits logiciels. Wikipedia : Un moteur de production est un logiciel dont la fonction principale consiste à automatiser l ensemble des actions (préprocessing, compilation, éditions des liens, etc.) contribuant, à partir de données sources, à la production d un ensemble logiciel opérationnel. F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 4 / 33

Compilation, éditions de liens Processus F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 5 / 33

Pourquoi utiliser un systeme de construction logicielle? Quelques motivations... Pouvoir compiler, construire l exécutable dans des contextes différents (OS, compilateurs,...) Ne recompiler que le strict minimum Disposer d outils complémentaires : création de packages (linux ou Mac), ou d installateurs pour windows Liens avec les IDE Les principaux IDE intègrent certains de ces outils : KDevelop Eclipse CDT Visual Studio Code : :Blocks F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 6 / 33

PLAN 1 Objectifs des systèmes de construction logicielle 2 cmake Introduction Langage cmake et utilisation makefile, make, cmake 3 Exemples avec cmake Construction d un exécutable Construction d une bibliothèque Création de packages F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 7 / 33

PLAN 1 Objectifs des systèmes de construction logicielle 2 cmake Introduction Langage cmake et utilisation makefile, make, cmake 3 Exemples avec cmake Construction d un exécutable Construction d une bibliothèque Création de packages F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 8 / 33

cmake Logiciel de construction logicielle multilangage multiplate-forme licence libre cmake F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 9 / 33

cmake - Principe général F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 10 / 33

PLAN 1 Objectifs des systèmes de construction logicielle 2 cmake Introduction Langage cmake et utilisation makefile, make, cmake 3 Exemples avec cmake Construction d un exécutable Construction d une bibliothèque Création de packages F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 11 / 33

Langage de cmake Langage cmake cmake possède son propre langage (fichiers CMakeLists.txt) avec : variables listes conditions : IF boucles : FOREACH Syntaxe # Ceci est un commentaire command(argument1 argument2... argumentn) COMMAND(argument1 argument2... argumentn) F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 12 / 33

Utilisation de cmake cmake par défaut Une fois les fichiers CMakeLists.txt créés, il suffit de lancer cmake : $ cmake. Par défaut, un Makefile sera créé Il suffit ensuite de taper les commandes suivantes pour construire et installer le projet : $ make $make install cmake : générateur de configuration pour IDE Syntaxe : $ cmake. -G <generator> Exemples : $ cmake. -G "KDevelop3" $ cmake. -G "CodeBlocks" F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 13 / 33

PLAN 1 Objectifs des systèmes de construction logicielle 2 cmake Introduction Langage cmake et utilisation makefile, make, cmake 3 Exemples avec cmake Construction d un exécutable Construction d une bibliothèque Création de packages F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 14 / 33

makefile - make Le couple makefile, make Les Makefiles sont des fichiers utilisés par le programme make pour exécuter un ensemble d actions, comme la compilation d un projet, l archivage de document, la mise à jour de site,... Exemple de makefile F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 15 / 33

Comment créer des makefiles? A la main autotools Avec les autotools (1990) Avec des "nouveaux" générateurs imake qmake nmake cmake (1999) F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 16 / 33

PLAN 1 Objectifs des systèmes de construction logicielle 2 cmake Introduction Langage cmake et utilisation makefile, make, cmake 3 Exemples avec cmake Construction d un exécutable Construction d une bibliothèque Création de packages F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 17 / 33

PLAN 1 Objectifs des systèmes de construction logicielle 2 cmake Introduction Langage cmake et utilisation makefile, make, cmake 3 Exemples avec cmake Construction d un exécutable Construction d une bibliothèque Création de packages F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 18 / 33

Exemple 1 : Construction d un simple exécutable Arborescence du projet F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 19 / 33

Exemple 1 CMakeLists.txt Construction $ cmake. $ make Création de l exécutable projet_population F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 20 / 33

Exemple 2 : Construction d un simple exécutable avec une arborescence Arborescence du projet F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 21 / 33

Exemple 2 CMakeLists.txt $ cmake. $ make Construction F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 22 / 33

Exemple 3 : automatiser l installation CMakeLists.txt F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 23 / 33

Exemple 3 (suite) Construction - Installation Construction et installation de l exécutable projet_population dans le sous-répertoire bin $ cmake. $ make $make install F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 24 / 33

PLAN 1 Objectifs des systèmes de construction logicielle 2 cmake Introduction Langage cmake et utilisation makefile, make, cmake 3 Exemples avec cmake Construction d un exécutable Construction d une bibliothèque Création de packages F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 25 / 33

Construction d une bibliothèque et d un exécutable Arborescence du projet F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 26 / 33

Bibliothèque et exécutable CMakeLists.txt F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 27 / 33

Bibliothèque et exécutable (suite) Construction - Installation Construction et installation de la bibliothèque libmylib.so dans le sous-répertoire lib Construction et installation de l exécutable projet_population dans le sous-répertoire bin $ cmake. $ make $make install F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 28 / 33

PLAN 1 Objectifs des systèmes de construction logicielle 2 cmake Introduction Langage cmake et utilisation makefile, make, cmake 3 Exemples avec cmake Construction d un exécutable Construction d une bibliothèque Création de packages F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 29 / 33

Construction de packages avec cpack cpack Moteur de création de paquets RPM, DEB, installateur Windows,... Peut s utiliser de façon autonome (fichier CPackConfig.cmake) intégré à cmake (dans un CMakeLists.txt) F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 30 / 33

Création de package deb ave cpack CMakeLists.txt F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 31 / 33

Création de package deb ave cpack cpack Création du fichier population-lib.deb (package pour debian, ubuntu) $ cmake. $ cpack Ce package peut ensuite être installé avec $ sudo dpkg -i population-lib.deb F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 32 / 33

Systèmes de Construction logicielle - Introduction à cmake FIN Merci de votre attention F. Langrognet Systèmes () de construction logicielle - cmake Juin 2014 33 / 33