Well, with cinterops: ``` final def os = org.gradl...
# multiplatform
m
Well, with cinterops:
Copy code
final def os = org.gradle.internal.os.OperatingSystem.current()

kotlin {
    final def hostPreset = os.isWindows() ? presets.mingwX64
                         : os.isLinux()   ? presets.linuxX64
                         : os.isMacOsX()  ? presets.macosX64
                         : /* ??? */ null
    targets {
        fromPreset(hostPreset, 'png2kt') {
            compilations.main {
                outputKinds 'EXECUTABLE'
                cinterops {
                    libpng {
                        switch (hostPreset) {
                            case presets.mingwX64:
                                includeDirs "${System.getenv("MINGW64_DIR")?:"c:/msys64/mingw64"}/include"
                                break
                            case presets.linuxX64:
                                includeDirs.headerFilterOnly '/usr/include', '/usr/include/x86_64-linux-gnu'
                                break
                            case presets.macosX64:
                                includeDirs.headerFilterOnly '/opt/local/include', '/usr/local/include'
                                break
                        }
                    }
                }
                switch (hostPreset) {
                    case presets.mingwX64:
                        linkerOpts "-L${System.getenv("MINGW64_DIR")?:"c:/msys64/mingw64"}/lib -lpng"
                        break
                }
            }
        }
    }
https://github.com/msink/png2kt