Boost logo

Boost-Commit :

From: ghost_at_[hidden]
Date: 2008-05-21 08:41:41


Author: vladimir_prus
Date: 2008-05-21 08:41:41 EDT (Wed, 21 May 2008)
New Revision: 45606
URL: http://svn.boost.org/trac/boost/changeset/45606

Log:
Added tntnet application server support, from Eduardo Gurgel.

Added:
   trunk/tools/build/v2/contrib/tntnet.jam (contents, props changed)

Added: trunk/tools/build/v2/contrib/tntnet.jam
==============================================================================
--- (empty file)
+++ trunk/tools/build/v2/contrib/tntnet.jam 2008-05-21 08:41:41 EDT (Wed, 21 May 2008)
@@ -0,0 +1,208 @@
+# Copyright 2008 Eduardo Gurgel
+#
+# Distributed under the Boost Software License, Version 1.0. (See
+# accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+#
+
+# Support for creating components for the Tntnet web application
+# server (http://tntnet.org)
+#
+# Example:
+#
+# using tntnet : /usr ;
+# lib index : index.png index.js index.css index.ecpp otherclass.cpp
+# /tntnnet//tntnet /tntnet//cxxtools ;
+#
+#
+
+import modules ;
+import feature ;
+import errors ;
+import "class" : new ;
+import generators ;
+import project ;
+import toolset : flags ;
+import os ;
+import virtual-target ;
+import scanner ;
+import type ;
+
+type.register ECPP : ecpp ;
+type.register JPEG : jpeg ;
+type.register JPG : jpg ;
+type.register PNG : png ;
+type.register JS : js ;
+type.register CSS : css ;
+type.register GIF : gif ;
+
+project.initialize $(__name__) ;
+project tntnet ;
+
+# Save the project so that we tolerate 'import + using' combo.
+.project = [ project.current ] ;
+# Initialized the Tntnet support module. The 'prefix' parameter
+# tells where Tntnet is installed.
+rule init ( prefix : full_bin ? : full_inc ? : full_lib ? )
+{
+ project.push-current $(.project) ;
+
+ # pre-build paths to detect reinitializations changes
+ local inc_prefix lib_prefix bin_prefix ;
+ if $(full_inc)
+ {
+ inc_prefix = $(full_inc) ;
+ }
+ else
+ {
+ inc_prefix = $(prefix)/include ;
+ }
+ if $(full_lib)
+ {
+ lib_prefix = $(full_lib) ;
+ }
+ else
+ {
+ lib_prefix = $(prefix)/lib ;
+ }
+ if $(full_bin)
+ {
+ bin_prefix = $(full_bin) ;
+ }
+ else
+ {
+ bin_prefix = $(prefix)/bin ;
+ }
+
+ if $(.initialized)
+ {
+ if $(prefix) != $(.prefix)
+ {
+ errors.error
+ "Attempt the reinitialize Tntnet with different installation prefix" ;
+ }
+ if $(inc_prefix) != $(.incprefix)
+ {
+ errors.error
+ "Attempt the reinitialize Tntnet with different include path" ;
+ }
+ if $(lib_prefix) != $(.libprefix)
+ {
+ errors.error
+ "Attempt the reinitialize Tntnet with different library path" ;
+ }
+ if $(bin_prefix) != $(.binprefix)
+ {
+ errors.error
+ "Attempt the reinitialize Tntnet with different bin path" ;
+ }
+ }
+ else
+ {
+ .initialized = true ;
+ .prefix = $(prefix) ;
+
+ # Setup prefixes for include, binaries and libs.
+ .incprefix = $(.prefix)/include ;
+ .libprefix = $(.prefix)/lib ;
+ .binprefix = $(.prefix)/bin ;
+
+ # Generates cpp files from ecpp files using "ecppc" tool
+ generators.register-standard tntnet.ecpp : ECPP : CPP ;
+ # Generates cpp files from jpeg files using "ecppc" tool
+ generators.register-standard tntnet.jpeg : JPEG : CPP ;
+ # Generates cpp files from jpg files using "ecppc" tool
+ generators.register-standard tntnet.jpg : JPG : CPP ;
+ # Generates cpp files from png files using "ecppc" tool
+ generators.register-standard tntnet.png : PNG : CPP ;
+ # Generates cpp files from js files using "ecppc" tool
+ generators.register-standard tntnet.js : JS : CPP ;
+ # Generates cpp files from gif files using "ecppc" tool
+ generators.register-standard tntnet.gif : GIF : CPP ;
+ # Generates cpp files from css files using "ecppc" tool
+ generators.register-standard tntnet.css : CSS : CPP ;
+ # Scanner for ecpp includes
+ type.set-scanner ECPP : ecpp-scanner ;
+
+
+ local usage-requirements =
+ <include>$(.incprefix)
+ <library-path>$(.libprefix)
+ <dll-path>$(.libprefix)
+ <threading>multi
+ <allow>tntnet ;
+ lib cxxtools : $(main)
+ :
+ :
+ :
+ <include>$(.incprefix)/cxxtools
+ $(usage-requiriments)
+ ;
+ lib tntnet : $(main)
+ :
+ :
+ :
+ <include>$(.incprefix)/tntnet
+ $(usage-requiriments)
+ ;
+
+ }
+ project.pop-current ;
+
+}
+
+rule directory
+{
+ return $(.prefix) ;
+}
+
+rule initialized ( )
+{
+ return $(.initialized) ;
+}
+
+# Get <include> from current toolset.
+flags tntnet.ecpp INCLUDES <include> ;
+
+actions ecpp
+{
+ $(.binprefix)/ecppc -I " $(INCLUDES) " -o $(<) $(>)
+}
+
+actions jpeg
+{
+ $(.binprefix)/ecppc -b -m image/jpeg -o $(<) $(>)
+}
+
+actions jpg
+{
+ $(.binprefix)/ecppc -b -m image/jpeg -o $(<) $(>)
+}
+
+actions js
+{
+ $(.binprefix)/ecppc -b -m application/x-javascript -o $(<) $(>)
+}
+
+actions png
+{
+ $(.binprefix)/ecppc -b -m image/png -o $(<) $(>)
+}
+actions gif
+{
+ $(.binprefix)/ecppc -b -m image/gif -o $(<) $(>)
+}
+actions css
+{
+ $(.binprefix)/ecppc -b -m text/css -o $(<) $(>)
+}
+
+class ecpp-scanner : common-scanner
+{
+ rule pattern ( )
+ {
+ return "<%include.*>(.*)</%include>" ;
+ }
+}
+
+scanner.register ecpp-scanner : include ;


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk