model {
	components {
		download(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'download/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':NetSSL_OpenSSL', library: 'NetSSL'				
				cpp.lib project: ':Crypto', library: 'Crypto'				
				cpp.lib library: 'crypto'
				cpp.lib library: 'ssl'
				cpp.lib project: ':Util', library: 'Util'				
				cpp.lib project: ':Foundation', library: 'Foundation'				
			}
		}
		HTTPSTimeServer(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'EchoServer/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':NetSSL_OpenSSL', library: 'NetSSL'				
				cpp.lib project: ':Crypto', library: 'Crypto'				
				cpp.lib library: 'crypto'
				cpp.lib library: 'ssl'
				cpp.lib project: ':Util', library: 'Util'				
				cpp.lib project: ':Foundation', library: 'Foundation'				
			}
		}
		Mail(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'HTTPFormServer/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':NetSSL_OpenSSL', library: 'NetSSL'				
				cpp.lib project: ':Crypto', library: 'Crypto'				
				cpp.lib library: 'crypto'
				cpp.lib library: 'ssl'
				cpp.lib project: ':Util', library: 'Util'				
				cpp.lib project: ':Foundation', library: 'Foundation'				
			}
		}
		TwitterClient(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'httpget/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':NetSSL_OpenSSL', library: 'NetSSL'				
				cpp.lib project: ':Crypto', library: 'Crypto'				
				cpp.lib library: 'crypto'
				cpp.lib library: 'ssl'
				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" }


