From db0aa3d49d61b56698389554388be9f3c881ce8b Mon Sep 17 00:00:00 2001
From: Dan Goodliffe <dan@randomdan.homeip.net>
Date: Sun, 26 Jun 2016 14:06:54 +0100
Subject: Allow control of --dll-export and --ice

---
 slice.jam | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/slice.jam b/slice.jam
index bc038c1..0ea52ba 100644
--- a/slice.jam
+++ b/slice.jam
@@ -8,6 +8,8 @@ import toolset ;
 type.register SLICE : ice ;
 
 feature slicer : no yes pure ;
+feature allow-ice : no yes ;
+feature ice-visibility : public hidden ;
 
 class slice-scanner : common-scanner
 {
@@ -26,24 +28,29 @@ generators.register-standard slice.slicer : SLICE : CPP H : <slicer>yes ;
 generators.register-standard slice.slicer.pure : SLICE : CPP : <slicer>pure ;
 
 toolset.flags slice.slice2cpp INCLUDES <include> ;
+toolset.flags slice.slice2cpp DLLEXPORT <ice-visibility>public : --dll-export JAM_DLL_PUBLIC ;
+toolset.flags slice.slice2cpp ALLOWICE <allow-ice>yes : --ice ;
 toolset.flags slice.slicer INCLUDES <include> ;
+toolset.flags slice.slicer DLLEXPORT <ice-visibility>public : --dll-export JAM_DLL_PUBLIC ;
+toolset.flags slice.slicer ALLOWICE <allow-ice>yes : --ice ;
 toolset.flags slice.slicer.pure INCLUDES <include> ;
+toolset.flags slice.slicer.pure ALLOWICE <allow-ice>yes : --ice ;
 
 actions slice.slice2cpp
 {
-  slice2cpp -I"$(INCLUDES)" --checksum --output-dir $(1[1]:D) $(2) --dll-export JAM_DLL_PUBLIC
+  slice2cpp -I"$(INCLUDES)" --checksum --output-dir $(1[1]:D) $(2) $(DLLEXPORT) $(ALLOWICE[1])
 }
 
 actions slice.slicer
 {
-  slice2cpp -I"$(INCLUDES)" --checksum --output-dir $(1[1]:D) $(2) --dll-export JAM_DLL_PUBLIC
-	slicer -I"$(INCLUDES)" $(2) $(1[1])
+  slice2cpp -I"$(INCLUDES)" --checksum --output-dir $(1[1]:D) $(2) $(DLLEXPORT) $(ALLOWICE[1])
+	slicer -I"$(INCLUDES)" $(2) $(1[1]) $(ALLOWICE[1])
 }
 
 actions slice.slicer.pure
 {
 	truncate -c -s 0 $(1[1])
-	slicer -I"$(INCLUDES)" $(2) $(1[1])
+	slicer -I"$(INCLUDES)" $(2) $(1[1]) $(ALLOWICE[1])
 }
 
 IMPORT $(__name__) : slice.slice2cpp : : slice.slice2cpp ;
-- 
cgit v1.2.3