summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Jamfile.jam25
-rw-r--r--Jamrules.jam12
2 files changed, 37 insertions, 0 deletions
diff --git a/Jamfile.jam b/Jamfile.jam
index 54326de..b636025 100644
--- a/Jamfile.jam
+++ b/Jamfile.jam
@@ -108,3 +108,28 @@ for CONFIG in $(CONFIGURATIONS)
Documentation docs/manual.html : docs/manual.qbk ;
Alias docs : docs/manual.html ;
+
+# samples
+for SAMPLE in [ Glob docs/samples : *.cpp ]
+{
+ local CONFIG = "debug" ;
+ local DEFINES = "PUGIXML_STANDARD" ;
+
+ # build folder
+ local CFGBUILD = $(BUILD)/$(toolset)/$(DEFINES:J=_)/$(CONFIG) ;
+
+ # compilation options
+ local CFGFLAGS = $(CCFLAGS) [ GetCFlags $(CONFIG) : $(DEFINES) ] ;
+ CFGFLAGS += -I src ;
+
+ # build and run sample
+ local EXECUTABLE = $(CFGBUILD)/samples/$(SAMPLE:S=.exe) ;
+ local PUGIXML = $(CFGBUILD)/pugixml.lib ;
+
+ Application $(EXECUTABLE) : $(SAMPLE) : $(CFGFLAGS) : $(PUGIXML) ;
+
+ RunSampleAction $(EXECUTABLE)_run : $(EXECUTABLE) ;
+ Depends $(EXECUTABLE)_run : $(EXECUTABLE) ;
+
+ Depends samples : $(EXECUTABLE)_run ;
+}
diff --git a/Jamrules.jam b/Jamrules.jam
index 6dfba7d..1efd90c 100644
--- a/Jamrules.jam
+++ b/Jamrules.jam
@@ -441,6 +441,12 @@ if ( $(UNIX) )
$(>)
}
+ actions RunSampleAction
+ {
+ cd docs/samples
+ ../../$(>)
+ }
+
actions quietly ignore MakeDirAction
{
mkdir -p $(<)
@@ -458,6 +464,12 @@ else
$(>:\\)
}
+ actions RunSampleAction
+ {
+ cd docs\samples
+ ..\..\$(>:\\)
+ }
+
actions quietly ignore MakeDirAction
{
mkdir $(<:\\) >nul 2>&1