Maison >développement back-end >C++ >Comment puis-je exclure des fichiers de LOCAL_SRC_FILES dans le NDK Gradle DSL ?

Comment puis-je exclure des fichiers de LOCAL_SRC_FILES dans le NDK Gradle DSL ?

DDD
DDDoriginal
2024-11-27 06:57:10632parcourir

How Can I Exclude Files from LOCAL_SRC_FILES in the NDK Gradle DSL?

Contourner LOCAL_SRC_FILES dans NDK DSL avec des modèles d'exclusion

Question :

LOCAL_SRC_FILES peut-il être défini dans un bloc NDK DSL dans Gradle ?

Réponse originale (obsolète) :

Actuellement, cette fonctionnalité n'est pas prise en charge par le plugin Gradle. Pensez à utiliser le fichier Android.mk traditionnel.

Réponse mise à jour :

Avec la sortie du plugin Gradle 0.4.0, cela est désormais possible en utilisant des modèles d'exclusion.

android.sources {
    main {
        jni.source {
            srcDirs = ["~/srcs/jni"]
            exclude "**/win.cpp"
        }
    }
}

Solution alternative avec bibliothèque statique :

Pour exclure les fichiers des builds NDK sans utiliser LOCAL_SRC_FILES, une approche différente peut être adoptée.

  1. Créez une bibliothèque statique contenant les fichiers exclus.
  2. Modifiez build.gradle pour qu'il dépende de la bibliothèque statique :
model {
    android.ndk {
        moduleName = "hello-jni"
        abiFilters += "$appAbi".toString()
        ldFlags += "$staticLib".toString()
        ldLibs += "log"
        cppFlags += "-std=c++11"
    }
}
  1. Définir la bibliothèque statique dans Android.mk :
LOCAL_MODULE    := staticLib
LOCAL_SRC_FILES := HelloJni.cpp

LOCAL_CPPFLAGS += -std=c++11

include $(BUILD_STATIC_LIBRARY)

Cette approche exclut efficacement les fichiers spécifiés des versions NDK standard et garantit que les symboles nécessaires sont disponibles pour le débogage.

Remarque : Pensez à déclencher un "Build/Clean" après avoir modifié les paramètres d'exclusion.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn