import modules ;

BOOST_ROOT = [ modules.peek : BOOST_ROOT ] ;

use-project /torrent : .. ;

if $(BOOST_ROOT)
{
	use-project /boost : $(BOOST_ROOT) ;
}

project client_test
	: requirements
	<threading>multi <library>/torrent//torrent
	<toolset>darwin:<cflags>-Wno-unused-command-line-argument
# disable warning C4275: non DLL-interface classkey 'identifier' used as base for DLL-interface classkey 'identifier'
	<toolset>msvc:<cxxflags>/wd4275
	# C4268: 'identifier' : 'const' static/global data initialized
	#        with compiler generated default constructor fills the object with zeros
	<toolset>msvc:<cxxflags>/wd4268
	<toolset>msvc:<cxxflags>/wd4373
	<toolset>clang:<cflags>-Wno-implicit-int-float-conversion
	<conditional>@warnings
	: default-build
	<link>static
	<cxxstd>14
	<address-model>64
	;

exe client_test : client_test.cpp print.cpp torrent_view.cpp session_view.cpp ;

exe simple_client : simple_client.cpp ;
exe custom_storage : custom_storage.cpp ;
exe bt-get : bt-get.cpp ;
exe bt-get2 : bt-get2.cpp ;
exe bt-get3 : bt-get3.cpp ;
exe stats_counters : stats_counters.cpp ;
exe dump_torrent : dump_torrent.cpp ;
exe torrent2magnet : torrent2magnet.cpp ;
exe magnet2torrent : magnet2torrent.cpp ;
exe dump_bdecode : dump_bdecode.cpp ;
exe make_torrent : make_torrent.cpp ;
exe connection_tester : connection_tester.cpp ;
exe upnp_test : upnp_test.cpp ;
exe check_files : check_files.cpp ;

explicit stage_client_test ;
explicit stage_connection_tester ;
explicit stage ;
explicit stage_dependencies ;

install stage : client_test connection_tester torrent2magnet magnet2torrent make_torrent dump_torrent check_files upnp_test stats_counters bt-get bt-get2 simple_client dump_bdecode custom_storage : <location>. ;
install stage_client_test : client_test : <location>. ;
install stage_connection_tester : connection_tester : <location>. ;

install stage_dependencies
	: /torrent//torrent
	: <location>dependencies
	<install-dependencies>on
	<install-type>SHARED_LIB
	;

