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