Android Studio non riesce a trovare i miei file di intestazione quando si trovano in una posizione diversa dalla cartella di origine principale del mio modulo. Ciò è evidente dalle #include istruzioni "SDL_config.h" che sono evidenziate in rosso (altre affermazioni #include vanno bene).Come si imposta un percorso di inclusione C/C++ con il plug-in sperimentale Gradle?
Ho provato a modificare i valori cppFlags di seguito, ma sto iniziando a dubitare che questi cppFlags vengano addirittura passati al compilatore.
Qualcuno è riuscito a includere file da cartelle diverse dalla loro cartella di origine principale in questo modo?
C'è un problema con il modo in cui ho specificato cppFlags, o forse il moduleName o anche le fonti?
Potrei passare attraverso la sorgente SDL2 e modificare tutte le istruzioni #include sui percorsi relativi #include ma non voglio veramente modificare la sorgente SDL2. Dovrei semplicemente essere in grado di specificare un elenco di percorsi di inclusione in qualche modo.
apply plugin: 'com.android.model.application'
model {
...
android.ndk {
moduleName = 'main'
//W:\hello-sdl-android\android-project\app\src\main\jni\SDL2\include
cppFlags += "-I${file("src/main/jni/SDL2/include")}".toString()
cppFlags += "-I${file("src/main/jni/SDL2/src")}".toString()
}
android.sources {
main.jni {
source {
srcDirs += ['src/main/jni/src']
srcDirs += ['src/main/jni/SDL2/src']
}
}
}
...
}
UPDATE: Ecco maggiori informazioni sul mio attuale layout del progetto:
app/src/main/jni app/src/main/jni/src/Main.cpp < - Questa è la compilazione app/src/main/jni/SDL2 < - Tutto fonte SDL2 è in fase di qui app/src/main/jni/GLM < - Tutto fonte GLM è in fase di qui
Questo layout è un risultato diretto di utilizzare il progetto di esempio che Mi è stato fornito qui: https://gitlab.com/scannerdarkly/hello-sdl-android
Quel progetto costruirà usando ndk-build dalla riga di comando - Volevo fare un ulteriore passo avanti costruendo all'interno di Android Studio. Il mio progetto tenterà di disegnare un triangolo su un dispositivo GLES2.
Ecco un link al mio progetto in corso finora:
http://www.mediafire.com/download/92577p7vf123l72/hello-sdl-android.zip
Grazie - lo farò provalo tra un paio d'ore e facci sapere se questo ti aiuta. Cancellerò l'altra domanda se questa è la risposta. – SparkyNZ
Questo non funziona ancora per me. In realtà, ho appena provato a inserire l'offendente #include "SDL_config.h" nel mio file main.cpp e sembra che lo stia raccogliendo bene. È quando sto compilando la sorgente SDL2 che ho un problema ..Quindi ho bisogno di un ulteriore "moduleName" o qualche forma di "sub" nome del modulo, forse? Sono confuso su cosa "moduleName" in realtà si riferisca comunque - sicuramente significa un eseguibile o una libreria - non un singolo file .cpp. Fornirò un link per il download a breve. Ottenere questo lavoro andrà a beneficio degli altri. – SparkyNZ
Un'altra cosa: i file di origine SDL sono file C. Main.cpp è un file C++. Forse il mio problema è semplice come dichiarare "cFlags" oltre a "cppFlags"? – SparkyNZ