Ce navigateur n’est plus pris en charge.

Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.

Télécharger Microsoft Edge Plus d’informations sur Internet Explorer et Microsoft Edge

Consultez Exemple d’installation et d’utilisation de packages : sqlite pour obtenir un exemple complet d’utilisation de CMake.

CMAKE_TOOLCHAIN_FILE

Les projets configurés pour utiliser le fichier de chaîne d’outils vcpkg (via le paramètre CMAKE_TOOLCHAIN_FILE CMake ) peuvent rechercher des bibliothèques à partir de vcpkg à l’aide des fonctions CMake standard : find_package() , find_path() et find_library() .

Nous vous recommandons d’utiliser CMake Presets pour spécifier votre fichier de chaîne d’outils. Par exemple, si vous avez défini la variable VCPKG_ROOT d’environnement , vous pouvez utiliser les éléments suivants CMakePresets.json et passer --preset debug la ligne de configuration :

"version": 3, "configurePresets": [ "name": "debug", "toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
cmake -B build -S /my/project --preset debug

Si vous devez utiliser un chemin d’accès absolu pour vcpkg spécifique à votre ordinateur actuel, vous pouvez l’utiliser CMakeUserPresets.json et l’ajouter à votre .gitignore fichier.

"version": 3, "configurePresets": [ "name": "debug", "toolchainFile": "C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake"

Les versions CMake antérieures à 3.19 doivent passer le fichier de chaîne d’outils sur la ligne de commande configurer :

cmake ../my/project -DCMAKE_TOOLCHAIN_FILE=<vcpkg-root>/scripts/buildsystems/vcpkg.cmake

Utilisation des bibliothèques

vcpkg prend en charge les mécanismes natifs de CMake pour la recherche de bibliothèques : find_package(), find_library()et find_path(). Lors de l’installation de bibliothèques avec prise en charge spécifique de CMake, vcpkg affiche les informations d’utilisation sur la façon d’utiliser la bibliothèque :

The package zlib is compatible with built-in CMake targets:
    find_package(ZLIB REQUIRED)
    target_link_libraries(main PRIVATE ZLIB::ZLIB)

vcpkg n’ajoute pas automatiquement de chemins d’accès include ou de liaison à votre projet. Pour utiliser une bibliothèque d’en-tête uniquement, vous pouvez utiliser find_path() qui fonctionnera correctement sur toutes les plateformes :

# To find and use catch2
find_path(CATCH_INCLUDE_DIR NAMES catch.hpp PATH_SUFFIXES catch2)
include_directories(${CATCH_INCLUDE_DIR})

Intégration à l’IDE

Visual Studio / Visual Studio Code

Nous vous recommandons d’utiliser des présélections CMake dans Visual Studio et Visual Studio Code.

Pour plus d’informations, consultez Configurer et générer avec des présélections CMake dans Visual Studio et Configurer et générer avec des présélections CMake dans Visual Studio Code.

CLion

Ouvrez les paramètres Des chaînes d’outils (File > Settings sur Windows et Linux, CLion > Preferences sur macOS), puis accédez aux paramètres CMake (Build, Execution, Deployment > CMake). Dans CMake options, ajoutez la ligne suivante :

-DCMAKE_TOOLCHAIN_FILE=<vcpkg-root>/scripts/buildsystems/vcpkg.cmake

Vous devez ajouter cette ligne à chaque profil séparément.

Utilisation de plusieurs fichiers de chaîne d’outils

Pour combiner le fichier de chaîne d’outils de vcpkg avec un autre fichier de chaîne d’outils, vous pouvez définir la variable VCPKG_CHAINLOAD_TOOLCHAIN_FILEde cache CMake :

cmake ../my/project \
   -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake \
   -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=../my/project/toolchain.cmake

Vous pouvez également inclure la chaîne d’outils vcpkg à la fin du fichier de chaîne d’outils principal :

# MyToolchain.cmake
set(CMAKE_CXX_COMPILER ...)
set(VCPKG_TARGET_TRIPLET x64-my-custom-windows-triplet)
include(/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake)

Notes

vcpkg n’applique pas automatiquement les paramètres de votre chaîne d’outils, tels que vos indicateurs de compilation ou de compilateur, lors de la création de bibliothèques. Pour modifier les paramètres de bibliothèque de vcpkg, vous devez créer un fichier triplet personnalisé (qui peut partager votre chaîne d’outils)**

Informations de référence sur les paramètres

Toutes les variables affectant vcpkg doivent être définies avant la première project() directive, par exemple dans une CMakePresets.jsoncarte de , via la ligne de "cacheVariables" commande ou set() les instructions.

VCPKG_TARGET_TRIPLET

Ce paramètre contrôle le triplet vcpkg à partir duquel installera et consommera les bibliothèques.

Si ce paramètre n’est pas défini, vcpkg détecte automatiquement un triplet par défaut approprié en fonction des paramètres actuels du compilateur. Si vous modifiez cette variable CMake, vous devez supprimer votre cache et reconfigurer.

VCPKG_HOST_TRIPLET

Cette variable contrôle pour quelles dépendances d’hôte triplet seront installées.

Si ce paramètre n’est pas défini, vcpkg détecte automatiquement un triplet natif approprié (x64-windows, x64-osx, x64-linux).

Voir également Dépendances de l’hôte.

VCPKG_INSTALLED_DIR

Cette variable définit l’emplacement à partir duquel les bibliothèques seront installées et consommées.

En mode manifeste, la valeur par défaut est ${CMAKE_BINARY_DIR}/vcpkg_installed.

En mode classique, la valeur par défaut est ${VCPKG_ROOT}/installed.

VCPKG_MANIFEST_MODE

Cette variable force vcpkg à fonctionner en mode manifeste ou en mode classique.

La valeur ON par défaut est quand VCPKG_MANIFEST_DIR n’est pas vide ou ${CMAKE_SOURCE_DIR}/vcpkg.json existe.

Pour désactiver le mode manifeste lorsqu’un vcpkg.json est détecté, définissez ce paramètre sur OFF.

VCPKG_MANIFEST_DIR

Cette variable spécifie un autre dossier contenant un vcpkg.json manifeste.

La valeur par défaut est ${CMAKE_SOURCE_DIR} si ${CMAKE_SOURCE_DIR}/vcpkg.json existe.

VCPKG_MANIFEST_INSTALL

Cette variable contrôle si vcpkg sera automatiquement exécuté pour installer vos dépendances lors de votre étape de configuration.

La valeur ON par défaut est si VCPKG_MANIFEST_MODE est ON.

VCPKG_BOOTSTRAP_OPTIONS

Cette variable peut être définie sur des paramètres de commande supplémentaires à passer à ./bootstrap-vcpkg.

En mode manifeste, vcpkg est automatiquement démarré si l’exécutable n’existe pas.

VCPKG_OVERLAY_TRIPLETS

Cette variable peut être définie sur une liste de chemins d’accès à passer sur la ligne de commande en tant que --overlay-triplets=...

VCPKG_OVERLAY_PORTS

Cette variable peut être définie sur une liste de chemins d’accès à passer sur la ligne de commande en tant que --overlay-ports=...

VCPKG_MANIFEST_FEATURES

Cette variable peut être définie sur une liste de fonctionnalités à activer lors de l’installation à partir de votre manifeste.

Par exemple, les fonctionnalités peuvent être utilisées par des projets pour contrôler la création avec des dépendances supplémentaires afin d’activer des tests ou des exemples :

"name": "mylibrary", "version": "1.0", "dependencies": [ "curl" ], "features": { "samples": { "description": "Build Samples", "dependencies": [ "fltk" ] "tests": { "description": "Build Tests", "dependencies": [ "gtest" ]

Ce paramètre peut être contrôlé directement par les présélections CMake avec "cacheVariables" ou indirectement en fonction d’autres paramètres :

# CMakeLists.txt
option(BUILD_TESTING "Build tests" OFF)
if(BUILD_TESTING)
  list(APPEND VCPKG_MANIFEST_FEATURES "tests")
endif()
option(BUILD_SAMPLES "Build samples" OFF)
if(BUILD_SAMPLES)
  list(APPEND VCPKG_MANIFEST_FEATURES "samples")
endif()
project(myapp)
# ...

VCPKG_MANIFEST_NO_DEFAULT_FEATURES

Cette variable contrôle l’activation des fonctionnalités par défaut en plus de celles répertoriées dans VCPKG_MANIFEST_FEATURES. Si la valeur est définie ONsur , les fonctionnalités par défaut ne sont pas activées automatiquement.

La valeur par défaut est OFF.

VCPKG_INSTALL_OPTIONS

Cette variable peut être définie sur une liste de paramètres de ligne de commande supplémentaires à passer à l’outil vcpkg lors de l’installation automatique.

VCPKG_PREFER_SYSTEM_LIBS

Cette fonctionnalité est déconseillée. Utilisez plutôt des ports de superposition vides.

Cette variable contrôle si vcpkg ajoute au lieu d’ajouter ses chemins d’accès à CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATH et CMAKE_FIND_ROOT_PATH pour que les bibliothèques/packages vcpkg soient trouvés après la chaîne d’outils/bibliothèques système/packages.

La valeur par défaut est OFF.

VCPKG_FEATURE_FLAGS

Cette variable peut être définie sur une liste d’indicateurs de fonctionnalité à passer à l’outil vcpkg lors de l’installation automatique pour accepter un comportement expérimental.

Pour plus d’informations, consultez l’option --feature-flags= de ligne de commande.

VCPKG_TRACE_FIND_PACKAGE

Lorsque la valeur est définie ONsur , imprimez chaque appel sur find_package. Les appels imbriqués (par exemple via find_dependency) sont mis en retrait en fonction de la profondeur d’imbrication.