diff options
Diffstat (limited to 'src/boost/tools/build/test/chain.py')
-rw-r--r-- | src/boost/tools/build/test/chain.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/boost/tools/build/test/chain.py b/src/boost/tools/build/test/chain.py new file mode 100644 index 00000000..981e6ad1 --- /dev/null +++ b/src/boost/tools/build/test/chain.py @@ -0,0 +1,56 @@ +#!/usr/bin/python + +# Copyright 2003 Dave Abrahams +# Copyright 2002, 2003 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 tests that : +# 1) the 'make' correctly assigns types to produced targets +# 2) if 'make' creates targets of type CPP, they are correctly used. + +import BoostBuild + +t = BoostBuild.Tester(use_test_config=False) + +# In order to correctly link this app, 'b.cpp', created by a 'make' rule, should +# be compiled. + +t.write("jamroot.jam", "import gcc ;") + +t.write("jamfile.jam", r''' +import os ; +if [ os.name ] = NT +{ + actions create + { + echo int main() {} > $(<) + } +} +else +{ + actions create + { + echo "int main() {}" > $(<) + } +} + +IMPORT $(__name__) : create : : create ; + +exe a : l dummy.cpp ; + +# Needs to be a static lib for Windows - main() cannot appear in DLL. +static-lib l : a.cpp b.cpp ; + +make b.cpp : : create ; +''') + +t.write("a.cpp", "") + +t.write("dummy.cpp", "// msvc needs at least one object file\n") + +t.run_build_system() + +t.expect_addition("bin/$toolset/debug*/a.exe") + +t.cleanup() |