You've already forked OpenUxAS-bootstrap
mirror of
https://github.com/AdaCore/OpenUxAS-bootstrap.git
synced 2026-02-12 13:07:23 -08:00
* Expose more paths through anod-setenv Update the specs for: - amase - uxas - uxas-ada so that anod-setenv exposes more details of where things are in the sandbox. These changes should make it easier for users to find where anod is putting things. These changes also support updates to the run-examples script, which will migrate to OpenUxAS. * Add needed dependency for running uxas-ada The uxas-ada binary is not statically linked, so the library for zeromq needs to be on the library path.
81 lines
2.7 KiB
Plaintext
81 lines
2.7 KiB
Plaintext
from e3.anod.helper import Make
|
|
from e3.anod.spec import Anod
|
|
from e3.anod.loader import spec
|
|
from e3.fs import mkdir, cp
|
|
import os
|
|
|
|
|
|
class Uxas(spec('common')):
|
|
|
|
@property
|
|
def build_deps(self):
|
|
return [
|
|
Anod.Dependency('pugixml'),
|
|
Anod.Dependency('zeromq'),
|
|
Anod.Dependency('cppzmq'),
|
|
Anod.Dependency('uxas-lmcp', qualifier='lang=cpp'),
|
|
Anod.Dependency('serial'),
|
|
Anod.Dependency('czmq'),
|
|
Anod.Dependency('zyre'),
|
|
Anod.Dependency('sqlite'),
|
|
Anod.Dependency('boost'),
|
|
Anod.Dependency('sqlitecpp')]
|
|
|
|
@property
|
|
def build_source_list(self):
|
|
return [Anod.Source(name='uxas-src',
|
|
publish=True, dest='')]
|
|
|
|
@property
|
|
def build_space_name(self):
|
|
# We use a separate build space for each scenario
|
|
return "%s-%s" % (self.name, self.scenario)
|
|
|
|
@property
|
|
def source_pkg_build(self):
|
|
return [self.SourceBuilder(name='uxas-src',
|
|
fullname=lambda x: 'uxas-src.tar.gz',
|
|
checkout=["openuxas"])]
|
|
|
|
@property
|
|
def scenario(self):
|
|
"""Return selected scenario."""
|
|
return self.parsed_qualifier.get('scenario', 'release')
|
|
|
|
def setenv(self):
|
|
self.env.add_path(os.path.join(self.build_space.install_dir, 'bin'))
|
|
|
|
# Expose directories related to UXAS so that the user can more readily
|
|
# work with the result of the build.
|
|
os.environ['UXAS_BUILD_DIR'] = self.build_space.build_dir
|
|
os.environ['UXAS_SOURCE_DIR'] = self.build_space.src_dir
|
|
os.environ['UXAS_INSTALL_DIR'] = self.build_space.install_dir
|
|
|
|
def build_setenv(self):
|
|
self.deps['zeromq'].setenv(shared=False)
|
|
self.deps['cppzmq'].setenv()
|
|
self.deps['pugixml'].setenv()
|
|
self.deps['serial'].setenv()
|
|
self.deps['uxas-lmcp'].setenv()
|
|
self.deps['czmq'].setenv()
|
|
self.deps['zyre'].setenv()
|
|
self.deps['sqlite'].setenv()
|
|
self.deps['sqlitecpp'].setenv()
|
|
self.deps['boost'].setenv()
|
|
self.deps['czmq'].setenv()
|
|
|
|
@Anod.primitive()
|
|
def build(self):
|
|
self.build_setenv()
|
|
self.log.info('LIBRARY_PATH: %s', os.environ['LIBRARY_PATH'])
|
|
make = Make(self,
|
|
exec_dir=self.build_space.src_dir)
|
|
make.set_var('OBJECT_DIR', self.build_space.build_dir)
|
|
if self.scenario == 'gcov':
|
|
make.set_var('ENABLE_COVERAGE', 'true')
|
|
make.set_var('DEBUG_BUILD', 'true')
|
|
make('all')
|
|
mkdir(os.path.join(self.build_space.install_dir, 'bin'))
|
|
cp(os.path.join(self.build_space.build_dir, 'uxas'),
|
|
os.path.join(self.build_space.install_dir, 'bin'))
|