2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-02 20:52:13 +00:00
Files
build/test/stage.py
Vladimir Prus 5dc40cd49a Bugfix.
* new/stage.jam
  (stage-target-class.construct): Pass the result via
  'virtual-target.register'. I wonder if virtual targets should
   be create via 'virtual-target.create' which will invoke
  'virtual-target.register' internally. Passing via 'register' was forgotten
   in many places.

* test/stage.py: New test.


[SVN r18497]
2003-05-22 13:23:40 +00:00

93 lines
1.6 KiB
Python

#!/usr/bin/python
# Test staging
from BoostBuild import Tester
t = Tester()
t.write("project-root.jam", "import gcc ;")
t.write(
"Jamfile",
"""
lib a : a.cpp ;
stage dist : a a.h auxilliary/1 ;
""")
t.write(
"a.cpp",
"""
int
#ifdef _WIN32
__declspec(dllexport)
#endif
must_export_something;
""")
t.write("a.h", "")
t.write("auxilliary/1", "")
t.run_build_system()
t.expect_addition(["dist/a.dll", "dist/a.h", "dist/1"])
# Regression test: the following was causing the "duplicate target name"
# error.
t.write(
"Jamfile",
"""
project : requirements <hardcode-dll-paths>true ;
lib a : a.cpp ;
stage dist : a a.h auxilliary/1 ;
alias dist-alias : dist ;
""")
t.run_build_system()
# Test the <location> property
t.write("Jamfile", """
lib a : a.cpp ;
stage dist : a
: <variant>debug:<location>ds <variant>release:<location>rs
;
""")
t.run_build_system()
t.expect_addition("ds/a.dll")
t.run_build_system("release")
t.expect_addition("rs/a.dll")
# Test the <location> property in subprojects.
# Thanks to Kirill Lapshin for bug report.
t.write("project-root.jam", """
path-constant DIST : dist ;
""")
t.write("Jamfile", "build-project d ;")
t.write(
"d/Jamfile",
"""
exe a : a.cpp ;
stage dist : a : <location>$(DIST) ;
""")
t.write("d/a.cpp", "int main() { return 0;}\n")
t.run_build_system()
t.expect_addition("dist/a.exe")
t.rm("dist")
# Workaround a BIG BUG: the response file is not deleted,
# even if application *is* deleted. We'll try to use the
# same response file when building from subdir, with very
# bad results.
t.rm("d/bin")
t.run_build_system(subdir="d")
t.expect_addition("dist/a.exe")
t.cleanup()