model { components { zip(NativeExecutableSpec) { sources { cpp.source { srcDir 'zip/src' include '**/*.cpp' } cpp.lib project: ':Zip', library: 'Zip' cpp.lib project: ':Util', library: 'Util' cpp.lib project: ':Foundation', library: 'Foundation' } } unzip(NativeExecutableSpec) { sources { cpp.source { srcDir 'unzip/src' include '**/*.cpp' } cpp.lib project: ':Zip', library: 'Zip' cpp.lib project: ':Util', library: 'Util' cpp.lib project: ':Foundation', library: 'Foundation' } } } binaries { all { } withType(SharedLibraryBinarySpec) { lib project: ':Foundation', library: 'Foundation', linkage: 'shared' } withType(StaticLibraryBinarySpec) { lib project: ':Foundation', library: 'Foundation', linkage: 'static' } withType(NativeExecutableSpec) { lib project: ':Foundation', library: 'Foundation', linkage: 'static' } } } task samples { dependsOn "assemble" }