# cmake_vcpkg_android_vscode **Repository Path**: xiaoliang2121/cmake_vcpkg_android_vscode ## Basic Information - **Project Name**: cmake_vcpkg_android_vscode - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2024-04-23 - **Last Updated**: 2025-01-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## vscode + cmake + vcpkg + android ndk开发环境配置 在`.vscode`文件夹中使用4个文件进行配置: 1. cmake-kits.json:配置编译器相关,以及一些通用的cmake配置项 ```json [ { "name": "android ndk 21.4.7075529", "compilers": { "C": "D:/ProgramFiles/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe", "CXX": "D:/ProgramFiles/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe" }, "cmakeSettings": { "CMAKE_INSTALL_PREFIX": "${workspaceFolder}/out/android/${variant:buildType}/${variant:abi}", "ANDROID_TOOLCHAIN": "clang", "ANDROID_NATIVE_API_LEVEL": 21, "ANDROID_STL": "c++_shared", "ANDROID_CPP_FEATURES": "rtti exceptions" } }, { "name": "android ndk 24.0.8215888", "compilers": { "C": "D:/ProgramFiles/Android/Sdk/ndk/24.0.8215888/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe", "CXX": "D:/ProgramFiles/Android/Sdk/ndk/24.0.8215888/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe" }, "cmakeSettings": { "CMAKE_INSTALL_PREFIX": "${workspaceFolder}/out/android/${variant:buildType}/${variant:abi}", "ANDROID_TOOLCHAIN": "clang", "ANDROID_NATIVE_API_LEVEL": 24, "ANDROID_STL": "c++_shared", "ANDROID_CPP_FEATURES": "rtti exceptions" } }, { "name": "android ndk 26.2.11394342", "compilers": { "C": "D:/ProgramFiles/Android/Sdk/ndk/26.2.11394342/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe", "CXX": "D:/ProgramFiles/Android/Sdk/ndk/26.2.11394342/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe" }, "cmakeSettings": { "CMAKE_INSTALL_PREFIX": "${workspaceFolder}/out/android/${variant:buildType}/${variant:abi}", "ANDROID_TOOLCHAIN": "clang", "ANDROID_NATIVE_API_LEVEL": 26, "ANDROID_STL": "c++_shared", "ANDROID_CPP_FEATURES": "rtti exceptions" } } ] ``` 2. cmake-variants.json:配置变体,release/debug + android abi,以及跟abi强相关的cmake配置项 ```json { "buildType": { "default": "debug", "description": "The build type.", "choices": { "debug": { "short": "Debug", "long": "Disable optimizations - include debug information.", "buildType": "Debug" }, "release": { "short": "Release", "long": "Optimize for speed - exclude debug information.", "buildType": "Release" } } }, "abi": { "default": "armeabi-v7a", "description": "abi for android build", "choices": { "armeabi-v7a": { "short": "armv7", "long": "abi for armeabi-v7a", "settings": { "VCPKG_TARGET_TRIPLET": "arm-neon-android", "ANDROID_ABI": "armeabi-v7a" } }, "arm64-v8a": { "short": "arm64", "long": "abi for arm64-v8a", "settings": { "VCPKG_TARGET_TRIPLET": "arm64-android", "ANDROID_ABI": "arm64-v8a" } }, "x86_64": { "short": "x86_64", "long": "abi for x86_64", "settings": { "VCPKG_TARGET_TRIPLET": "x64-android", "ANDROID_ABI": "x86_64" } } } } } ``` 3. c_cpp_properties.json:IDE智能跳转、函数导航相关功能 ```json { "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "configurationProvider": "ms-vscode.cmake-tools" }, { "name": "Android", "includePath": [ "${workspaceFolder}/**" ], "defines": [ ], "compilerPath": "D:/ProgramFiles/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "clang-x64", "configurationProvider": "ms-vscode.cmake-tools" } ], "version": 4 } ``` 4. settings.json:主要是cmake的常规配置,一些编译宏,cmake配置时的环境变量设置,并行编译数据控制,generator设置等 ```json { "cmake.configureEnvironment": { "ANDROID_NDK_HOME": "D:/ProgramFiles/Android/Sdk/ndk/21.4.7075529", "VCPKG_ROOT": "E:/Dev/vcpkg", "VCPKG_MAX_CONCURRENCY": "6" }, "cmake.configureSettings": { "CMAKE_TOOLCHAIN_FILE": "${env:VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", "VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${env:ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake", "VCPKG_MANIFEST_MODE": true, "VCPKG_INSTALL_OPTIONS": [ "--clean-buildtrees-after-build", "--clean-packages-after-build" ], "CMAKE_BUILD_TYPE": "${buildType}" }, "cmake.parallelJobs": 6, "cmake.configureOnOpen": false, "cmake.generator": "Ninja", "files.associations": { "iostream": "cpp" } } ``` ## vcpkg_android.cmake `vcpkg_android.cmake`在android studio中配置时很有用