diff options
Diffstat (limited to 'src/boost/tools/build/example/python_modules')
4 files changed, 57 insertions, 0 deletions
diff --git a/src/boost/tools/build/example/python_modules/jamroot.jam b/src/boost/tools/build/example/python_modules/jamroot.jam new file mode 100644 index 000000000..c53e75d58 --- /dev/null +++ b/src/boost/tools/build/example/python_modules/jamroot.jam @@ -0,0 +1,8 @@ +# Copyright 2006 Vladimir Prus +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) + +import python_helpers ; + +ECHO "test1:" [ python_helpers.test1 ] ; +ECHO "test2:" [ python_helpers.test2 1234 : 5678 ] ; diff --git a/src/boost/tools/build/example/python_modules/python_helpers.jam b/src/boost/tools/build/example/python_modules/python_helpers.jam new file mode 100644 index 000000000..bbeb7007c --- /dev/null +++ b/src/boost/tools/build/example/python_modules/python_helpers.jam @@ -0,0 +1,15 @@ +# Copyright 2006 Vladimir Prus +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) + +import modules ; +local here = [ modules.binding $(__name__) ] ; +here = $(here:D) ; +modules.poke : EXTRA_PYTHONPATH : $(here) ; + +# Import the Python rules to B2 +PYTHON_IMPORT_RULE python_helpers : test1 : python_helpers : test1 ; +PYTHON_IMPORT_RULE python_helpers : test2 : python_helpers : test2 ; + +# Make the new rules accessible to everybody who imports us. +EXPORT python_helpers : test1 test2 ; diff --git a/src/boost/tools/build/example/python_modules/python_helpers.py b/src/boost/tools/build/example/python_modules/python_helpers.py new file mode 100644 index 000000000..303363e91 --- /dev/null +++ b/src/boost/tools/build/example/python_modules/python_helpers.py @@ -0,0 +1,18 @@ +# Copyright 2006 Vladimir Prus +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) + +# Declare a couple of functions called from B2 +# +# Each function will receive as many arguments as there ":"-separated +# arguments in bjam call. Each argument is a list of strings. +# As a special exception (aka bug), if no arguments are passed in bjam, +# Python function will be passed a single empty list. +# +# All Python functions must return a list of strings, which may be empty. + +def test1(l): + return ["foo", "bar"] + +def test2(l, l2): + return [l[0], l2[0]]
\ No newline at end of file diff --git a/src/boost/tools/build/example/python_modules/readme.txt b/src/boost/tools/build/example/python_modules/readme.txt new file mode 100644 index 000000000..76b219117 --- /dev/null +++ b/src/boost/tools/build/example/python_modules/readme.txt @@ -0,0 +1,16 @@ +Copyright 2006 Vladimir Prus +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) + + +This example shows how you can use Python modules from B2. + +In order to do this, you need to build bjam with Python support, by running: + + ./build.sh --with-python=/usr + +in the jam/src directory (replace /usr with the root of your Python +installation). + +The integration between Python and bjam is very basic now, but enough to be +useful. |