apply plugin: 'c' apply plugin: 'sdk-files' apply plugin: 'native-setup' executables { mksdcard {} } sources { mksdcard { c { source { srcDir "src/source" include "**/*.c" } } } } binaries.all { cCompiler.args "-D_FILE_OFFSET_BITS=64" } sdk { mac { item( { getExeName("darwin") } ) { executable true builtBy 'darwinMksdcardExecutable' } } linux { item( { getExeName("linux") } ) { executable true builtBy 'linuxMksdcardExecutable' } } windows { item( { getExeName("windows32") } ) { name 'mksdcard.exe' builtBy 'windows32MksdcardExecutable' } } } def getExeName(String platform) { // binaries will return a set of binaries def binaries = executables.mksdcard.binaries.matching { it.name == "${platform}MksdcardExecutable" } // calling .exeFile on the set returns an array with the result from each item in the set... return binaries.executableFile.get(0) }