diff options
Diffstat (limited to 'project2/ice/iceDataSource.cpp')
-rw-r--r-- | project2/ice/iceDataSource.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/project2/ice/iceDataSource.cpp b/project2/ice/iceDataSource.cpp index 5cfd5b1..7b77b19 100644 --- a/project2/ice/iceDataSource.cpp +++ b/project2/ice/iceDataSource.cpp @@ -11,6 +11,8 @@ IceDataSource::Proxies IceDataSource::proxies; DECLARE_OPTIONS(IceDataSource, "ICE Data Source") ("ice.client.slice", Options::functions(boost::bind(&IceDataSource::SetSlice, _1), boost::bind(&IceDataSource::ClearSlice)), "The ICE Slice file(s) to compile") +("ice.client.sliceclient", Options::functions(boost::bind(&IceDataSource::SetSliceClient, _1), boost::bind(&IceDataSource::ClearSlice)), + "The ICE Slice file(s) to compile (client only, assumes comms library referenced)") END_OPTIONS(IceDataSource); int dummy = 0; @@ -33,6 +35,18 @@ IceDataSource::SetSlice(const VariableType & vslice) } void +IceDataSource::SetSliceClient(const VariableType & vslice) +{ + auto slice = vslice.as<std::string>(); + BuildComms bc(slice); + bc.Update(IceCompile::UpdateBuild); + BuildShared bcs(slice, { }); + BuildClient bcl(slice, { &bcs }); + bcl.Update(); + libs.insert({ slice, bcl.Open() }); +} + +void IceDataSource::ClearSlice() { libs.clear(); |