У меня проблемы со сборкой Ады с Градлом. Я подумал, что это не должно быть слишком сложно, поскольку Ada создается с использованием компилятора GCC и Ada, но я был очень неправ. Я изучил весь интернет и документацию Gradle, но не смог найти решение.
Это моя ошибка при запуске ./gradlew build, ./gradlew compileCalcExecutableCalcC или ./gradlew calcExecutable (мой файл Ada называется calc.adb)
Не удалось выполнить задачу «сборка».
Не удалось найти исполняемые файлы:
- исполняемый файл «calc: исполняемый файл»: нет цепочки инструментов для сборки для платформы «linux_x86-64»:
- Цепочка инструментов 'gnat' (GNU GCC): не удалось определить метаданные GCC: не удалось выполнить gnatmake -dM -E -v -.
- Цепочка инструментов 'gnat_clang' (Clang): не удалось определить метаданные Clang: не удалось выполнить gnatmake -dM -E -v -.
Это мой файл build.gradle:
apply plugin: 'c'
model{
toolChains{
gnat(Gcc){ // Gradle doesn't have an Ada toolchain, so we're creating a custom toolchain
target("linux_x86-64"){
path '/usr/bin'
cCompiler.executable = 'gnatmake'
cCompiler.withArguments{ args ->
Collections.replaceAll(args, "CUSTOM", '-f', '-u', '-c')
} // end cCompiler.withArguments
} // end target()
} // end gnat
gnat_clang(Clang){
target("linux_x86-64") {
path '/usr/bin'
cCompiler.executable = 'gnatmake'
cCompiler.withArguments{ args ->
Collections.replaceAll(args, "CUSTOM", '-f', '-u', '-c')
}
} // end target
} // end gnat_clang
} // end toolChains
components{
calc(NativeExecutableSpec){
binaries.all{
cCompiler.args "-f", "-u", "-c", "calc.adb"
} // end binaries.all
sources{
c.source.srcDirs = ['src/']
c.source.includes = ['**/calc.adb']
}
} // end calc
} // end components
} // end model
Моя версия Gradle и Gradle Wrapper - 4.7, а моя версия Groovy - 2.4.12
Обновление:
Gradle теперь распознает новые флаги. Вот обновленный build.gradle:
apply plugin: 'c'
model{
toolChains{
gnat(Gcc){ // Gradle doesn't have an Ada toolchain, so we're creating a custom toolchain
target("linux_x86-64"){
path '/usr/bin'
cCompiler.executable = 'gnatmake'
cCompiler.withArguments{ args ->
Collections.replaceAll(args, "CUSTOM", "-dM -E -v -.")
} // end cCompiler.withArguments
} // end target()
} // end gnat
} // end toolChains
components{
calc(NativeExecutableSpec){
sources{
c.source.srcDirs = ['src/']
c.source.includes = ['**/calc.adb']
}
} // end calc
} // end components
} // end model
Теперь Gradle выдает новую ошибку, и я не совсем уверен, как это исправить.
Для платформы 'linux_x86-64' нет доступных цепочек инструментов:
- Цепочка инструментов 'gnat' (GNU GCC): не удалось определить метаданные GCC: не удалось выполнить gnatmake -dM -E -v -.
- Цепочка инструментов 'gnat_clang' (Clang): не удалось определить метаданные Clang: не удалось выполнить gnatmake -dM -E -v -.