diff options
Diffstat (limited to '')
-rw-r--r-- | src/boost/tools/build/test/prebuilt.py | 43 | ||||
-rw-r--r-- | src/boost/tools/build/test/prebuilt/ext/a.cpp | 17 | ||||
-rw-r--r-- | src/boost/tools/build/test/prebuilt/ext/debug/a.h | 13 | ||||
-rw-r--r-- | src/boost/tools/build/test/prebuilt/ext/jamfile.jam | 13 | ||||
-rw-r--r-- | src/boost/tools/build/test/prebuilt/ext/jamfile2.jam | 41 | ||||
-rw-r--r-- | src/boost/tools/build/test/prebuilt/ext/jamfile3.jam | 48 | ||||
-rw-r--r-- | src/boost/tools/build/test/prebuilt/ext/jamroot.jam | 5 | ||||
-rw-r--r-- | src/boost/tools/build/test/prebuilt/ext/release/a.h | 13 | ||||
-rw-r--r-- | src/boost/tools/build/test/prebuilt/hello.cpp | 20 | ||||
-rw-r--r-- | src/boost/tools/build/test/prebuilt/jamfile.jam | 13 | ||||
-rw-r--r-- | src/boost/tools/build/test/prebuilt/jamroot.jam | 4 |
11 files changed, 230 insertions, 0 deletions
diff --git a/src/boost/tools/build/test/prebuilt.py b/src/boost/tools/build/test/prebuilt.py new file mode 100644 index 000000000..e67b726e8 --- /dev/null +++ b/src/boost/tools/build/test/prebuilt.py @@ -0,0 +1,43 @@ +#!/usr/bin/python + +# Copyright 2002, 2003, 2004 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) + +# Test that we can use already built sources + +import BoostBuild + +t = BoostBuild.Tester(["debug", "release"], use_test_config=False) + +t.set_tree('prebuilt') + +t.expand_toolset("ext/jamroot.jam") +t.expand_toolset("jamroot.jam") + +# First, build the external project. +t.run_build_system(subdir="ext") + +# Then pretend that we do not have the sources for the external project, and +# can only use compiled binaries. +t.copy("ext/jamfile2.jam", "ext/jamfile.jam") +t.expand_toolset("ext/jamfile.jam") + +# Now check that we can build the main project, and that correct prebuilt file +# is picked, depending of variant. This also checks that correct includes for +# prebuilt libraries are used. +t.run_build_system() +t.expect_addition("bin/$toolset/debug*/hello.exe") +t.expect_addition("bin/$toolset/release*/hello.exe") + +t.rm("bin") + + +# Now test that prebuilt file specified by absolute name works too. +t.copy("ext/jamfile3.jam", "ext/jamfile.jam") +t.expand_toolset("ext/jamfile.jam") +t.run_build_system() +t.expect_addition("bin/$toolset/debug*/hello.exe") +t.expect_addition("bin/$toolset/release*/hello.exe") + +t.cleanup() diff --git a/src/boost/tools/build/test/prebuilt/ext/a.cpp b/src/boost/tools/build/test/prebuilt/ext/a.cpp new file mode 100644 index 000000000..c49a04153 --- /dev/null +++ b/src/boost/tools/build/test/prebuilt/ext/a.cpp @@ -0,0 +1,17 @@ +// Copyright (c) 2003 Vladimir Prus +// +// 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) +// +// http://www.boost.org +// + +#ifdef _WIN32 +__declspec(dllexport) +#endif +#ifdef RELEASE +void release() {} +#else +void debug() {} +#endif diff --git a/src/boost/tools/build/test/prebuilt/ext/debug/a.h b/src/boost/tools/build/test/prebuilt/ext/debug/a.h new file mode 100644 index 000000000..31b318226 --- /dev/null +++ b/src/boost/tools/build/test/prebuilt/ext/debug/a.h @@ -0,0 +1,13 @@ +// Copyright (c) 2003 Vladimir Prus +// +// 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) +// +// http://www.boost.org +// + +#ifdef _WIN32 +__declspec(dllimport) +#endif +void debug(); diff --git a/src/boost/tools/build/test/prebuilt/ext/jamfile.jam b/src/boost/tools/build/test/prebuilt/ext/jamfile.jam new file mode 100644 index 000000000..e563f0d74 --- /dev/null +++ b/src/boost/tools/build/test/prebuilt/ext/jamfile.jam @@ -0,0 +1,13 @@ +# Copyright 2002 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) + + +project ext + : requirements <variant>release:<define>RELEASE + ; + +lib a : a.cpp ; + +install dist : a : <variant>release:<location>release + <variant>debug:<location>debug ; diff --git a/src/boost/tools/build/test/prebuilt/ext/jamfile2.jam b/src/boost/tools/build/test/prebuilt/ext/jamfile2.jam new file mode 100644 index 000000000..6481808c6 --- /dev/null +++ b/src/boost/tools/build/test/prebuilt/ext/jamfile2.jam @@ -0,0 +1,41 @@ + +import os ; + +local dll-suffix = so ; +local prefix = "lib" ; +if [ os.name ] in NT +{ + if [ MATCH ^(gcc) : $toolset ] + { + dll-suffix = dll.a ; + prefix = lib ; + } + else + { + dll-suffix = lib ; + prefix = "" ; + } +} +else if [ os.name ] in CYGWIN +{ + dll-suffix = dll ; +} +else if [ os.name ] in MACOSX +{ + dll-suffix = dylib ; +} + +project ext ; + +lib a : + : <file>debug/$(prefix)a.$(dll-suffix) <variant>debug + : + : <include>debug + ; + +lib a : + : <file>release/$(prefix)a.$(dll-suffix) <variant>release + : + : <include>release + ; + diff --git a/src/boost/tools/build/test/prebuilt/ext/jamfile3.jam b/src/boost/tools/build/test/prebuilt/ext/jamfile3.jam new file mode 100644 index 000000000..be2257fa2 --- /dev/null +++ b/src/boost/tools/build/test/prebuilt/ext/jamfile3.jam @@ -0,0 +1,48 @@ + +# This Jamfile is the same as Jamfile2, except that +# it tries to access prebuilt targets using absolute +# paths. It used to be broken on Windows. + +import os ; + +local dll-suffix = so ; +local prefix = "lib" ; +if [ os.name ] in NT +{ + if [ MATCH ^(gcc) : $toolset ] + { + dll-suffix = dll.a ; + prefix = lib ; + } + else + { + dll-suffix = lib ; + prefix = "" ; + } +} +else if [ os.name ] in CYGWIN +{ + dll-suffix = dll ; +} +else if [ os.name ] in MACOSX +{ + dll-suffix = dylib ; +} + +project ext ; + +# Assumed bjam was invoked from the project root +local pwd = [ PWD ] ; + +lib a : + : <file>$(pwd)/ext/debug/$(prefix)a.$(dll-suffix) <variant>debug + : + : <include>debug + ; + +lib a : + : <file>$(pwd)/ext/release/$(prefix)a.$(dll-suffix) <variant>release + : + : <include>release + ; + diff --git a/src/boost/tools/build/test/prebuilt/ext/jamroot.jam b/src/boost/tools/build/test/prebuilt/ext/jamroot.jam new file mode 100644 index 000000000..c7617d5d3 --- /dev/null +++ b/src/boost/tools/build/test/prebuilt/ext/jamroot.jam @@ -0,0 +1,5 @@ +# Copyright 2002, 2004 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) + + diff --git a/src/boost/tools/build/test/prebuilt/ext/release/a.h b/src/boost/tools/build/test/prebuilt/ext/release/a.h new file mode 100644 index 000000000..9ab71d88c --- /dev/null +++ b/src/boost/tools/build/test/prebuilt/ext/release/a.h @@ -0,0 +1,13 @@ +// Copyright (c) 2003 Vladimir Prus +// +// 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) +// +// http://www.boost.org +// + +#ifdef _WIN32 +__declspec(dllimport) +#endif +void release(); diff --git a/src/boost/tools/build/test/prebuilt/hello.cpp b/src/boost/tools/build/test/prebuilt/hello.cpp new file mode 100644 index 000000000..4c1ab7036 --- /dev/null +++ b/src/boost/tools/build/test/prebuilt/hello.cpp @@ -0,0 +1,20 @@ +// Copyright (c) 2003 Vladimir Prus +// +// 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) +// +// http://www.boost.org +// + +#include <a.h> + +int main() +{ + #ifdef RELEASE + release(); + #else + debug(); + #endif + return 0; +} diff --git a/src/boost/tools/build/test/prebuilt/jamfile.jam b/src/boost/tools/build/test/prebuilt/jamfile.jam new file mode 100644 index 000000000..18b731ae1 --- /dev/null +++ b/src/boost/tools/build/test/prebuilt/jamfile.jam @@ -0,0 +1,13 @@ +# 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) + + +project test + : requirements <variant>release:<define>RELEASE + ; + +use-project /ext : ext ; + +exe hello : hello.cpp /ext//a ; + diff --git a/src/boost/tools/build/test/prebuilt/jamroot.jam b/src/boost/tools/build/test/prebuilt/jamroot.jam new file mode 100644 index 000000000..f022c0d64 --- /dev/null +++ b/src/boost/tools/build/test/prebuilt/jamroot.jam @@ -0,0 +1,4 @@ +# Copyright 2002, 2004 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) + |