blob: 8137f3b24aef2c73e0863ef66464047fe60f449c [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',
Ilya Moiseenko3cc8efe2011-08-22 18:54:37 -070026 'topology-read','internet','applications'])
Alexander Afanasyev0ab833e2011-08-18 15:49:13 -070027 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
Alexander Afanasyev8b379052011-08-21 16:58:20 -070037 module.find_sources_in_dirs (['model', 'apps', 'helper',
38 'helper/ccnb-parser',
39 'helper/ccnb-parser/visitors',
40 'helper/ccnb-parser/syntax-tree'],[],['.cc']);
Alexander Afanasyev2a5df202011-08-15 22:39:05 -070041 tests.find_sources_in_dirs( ['test'], [], ['.cc'] );
Alexander Afanasyev8b379052011-08-21 16:58:20 -070042 headers.find_sources_in_dirs( ['model', 'apps', 'helper',
43 'helper/ccnb-parser',
44 'helper/ccnb-parser/visitors',
45 'helper/ccnb-parser/syntax-tree'], [], ['.h'] );
Alexander Afanasyev2a5df202011-08-15 22:39:05 -070046
Alexander Afanasyev0ab833e2011-08-18 15:49:13 -070047 if True or bld.env['ENABLE_EXAMPLES']:
48 for path in ["examples"]:
49 anode = bld.path.find_dir (path)
50 if not anode or not anode.is_child_of(bld.srcnode):
51 raise Utils.WscriptError("Unable to use '%s' - either because \
52 it's not a relative path"", or it's not child of \
Alexander Afanasyev8b379052011-08-21 16:58:20 -070053 '%s'."%(name,bld.srcnode))
Alexander Afanasyev0ab833e2011-08-18 15:49:13 -070054 bld.rescan(anode)
55 for filename in bld.cache_dir_contents[anode.id]:
56 if filename.startswith('.') or not filename.endswith(".cc"):
57 continue
58 name = filename[:-len(".cc")]
59 obj = bld.create_ns3_program(name, ['NDNabstraction'])
60 obj.path = obj.path.find_dir (path)
61 obj.source = filename
62 obj.target = name
63 obj.name = obj.target
64 obj.uselib = 'BOOST BOOST_IOSTREAMS'
Ilya Moiseenko1762af72011-07-18 16:43:10 -070065
Ilya Moiseenko02fb7062011-08-11 17:18:00 -070066 bld.ns3_python_bindings()
Alexander Afanasyev43e70252011-08-08 18:48:18 -070067