| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| prog:vcpkg [2025/01/28 14:05] – [CMake] : ajout de "Passer des paramètres à l'appel de vcpkg" root | prog:vcpkg [2025/09/24 10:29] (Version actuelle) – Ajout de "Appliquer des limitations" root |
|---|
| |
| ====portfile.cmake==== | ====portfile.cmake==== |
| | |
| | ===Appliquer des limitations=== |
| | |
| | Il est possible d'imposer la compilation en static ou en shared only. |
| | |
| | <code cmake> |
| | if(VCPKG_TARGET_IS_WINDOWS) |
| | vcpkg_check_linkage(ONLY_STATIC_LIBRARY) |
| | vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) |
| | vcpkg_check_linkage(ONLY_STATIC_CRT) |
| | vcpkg_check_linkage(ONLY_DYNAMIC_CRT) |
| | endif() |
| | </code> |
| | |
| | En interne, cela applique un ''set(VCPKG_LIBRARY_LINKAGE static PARENT_SCOPE)''. |
| |
| ===Récupérer le code source=== | ===Récupérer le code source=== |
| * ''VCPKG_BUILD_TYPE'' : laisser ne pas définir pour compiler en ''Debug'' et ''Release''. Mettre ''release'' (sans la majuscule) pour compiler uniquement en Release. Uniquement ''debug'' n'est pas supporté. | * ''VCPKG_BUILD_TYPE'' : laisser ne pas définir pour compiler en ''Debug'' et ''Release''. Mettre ''release'' (sans la majuscule) pour compiler uniquement en Release. Uniquement ''debug'' n'est pas supporté. |
| |
| * Flags de compilation : ''VCPKG_CXX_FLAGS'', ''VCPKG_CXX_FLAGS_DEBUG'', ''VCPKG_CXX_FLAGS_RELEASE'', ''VCPKG_C_FLAGS'', ''VCPKG_C_FLAGS_DEBUG'', ''VCPKG_C_FLAGS_RELEASE'', ''VCPKG_LINKER_FLAGS'', ''VCPKG_LINKER_FLAGS_DEBUG'', ''VCPKG_LINKER_FLAGS_RELEASE''. Attention, ces variables seront respectées si ''VCPKG_CHAINLOAD_TOOLCHAIN_FILE'' pointe vers ceux à l'intérieur de ''vcpkg''. Ce qui n'est pas le cas pour le triplet ''wasm-emscripten''. Dans ce cas, on peut utiliser : ''%%set(VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG -DCMAKE_CXX_FLAGS=\"-O1 -g\" -DCMAKE_C_FLAGS=\"-O1 -g\" --trace-expand)%%'' | * Flags de compilation. |
| | <WRAP center round important 60%> |
| | Ces variables seront respectées si ''VCPKG_CHAINLOAD_TOOLCHAIN_FILE'' pointe vers ceux à l'intérieur de ''vcpkg''. Ce qui n'est pas le cas pour le triplet ''wasm32-emscripten'' (webassembly) qui utilise le fichier ''%%${EMSCRIPTEN_ROOT}/cmake/Modules/Platform/Emscripten.cmake%%''. Dans ce cas, on peut utiliser : ''%%set(VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG -DCMAKE_CXX_FLAGS=\"-O1 -g\" -DCMAKE_C_FLAGS=\"-O1 -g\" --trace-expand)%%''. |
| | </WRAP> |
| | |
| | * |
| | * ''VCPKG_C_FLAGS'' / ''VCPKG_CXX_FLAGS'' (doivent être défini tous les deux), ''VCPKG_C_FLAGS_DEBUG'' / ''VCPKG_CXX_FLAGS_DEBUG'', ''VCPKG_C_FLAGS_RELEASE'' / ''VCPKG_CXX_FLAGS_RELEASE'', |
| | * ''VCPKG_LINKER_FLAGS'', ''VCPKG_LINKER_FLAGS_DEBUG'', ''VCPKG_LINKER_FLAGS_RELEASE''. |
| |
| * Flags de configuration de CMake : ''VCPKG_CMAKE_CONFIGURE_OPTIONS'', ''VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG'' et ''VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE''. C'est via cette variable que l'on peut passer par exemple ''%%--trace-expand%%'' à la configuration des ports. | * Flags de configuration de CMake : ''VCPKG_CMAKE_CONFIGURE_OPTIONS'', ''VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG'' et ''VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE''. C'est via cette variable que l'on peut passer par exemple ''%%--trace-expand%%'' à la configuration des ports. |