m (Poursuite de la traduction) |
(Poursuite de la traduction) |
||
| Line 135: | Line 135: | ||
Donc, la bibliothèque manquante est Xtst. Vous devez la trouver (peut-être en installant la bibliothèque libXtst-devel), et relancez cmake. | Donc, la bibliothèque manquante est Xtst. Vous devez la trouver (peut-être en installant la bibliothèque libXtst-devel), et relancez cmake. | ||
| − | == | + | == Utiliser CMake pour une petite application == |
| − | + | Voici le plus simple CMakeLists.txt possible : | |
<code> | <code> | ||
add_executable(hello main.cpp) | add_executable(hello main.cpp) | ||
</code> | </code> | ||
| − | + | Il sert à créer un exécutable "hello" (ou "hello.exe" sous Windows") à partir du fichier source main.cpp. Vous pouvez mettre à la fois des fichiers C et C++ si besoin est. Vous pouvez également mettre différents exécutables et librairies dans CMakeList.txt. Le même fichier source peut être utilisé dans différents projets, et il sera compilé pour chacun des projets. La part la plus important du langage de CMake est les variables : | |
<code> | <code> | ||
set( MY_SOURCES main.cpp widget.cpp) | set( MY_SOURCES main.cpp widget.cpp) | ||
message(STATUS "my sources: ${MY_SOURCES}") | message(STATUS "my sources: ${MY_SOURCES}") | ||
</code> | </code> | ||
| − | + | Donc, utilisez la commande SET() pour définir la valeur d'une variable. Si vous mettez plus d'une chaîne de caractères, la variable sera une liste. Une liste est une liste de chaînes séparées par des virgules. Si vous voulez un seul élément, la variable n'aura que cet élément pour valeur. Pour avoir la valeur d'une variable, utilisez : ${NOM_DE_LA_VARIABLE}. | |
| − | + | Vous pouvez parcourir une liste en utilisant FOREACH() : | |
<code> | <code> | ||
foreach(next_ITEM ${MY_SOURCES}) | foreach(next_ITEM ${MY_SOURCES}) | ||
| Line 153: | Line 153: | ||
endforeach(next_ITEM ${MY_SOURCES}) | endforeach(next_ITEM ${MY_SOURCES}) | ||
</code> | </code> | ||
| − | + | Les commandes de CMake sont sensibles à la casse, de même que les noms de variables ou de paramètres. | |
| − | + | Vous pouvez aussi tester divers choses : | |
<code> | <code> | ||
if (UNIX) | if (UNIX) | ||
| Line 165: | Line 165: | ||
endif (MSVC) | endif (MSVC) | ||
</code> | </code> | ||
| − | + | Dans ce second exemple, on ajoute un élément dans une liste. | |
| − | + | Dans le wiki de CMake, il y a également un [http://www.cmake.org/Wiki/HowToBuildKDE4Software tutoriel] pour utiliser CMake dans la compilation de KDE4. Sa lecture est recommandée. | |
== Using CMake for a KDE Project == | == Using CMake for a KDE Project == | ||
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
CMake lit des fichiers de script et produit des fichiers natifs pour la plateforme sur laquelle il a été lancé. Il peut créer des Makefile GNU, ou des projets KDevelop, XCode ou Visual Studio.
CMake est un logiciel libre sous license BSD. Il est développé par Kitware Inc..
Vosu trouverez plus d'informations relatives à CMake sur la page principale sur CMake de ce site.
CMake est un outil officiel de KDE 4, suite à un choix effectué en Mars 2006, principalement pour ses qualités techniques par rapport aux précédents outils de KDE, tels automake ou unsermake :
Cliquez ici pour télécharger la dernière version de CMake.
Une fois le téléchargement terminé, désarchivez et compilez-le :
$ mkdir cmake-build
$ cd cmake-build
$ ../bootstrap
$ make
$ make install
Par défaut, CMake sera installé dans /usr/local, alors assurez-vous d'avoir /usr/local/bin dans votre répertoire d'exécution ($PATH). Pour changer ce répertoire (exemple : /usr sous Debian), ajoutez l'option '--prefix=PATH' à la commande boostrap.
Lisez ces instructions si vous voulez utiliser la version en cours de dévloppement.
Cliquez ici pour télécharger la dernière version de CMake.
Une fois téléchargé, lancez l'installeur de CMake.
Lisez ces instructions si vous voulez utiliser la version en cours de dévloppement.
Vous devez lancer CMake pour générer les ficheirs de build pour votre système. Les builds in-source et out-of-source sont supportés par CMake, mais actuellement, les builds in-sources sont empêchés par l'implémentation de KDE.
En supposant que vous avez kdelibs/ dans ~/src/kdelibs/ (utilisez $ locate kdelibs/ au besoin), utilisez ces commandes :
$ ls
kdelibs/
$ mkdir kdelibs-build
$ cd kdelibs-build
$ cmake ../kdelibs
Ceci générera les Makefiles pour construire kdelibs/ dans kdelibs-build/.
Vous devez lancer CMake pour générer les ficheirs de build pour votre système. Les builds in-source et out-of-source sont supportés par CMake, mais actuellement, les builds in-sources sont empêchés par l'implémentation de KDE.
En supposant que vous avez kdelibs\ dans c:\daten\kde4, utilisez ces commandes :
So, let's say you have kdelibs\ in c:\daten\kde4, then do the following:
c:\daten\kde4> cd kdelibs\win
c:\daten\kde4> cmake
c:\daten\kde4> make
c:\daten\kde4> make install
c:\daten\kde4> cd ..
c:\daten\kde4> mkdir kdelibs-build
c:\daten\kde4> cd kdelibs-build
c:\daten\kde4\kdelibs-build> cmake ..\kdelibs
Ceci générera les Makefiles pour construire kdelibs\ dans kdelibs-build\. Lisez la page KDE sous Windows pour plus d'informations sur la compilation de KDE sous Windows.
Si vous préférez utiliser des fichiers de projet pour KDevelop 3 (qui sont simplement des Makefiles accompagnés de quelques données pour KDevelop), lancez-le de cette façon :
$ cmake ../kdelibs -GKDevelop3
Utilisez 'cmake -h' pour savoir quels générateurs CMake support ainsi que ses autres options.
Pour trouver le réperoire de Qt4, CMake cherche qmake dans le répertoire d'exécution. CMake n'utilisez pas la variable d'environnement QTDIR. Assurez-vous d'abord que qmake se trouve dans le répertoire d'exécution qui vous utilisez.
Une fois que CMake a terminé, il va créer un fichier nommé "CMakeCache.txt". Ce fichier contient tous les paramètres que CMake a détecté sur votre système. si vous voulez lancer CMake avec un autre générateur ou que vous voulez que CMake refasse la détection, supprimez ce fichier.
Si CMake ne trouve pas quelque chose, mais que vous savez où il est, vous pouvez lui dire manuellement où ceci se trouve. CMake utilise des variables pour stocker ses informations. Ces variables sont situées dans le fichier mentionné ci-dessus : CMakeCache.txt. Il existe trois manières de configurer ces variables :
Vous pouvez lancer "ccmake ../kdelibs" au moins une fois, dans le but d'avoir une idée des variables que CMake utilise. Appuyez sur "T" pour voir également les variables "avancées".
Quelques variables en ligne de commande de cmake que vous pouvez être amené(e) à modifier :
Si vous avez des heades et des bibliothèques installés dans des chemins non-standards, que cmake ne peut trouver, modifiez les variables d'environnement suivantes. Elles peuvent être très utiles, par exemple si vous voulez installer kdesupport dans ~/install/kdesupport. Voci quelques conventions de nommage, qui ne marcherotn pas comme argument dans avec la command cmake :
With CMake 2.6.0 and above the same effect can be achieved by setting just one variable:
Pour plus d'informations, vous pouvez consulter la page de ce wiki sur CMake
Si cmake finit avec "Generating done" et c'est qu'il n'y a eu aucune erreur, alors que si il finit avec "Configuring done" c'est qu'il y en a eu, et que vous devez les corriger. Une fois que cmake a fini de s'exécuter, lancez votre outil de build (par exemple make, KDevelop, XCode, ou MSVC), compilez-le, et attentez que ce soit fini. A ce moment, lancez "make install".
Si vous avez une erreur dans ce genre :
CMake Error: This project requires some variables to be set,
and cmake can not find them.
Please set the following variables:
X11_XTest_LIB (ADVANCED)
il se peut qu'il vous manque une bibliothèque (ou toute autre dépendance). Pour savoir laquelle, cherchez dans cmake/modules directory pour savoir quelle variable cmake n'arrive pas à trouver. Dans l'exemple précédent, il s'agit de
find_library(X11_XTest_LIB Xtst ${X11_LIB_SEARCH_PATH})
Donc, la bibliothèque manquante est Xtst. Vous devez la trouver (peut-être en installant la bibliothèque libXtst-devel), et relancez cmake.
Voici le plus simple CMakeLists.txt possible :
add_executable(hello main.cpp)
Il sert à créer un exécutable "hello" (ou "hello.exe" sous Windows") à partir du fichier source main.cpp. Vous pouvez mettre à la fois des fichiers C et C++ si besoin est. Vous pouvez également mettre différents exécutables et librairies dans CMakeList.txt. Le même fichier source peut être utilisé dans différents projets, et il sera compilé pour chacun des projets. La part la plus important du langage de CMake est les variables :
set( MY_SOURCES main.cpp widget.cpp)
message(STATUS "my sources: ${MY_SOURCES}")
Donc, utilisez la commande SET() pour définir la valeur d'une variable. Si vous mettez plus d'une chaîne de caractères, la variable sera une liste. Une liste est une liste de chaînes séparées par des virgules. Si vous voulez un seul élément, la variable n'aura que cet élément pour valeur. Pour avoir la valeur d'une variable, utilisez : ${NOM_DE_LA_VARIABLE}.
Vous pouvez parcourir une liste en utilisant FOREACH() :
foreach(next_ITEM ${MY_SOURCES})
message(STATUS "next item: ${next_ITEM}")
endforeach(next_ITEM ${MY_SOURCES}) Les commandes de CMake sont sensibles à la casse, de même que les noms de variables ou de paramètres.
Vous pouvez aussi tester divers choses :
if (UNIX)
message(STATUS "This is UNIX (including OS X and CygWin)")
endif (UNIX)
if (MSVC)
set(MY_SRCS ${MY_SRCS} winextra.cpp)
endif (MSVC) Dans ce second exemple, on ajoute un élément dans une liste.
Dans le wiki de CMake, il y a également un tutoriel pour utiliser CMake dans la compilation de KDE4. Sa lecture est recommandée.
Here's a basic CMakeList file that builds a small KDE 4 project:
project( kde4project )
find_package( KDE4 REQUIRED )
include_directories( ${KDE4_INCLUDES} )
set( KDE4ProjectSources kde4mainapp.cpp someclass.cpp someotherclass.cpp )
kde4_add_executable( kde4project ${KDE4ProjectSources} )
target_link_libraries( kde4project ${KDE4_KDEUI_LIBS} ${KDE4_KPARTS_LIBS} )
install( TARGETS kde4project ${INSTALL_TARGETS_DEFAULT_ARGS} )
target_link_libraries contains the development libraries that are linked to your program. E.g. if you want to link to libtidy-devel, your library file name may be called /usr/local/lib/libtidy.a. You would then add -ltidy to a gcc call. Here, you add tidy to your target_link_libraries. If possible, use pre-defined variables or macros like ${KDE4_KDEUI_LIBS}.
install (TARGETS is where the target will finally be installed. If you do not have this line, make install will not be available.
Variables, macros and other useful information specific to KDE can be found at the CMake addons for KDE page.
CMake can be extended using cmake scripts. CMake comes with a number of scripts; under UNIX they are by default installed to /usr/local/share/CMake/Modules/. The KDE libraries install also a set of cmake modules into share/apps/cmake/modules/. The files located there will be preferred over the ones in the system global cmake module path. For detecting software packages there are FindFOO.cmake files, see here for more information. You can also write macros in CMake. They are powerful enough to do most things you will need to build software, but they are not intended to be used as a general purpose programming language.
In kdesdk/cmake/ you can find a script am2cmake . This is a ruby script, so you need to have ruby installed. Run am2cmake in the toplevel directory of your sources:
$ cd src/mykooltool/
$ am2cmake --kde4
Don't forget the switch "--kde4", otherwise it won't generate files suitable for KDE 4 software. The converted files 'may' work as they are, but complicated projects will require some additional editing.
You may have to: