model {
	components {
		dict(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'dict/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':Foundation', library: 'Foundation'				
			}
		}
		download(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'download/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':Foundation', library: 'Foundation'				
			}
		}
		EchoServer(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'EchoServer/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':Util', library: 'Util'				
				cpp.lib project: ':Foundation', library: 'Foundation'				
			}
		}
		HTTPFormServer(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'HTTPFormServer/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':Util', library: 'Util'				
				cpp.lib project: ':Foundation', library: 'Foundation'				
			}
		}
		httpget(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'httpget/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':Foundation', library: 'Foundation'				
			}
		}
		HTTPLoadTest(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'HTTPLoadTest/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':Util', library: 'Util'				
				cpp.lib project: ':Foundation', library: 'Foundation'				
			}
		}
		HTTPTimeServer(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'HTTPTimeServer/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':Util', library: 'Util'				
				cpp.lib project: ':Foundation', library: 'Foundation'				
			}
		}
		ifconfig(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'ifconfig/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':Foundation', library: 'Foundation'				
			}
		}
		Mail(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'Mail/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':Foundation', library: 'Foundation'				
			}
		}
		Ping(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'Ping/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':Util', library: 'Util'				
				cpp.lib project: ':Foundation', library: 'Foundation'				
			}
		}
		SMTPLogger(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'SMTPLogger/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':Foundation', library: 'Foundation'				
			}
		}
		TimeServer(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'TimeServer/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				cpp.lib project: ':Util', library: 'Util'				
				cpp.lib project: ':Foundation', library: 'Foundation'				
			}
		}
		WebSocketServer(NativeExecutableSpec) {
			sources {
				cpp.source { srcDir 'WebSocketServer/src' include '**/*.cpp' }
				cpp.lib project: ':Net', library: 'Net'				
				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" }


