Постройте Аду с Gradle - PullRequest
0 голосов
/ 02 мая 2018

У меня проблемы со сборкой Ады с Градлом. Я подумал, что это не должно быть слишком сложно, поскольку 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 -.

...