使用Gradle构建Ada

时间:2018-05-02 14:43:48

标签: gradle build.gradle ada gradlew

我在使用Gradle构建Ada时遇到了麻烦。我认为它不应该太难,因为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

My 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 - 。

0 个答案:

没有答案