Unterstützung für Android CMake-Projekte in Visual Studio

Unterstützung für Android CMake-Projekte in Visual Studio

CMake ist ein plattformübergreifender Projektgenerator, der die Wiederverwendung von gemeinsam genutztem C++-Code über mehrere IDE- und Projektsysteme hinweg ermöglicht. Wir haben eine Änderung an CMake vorgenommen, um unsere Android-Toolchain in Visual Studio zu unterstützen. Mit dieser Änderung können Sie Ihr vorhandenes CMake-Projekt für Android übernehmen und es mit minimalen Änderungen in Visual Studio öffnen und von unserer umfassenden IDE-Erfahrung für Android profitieren. und wir planen, mit Kitware zusammenzuarbeiten, um diese Änderungen in das öffentliche CMake-Repository zu integrieren. Aber derzeit müssen Sie Folgendes tun, um loszulegen. Als Voraussetzung installieren Sie bitte das Android-MDD-Paket in Visual Studio.

CMake abrufen

Wechseln Sie zum VCMDDAndroid-Zweig im Microsoft CMake-Repository.

  • Klicken Sie auf die Schaltfläche ZIP herunterladen und laden Sie eine Offline-Kopie des VCMDDAndroid-Zweigs herunter, entpacken Sie das Archiv.
  • Installieren Sie CMake 3.4.1 von https://cmake.org/download/, dies ist notwendig, um CMake selbst zu erstellen, der Win32-Installer wird empfohlen.
  • Führen Sie cmake -G „Visual Studio 14“ aus Auf dem entpackten Archiv sollte dies aus dem Stammordner von CMake ausgeführt werden. Das dauert gut 15 Minuten oder so.

Dabei wird der Visual Studio 2015-Generator verwendet und Visual Studio-Projekte generiert. Das Ziel ist es, CMake in Visual Studio zu erstellen. Nachdem CMake ausgeführt wurde, sollten Sie die Visual Studio-Projekte im Ausgangsverzeichnis haben.

  • Führen Sie msbuild cmake.sln aus , wird CMake erstellt. Sie können msbuild über eine VS2015-Entwickler-Eingabeaufforderung ausführen.

Die kompilierten Binärdateien befinden sich im Ordner bin\Debug.

  • Fügen Sie entweder das Ausgabeverzeichnis zu PATH hinzu oder stellen Sie sicher, dass Sie cmake.exe aus diesem Verzeichnis ausführen, damit es die modifizierte Version von CMake und nicht die installierte ausführt.

Erstellen Ihrer CMake-Projekte

Das folgende Beispiel veranschaulicht die Funktionen des Generators und der CMake-Variablen. Führen Sie cmake -G „Visual Studio 14 ARM“ –DCMAKE_SYSTEM_NAME=VCMDDAndroid aus um die Visual Studio-Projekte zu generieren. Sie können den ARM-Bezeichner entfernen, um für x86 zu kompilieren. Hier ist der Inhalt der CMakeLists.txt. Sie können auch einen Link zu diesem kurzen Beispiel unten finden.cmake_minimum_required(VERSION 3.4)project (Sample)add_library(Sample STATIC sample.cpp)# demo of the variables set when VCMDDAndroid is targetif(VC_MDD_ANDROID AND VC_MDD_ANDROID_VERSION MATCHES „1.0“)  message („VCMDDAndroid 1.0“)else()  if(CMAKE_GENERATOR MATCHES „Visual Studio 14“ AND CMAKE_SYSTEM_NAME MATCHES „VCMDDAndroid“)    message(“VCMDDAndroid“)  endif()endif()# optional, Demo der VC_MDD_ANDROID* propertiesset_property(TARGET Sample PROPERTY VC_MDD_ANDROID_USE_OF_STL „c++_static“)set_property(TARGET Sample PROPERTY VC_MDD_ANDROID_API_LEVEL „android-21“)Eine CMake-Toolchain-Datei ist nicht erforderlich, das Beispiel ist in sich abgeschlossen. Wir legen großen Wert auf Benutzerfreundlichkeit und haben dafür gesorgt, dass die minimale Menge an Informationen von den Benutzern in das System eingegeben wird. Die einzige erforderliche Information ist der Systemname. Öffnen und erstellen Sie die generierten Projekte in Visual Studio.

Bekannte Probleme und Einschränkungen

  1. Derzeit unterstützen wir nur Objekt-, statische oder dynamische Bibliotheken. Wir unterstützen das Paketierungsprojekt (Java), das als Bootstrapper verwendet wird, nicht, wir planen, bald Unterstützung dafür hinzuzufügen.
  2. Wir unterstützen nur x86- und ARM-Architekturen, wir planen, bald Unterstützung für x64 und ARM64 hinzuzufügen.

Was kommt als nächstes?

In Zukunft werden wir x64 und ARM64 sowie Unterstützung für Paketierungsprojekte hinzufügen. Wir werden auch mit Kitware zusammenarbeiten, um diese Arbeit in das öffentliche CMake-Repository zu integrieren. Wir hoffen, dass Sie diese Unterstützung in Ihren CMake-Projekten nützlich finden, und wir freuen uns auf Ihr Feedback und Ihre Vorschläge zur Verbesserung dieser Unterstützung. Für weitere Neuigkeiten zu diesem Thema wenden Sie sich bitte direkt an uns oder folgen Sie uns auf VCBlog und unserer plattformübergreifenden Visual C++-Seite page.sample.zip