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"
    if (Os.isFamily(Os.FAMILY_WINDOWS)) {
        linker.args "-static-libgcc"
    }
}

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)
}

