blob: 64a73361276b5c03f992b705702eb07088808e35 [file] [log] [blame]
Ilya Moiseenko1762af72011-07-18 16:43:10 -07001## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
2
Alexander Afanasyev45b92d42011-08-14 23:11:38 -07003import os
4import Logs
5import Utils
Alexander Afanasyev2a5df202011-08-15 22:39:05 -07006import Options
7
8def set_options(opt):
9 opt.tool_options('boost')
10
11def configure(conf):
12 conf.check_tool('boost')
Alexander Afanasyev0ab833e2011-08-18 15:49:13 -070013 conf.env['BOOST'] = conf.check_boost(lib = 'iostreams',
Alexander Afanasyev2a5df202011-08-15 22:39:05 -070014 min_version='1.40.0' )
15 if not conf.env['BOOST']:
16 conf.report_optional_feature("ndn-abstract", "NDN abstraction", False,
17 "Required boost libraries not found")
18 conf.env['ENABLE_NDN_ABSTRACT']=False;
19 return
20
21 conf.env['ENABLE_NDN_ABSTRACT']=True;
22
Alexander Afanasyev45b92d42011-08-14 23:11:38 -070023
Ilya Moiseenko1762af72011-07-18 16:43:10 -070024def build(bld):
Alexander Afanasyev0ab833e2011-08-18 15:49:13 -070025 module = bld.create_ns3_module ('NDNabstraction', ['core', 'network', 'point-to-point',
26 'topology-read'])
27 module.uselib = 'BOOST BOOST_IOSTREAMS'
Alexander Afanasyev404c0792011-08-09 17:09:59 -070028
Alexander Afanasyev45b92d42011-08-14 23:11:38 -070029 tests = bld.create_ns3_module_test_library('NDNabstraction')
Ilya Moiseenko1762af72011-07-18 16:43:10 -070030 headers = bld.new_task_gen('ns3header')
31 headers.module = 'NDNabstraction'
Alexander Afanasyev2a5df202011-08-15 22:39:05 -070032
33 if not bld.env['ENABLE_NDN_ABSTRACT']:
Alexander Afanasyev0ab833e2011-08-18 15:49:13 -070034 conf.env['MODULES_NOT_BUILT'].append('NDNabstraction')
Alexander Afanasyev2a5df202011-08-15 22:39:05 -070035 return
36
37 module.find_sources_in_dirs (['model', 'apps', 'helper'],[],['.cc']);
38 tests.find_sources_in_dirs( ['test'], [], ['.cc'] );
Alexander Afanasyevc74a6022011-08-15 20:01:35 -070039 headers.find_sources_in_dirs( ['model', 'apps', 'helper'], [], ['.h'] );
Alexander Afanasyev43e70252011-08-08 18:48:18 -070040
Alexander Afanasyev2a5df202011-08-15 22:39:05 -070041
Alexander Afanasyev0ab833e2011-08-18 15:49:13 -070042 if True or bld.env['ENABLE_EXAMPLES']:
43 for path in ["examples"]:
44 anode = bld.path.find_dir (path)
45 if not anode or not anode.is_child_of(bld.srcnode):
46 raise Utils.WscriptError("Unable to use '%s' - either because \
47 it's not a relative path"", or it's not child of \
48 '%s'."%(name,bld.srcnode))
49 bld.rescan(anode)
50 for filename in bld.cache_dir_contents[anode.id]:
51 if filename.startswith('.') or not filename.endswith(".cc"):
52 continue
53 name = filename[:-len(".cc")]
54 obj = bld.create_ns3_program(name, ['NDNabstraction'])
55 obj.path = obj.path.find_dir (path)
56 obj.source = filename
57 obj.target = name
58 obj.name = obj.target
59 obj.uselib = 'BOOST BOOST_IOSTREAMS'
Ilya Moiseenko1762af72011-07-18 16:43:10 -070060
Ilya Moiseenko02fb7062011-08-11 17:18:00 -070061 bld.ns3_python_bindings()
Alexander Afanasyev43e70252011-08-08 18:48:18 -070062