summaryrefslogtreecommitdiff
path: root/slice.jam
diff options
context:
space:
mode:
Diffstat (limited to 'slice.jam')
-rw-r--r--slice.jam25
1 files changed, 20 insertions, 5 deletions
diff --git a/slice.jam b/slice.jam
index 9120a61..434e562 100644
--- a/slice.jam
+++ b/slice.jam
@@ -7,7 +7,9 @@ import toolset ;
type.register SLICE : ice ;
-feature slicer : no yes : propagated ;
+feature slicer : no yes pure ;
+feature allow-ice : no yes ;
+feature ice-visibility : public hidden ;
class slice-scanner : common-scanner
{
@@ -22,22 +24,35 @@ scanner.register slice-scanner : include ;
type.set-scanner SLICE : slice-scanner ;
generators.register-standard slice.slice2cpp : SLICE : CPP H : <slicer>no ;
-generators.register-standard slice.slicer : SLICE : CPP H : <slicer>yes ;
+generators.register-standard slice.slicer : SLICE : CPP CPP(slicer-%) H : <slicer>yes ;
+generators.register-standard slice.slicer.pure : SLICE : CPP(slicer-%) : <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)
+ 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)
- slicer -I"$(INCLUDES)" $(2) $(1[1])
+ slice2cpp -I"$(INCLUDES)" --checksum --output-dir $(1[1]:D) $(2) $(DLLEXPORT) $(ALLOWICE[1])
+ slicer -I"$(INCLUDES)" $(2) $(1[2]) $(ALLOWICE[1])
+}
+
+actions slice.slicer.pure
+{
+ slicer -I"$(INCLUDES)" $(2) $(1[1]) $(ALLOWICE[1])
}
IMPORT $(__name__) : slice.slice2cpp : : slice.slice2cpp ;
IMPORT $(__name__) : slice.slicer : : slice.slicer ;
+IMPORT $(__name__) : slice.slicer.pure : : slice.slicer.pure ;