Commit Graph

1149 Commits

Author SHA1 Message Date
Jurko Gospodnetić
a4fc3f6257 Added explanation comments for match_exact() and match_re() functions in tools/build/v2/test/TestCmd.py. Removed corpse interpreted member from the TescCmd class and the related setter function in tools/build/v2/test/TestCmd.py. Minor stylistic comment changes.
[SVN r44981]
2008-05-01 17:04:22 +00:00
Jurko Gospodnetić
6e3eb35cca Renamed the Tester.wait_for_time_change() function to Tester.wait_for_time_change_since_last_build() to avoid confusion.
[SVN r44970]
2008-05-01 09:55:47 +00:00
Jurko Gospodnetić
c98691d310 Consistently converted tabs to spaces in tools/build/v2/test/BoostBuild.py to avoid confusion reading the Python source.
[SVN r44969]
2008-05-01 09:39:45 +00:00
Rene Rivera
7e238d9b7c Use local sorted() function to support Python < 2.4.
[SVN r44165]
2008-04-11 05:34:00 +00:00
Vladimir Prus
02e16a934e For BoostBuild regression test, handle OSX intel.
Patch from Hugo Duncan.


[SVN r43989]
2008-04-01 18:22:21 +00:00
Jurko Gospodnetić
75cbaf0563 Updated the test so it passes on Windows. Had to change it to enable action output logging and compensate for the fact that now action names are sent to the output as well. Minor stylistic changes.
[SVN r42639]
2008-01-09 17:03:45 +00:00
Jurko Gospodnetić
101e52bea6 Updated the test so it passes on Windows. Had to change it to enable action output logging and compensate for the fact that now action names are sent to the output as well. Minor stylistic changes.
[SVN r42637]
2008-01-09 14:36:37 +00:00
Rene Rivera
a375083c27 Revert various changes that break backward compatibility, and also some minor edits.
[SVN r42633]
2008-01-09 04:34:12 +00:00
Rene Rivera
6f12bd5e02 Revert various changes that break backward compatibility, and also some minor edits.
[SVN r42632]
2008-01-09 04:31:58 +00:00
Jurko Gospodnetić
28ee146607 Fixed a failing test by making it access its action results using the __ACTION_RULE__ rule. Now it works with the default debug level settings (i.e. no action output displayed).
[SVN r42631]
2008-01-09 04:30:25 +00:00
Jurko Gospodnetić
e8474dd69f Fixed a failing test by making it access action output using the __ACTION_RULE__ rule so it would not be affected by the level of debug output given by Boost Build/Jam.
[SVN r42630]
2008-01-09 04:15:35 +00:00
Jurko Gospodnetić
5b239afb81 Added a new test making sure properties conditioned on multiple different feature values are handled correctly. This especially includes testing the case when one of those features is <toolset> and the value given for it includes a toolset version.
[SVN r42613]
2008-01-08 14:40:24 +00:00
Jurko Gospodnetić
67c18a2efd Added a new configuration test making sure that the bug with not being able to process absolute user-config configuration file references never rears its ugly head again.
[SVN r42568]
2008-01-07 18:38:28 +00:00
Jurko Gospodnetić
bca21b46da Code cleanup. Converted to using True/False instead of 1/0. Changed to obey documented coding conventions regarding whitespace and function parameters. Renamed private member functions to use the __ name prefix.
[SVN r42567]
2008-01-07 18:15:13 +00:00
Jurko Gospodnetić
d289a56902 Added new tests related to Boost Build's default toolset handling. They test that the correct default toolset gets use and that when it gets used that has no different status than any other explicitly specified toolset.
[SVN r42549]
2008-01-06 20:56:20 +00:00
Jurko Gospodnetić
7449bd72d2 Added support for tests configuring whether they want their Boost Build to ignore toolset requirements instead of always ignoring them. Minor stylistic changes.
[SVN r42548]
2008-01-06 20:43:25 +00:00
Jurko Gospodnetić
5ab291e73a Simple code cleanup. Typo corrections.
[SVN r42547]
2008-01-06 20:37:55 +00:00
Jurko Gospodnetić
d7df2d92ca Stylistic changes: typo corrections, comment alignments, output string updates, no functional changes, etc.
[SVN r42516]
2008-01-06 08:16:34 +00:00
Jurko Gospodnetić
275694b5db Upgraded the tool for testing that a certain line exists in the given output support so that it now also knows how to test that a certain line does not exist in the given output.
[SVN r42513]
2008-01-06 07:26:46 +00:00
Jurko Gospodnetić
a8f922c12c Added a --test-config command-line option for specifying where the test configuration file should be loaded from instead of always being looked up in Boost Build's test folder. This allows non-test builds to not use test config when it exists on the system and different tests to use different test configurations when needed.
[SVN r42509]
2008-01-06 06:50:56 +00:00
Jurko Gospodnetić
54cf208294 No functional changes but only stylistic changes such as: comment typo corrections, wrapping lines to 80 characters, indentations, removing trailing spaces, removing empty lines, removed unnecessary module imports, etc.
[SVN r42507]
2008-01-06 00:53:09 +00:00
Jurko Gospodnetić
9b97e0ac91 No functional changes but only stylistic changes such as: comment typo corrections, wrapping lines to 80 characters, indentations, removing trailing spaces, removing empty lines, made tests use Jamfile.jam and Jamroot.jam Boost Build script names, removed unnecessary module imports, etc.
[SVN r42506]
2008-01-06 00:25:48 +00:00
Jurko Gospodnetić
1cca32571d Refactored the test into two separate test functions. Made the 'directory names with dots' test use the expect_output_line() tool instead of a manual find, causing a better diagnostic to be displayed in case of a failure. Made one of the test Jam scripts more compact. Made the test use the Jamroot.jam file instead of project-root.jam.
[SVN r42504]
2008-01-05 23:18:17 +00:00
Jurko Gospodnetić
970d44358f Test code cleaned up a bit. No functional changes.
[SVN r42499]
2008-01-05 21:37:15 +00:00
Jurko Gospodnetić
b871e58f62 Renamed some Jamfile and project-root.jam references to Jamfile.jam and Jamroot.jam respectively.
[SVN r42498]
2008-01-05 20:48:50 +00:00
Jurko Gospodnetić
07ba5ac218 Minor stylistic changes - cleaned up import calls, wrapped much text at 80 characters updated comments, typo corrections, removed trailing spaces, etc.
[SVN r42497]
2008-01-05 20:37:44 +00:00
Jurko Gospodnetić
f108323c1e Simplified the used make rules. Removed some dead code. Minor stylistic changes.
[SVN r42490]
2008-01-05 18:14:20 +00:00
Jurko Gospodnetić
e54169f771 Stylistic comment changes & typo corrections in several files. Corrected an incorrect error message in boost-build/build/project.jam displayed when a --build-dir command-line option and a non top-level project build-dir attribute are specified.
[SVN r42486]
2008-01-05 17:52:31 +00:00
Vladimir Prus
eb1a8a77d0 Make the Tester.copy method open files in binary mode.
This fixes the searched_lib.py failure on Windows.

Patch from Jurko Gospodnetic.


[SVN r42301]
2007-12-25 09:43:44 +00:00
Vladimir Prus
60ae680af7 Make inherit_toolset.py pass.
Patch from Jurko Gospodnetic.


[SVN r42300]
2007-12-25 09:38:19 +00:00
Vladimir Prus
36a79b841f Fix typos.
Patch from  Jurko Gospodnetic


[SVN r42296]
2007-12-25 09:25:25 +00:00
Rene Rivera
ad236a1ea7 Fix time related callbacks to new arguments.
[SVN r42247]
2007-12-22 21:32:17 +00:00
Rene Rivera
a42f466fd2 Inspection report fixes.
[SVN r41212]
2007-11-18 20:24:25 +00:00
Beman Dawes
8aeb9f160a Get rid of .cvsignore files
[SVN r41107]
2007-11-15 15:20:27 +00:00
Vladimir Prus
2eb44eeb35 Attemp to fix searched_lib on windows
[SVN r39831]
2007-10-09 06:37:00 +00:00
Vladimir Prus
a53633a6cf Windows fix
[SVN r39821]
2007-10-08 21:47:05 +00:00
Vladimir Prus
06a13cedeb Windows fix
[SVN r39820]
2007-10-08 21:28:09 +00:00
Vladimir Prus
26a974cb03 Windows fix
[SVN r39818]
2007-10-08 21:13:05 +00:00
Vladimir Prus
372d909cdb Windows fix
[SVN r39817]
2007-10-08 21:10:41 +00:00
Vladimir Prus
0fa6aa1374 Correct example test-config.jam
[SVN r39630]
2007-10-01 06:04:17 +00:00
Vladimir Prus
d1e6123a09 Update example test-config.jam
[SVN r39623]
2007-09-30 19:05:38 +00:00
Vladimir Prus
62adc78a70 Adjust Qt4 example test
[SVN r39606]
2007-09-29 18:21:49 +00:00
Vladimir Prus
49e9219a61 Adjust boostbook test for boostbook changes. It
seems that doxygen target now produces a target
with different name, and it does not produce
any target unless there's explicit dependency
on it. I'm not sure I like the change, but
anyway.


[SVN r39605]
2007-09-29 18:17:27 +00:00
Vladimir Prus
9af56e0e97 Don't run gcc_runtime test on msvc
[SVN r39197]
2007-09-11 19:36:48 +00:00
Vladimir Prus
de592346b0 * BoostBuild.py (wait_for_time_change): Wait
for more serious time change, in order to
        fix sporadic dependency_test failures.


[SVN r39195]
2007-09-11 19:17:49 +00:00
Vladimir Prus
3bac4643ae Don't try to apply --build-dir to standalone projects.
Fixes build_dir test failure on linux.


[SVN r39194]
2007-09-11 19:16:06 +00:00
Vladimir Prus
f09fd1a197 Record failure reason when we fail to open a file.
[SVN r39169]
2007-09-08 17:10:26 +00:00
Vladimir Prus
3fac77c14d Fix the rebuilds test on linux.
* BoostBuild.py (wait_for_time_change): Use floor,
	to avoid waiting 0.5 seconds.
	* rebuilds.py: Wait for time change as necessary.

[SVN r39168]
2007-09-08 16:24:50 +00:00
Vladimir Prus
8edaa3e0f1 Print test results summary at the end
[SVN r39166]
2007-09-08 00:26:18 +00:00
Vladimir Prus
a14761fd47 Fix remove_requirements test. I have no idea how
it could have passed as-is.


[SVN r39165]
2007-09-08 00:15:23 +00:00
Vladimir Prus
259e5a2843 Implement --ignore-toolset-requirements and set in
during testing.


[SVN r39164]
2007-09-07 23:59:54 +00:00
Vladimir Prus
bb89e5142f Make it work
[SVN r39163]
2007-09-07 23:59:10 +00:00
Vladimir Prus
7fd3402b2f Undo #38702, which fixes alternative.py on linux. Real fix for win coming soon.
[SVN r39162]
2007-09-07 23:51:07 +00:00
Vladimir Prus
7663d860e2 Make output from test run nicer, and more structured.
In future, we might be able to generate XML, or any other voodoo
we want.


[SVN r39161]
2007-09-07 23:18:20 +00:00
Vladimir Prus
f9feb61242 Unbreak the gcc_runtime test
[SVN r39121]
2007-09-04 20:29:56 +00:00
Vladimir Prus
692f1fc20a Allow to print the tree delta to any file.
[SVN r39120]
2007-09-04 20:26:19 +00:00
Vladimir Prus
aef14d8748 Make free features on the command line affect all targets,
not just directly requested ones.

Fixes #985.


[SVN r39104]
2007-09-01 21:46:09 +00:00
Vladimir Prus
4f5947ca91 Fix glob excludes in subdirectories.
Thanks to Norbert Unterberg for the bug report.


[SVN r39103]
2007-09-01 20:28:42 +00:00
Rene Rivera
013107971f Make rm try the glob_file in addition to regular glob. Clears alternatives and project_glob failures on windows.
[SVN r38973]
2007-08-26 19:24:13 +00:00
Rene Rivera
4d930c37a0 Use some wildcard matching on the expected output as 'echo' on Windows outputs extra space before EOLs, which Unix doesn't.
[SVN r38965]
2007-08-26 16:16:38 +00:00
Rene Rivera
a25f561bab Read expected files with universal EOL translation enabled to account for comparing with newline only Python strings.
[SVN r38964]
2007-08-26 16:14:44 +00:00
Rene Rivera
93e6b9079d On Windows static libs have the lib prefix, but DLLs don't.
[SVN r38918]
2007-08-25 04:08:28 +00:00
Rene Rivera
ecb07db688 More changes to account for differing variant subdirs between toolsets, and of toolset expansion.
[SVN r38710]
2007-08-16 04:56:08 +00:00
Rene Rivera
3ed67f237e Do some normalizing of paths to remove some of the variant feature subdirs that may be different based on platform and toolset. This fixes some tests that pass on GCC/Linux and not on MSVC/Windows.
[SVN r38702]
2007-08-15 20:15:36 +00:00
Rene Rivera
01a0c753da Change remove() to glob_remove() in expect_modification, even though this check is not used.
[SVN r38694]
2007-08-15 18:35:11 +00:00
Rene Rivera
8b4fe19de1 Trow ValueError exception from remove functions to match the set.remove functionality.
[SVN r38688]
2007-08-15 17:25:46 +00:00
Vladimir Prus
604c249e55 Stop BoostBuild.py from crashing on certain test failures.
[SVN r38593]
2007-08-11 05:15:54 +00:00
Rene Rivera
f2eff70b4c Catch a few more Python errors while testing.
[SVN r38306]
2007-07-30 00:09:52 +00:00
Vladimir Prus
3fae00b0a0 New project rule 'glob-tree'.
[SVN r36161]
2006-11-23 09:25:16 +00:00
Vladimir Prus
9fd7a6eba9 Make the 'glob' rule accept the patterns to exclude.
[SVN r36159]
2006-11-23 09:01:47 +00:00
Vladimir Prus
fe44e60b28 Handle indirect conditional properties in usage requirements
[SVN r36145]
2006-11-22 09:36:45 +00:00
Vladimir Prus
6488ce31d9 Enable pch test on msvc
[SVN r36143]
2006-11-22 09:33:07 +00:00
Vladimir Prus
ab4d1b8b99 Robustify the test
[SVN r36078]
2006-11-18 19:11:53 +00:00
Vladimir Prus
9ab60ec835 Revive some more tests
[SVN r35968]
2006-11-10 07:40:42 +00:00
Vladimir Prus
568b9e9d42 Test that project's path requirements can be removed by a main target.
[SVN r35923]
2006-11-08 09:59:42 +00:00
Vladimir Prus
5c57d836b6 Don't emit any messages when <build>no is in properties.
[SVN r35921]
2006-11-08 09:07:01 +00:00
Vladimir Prus
c4ea7d28c2 Fix thinko
[SVN r35919]
2006-11-08 08:42:55 +00:00
Vladimir Prus
c10a1de178 Unbreak rebuilds.py
[SVN r35918]
2006-11-08 08:42:12 +00:00
Vladimir Prus
6851604c0e Robustify Tester.expect_content
[SVN r35917]
2006-11-08 08:37:28 +00:00
Vladimir Prus
7c96b542f0 Unbreak notfile.py
[SVN r35916]
2006-11-08 08:36:02 +00:00
Rene Rivera
5b5b339cf1 Add copyrights+license (with help of a shell script).
[SVN r35861]
2006-11-06 01:44:13 +00:00
Rene Rivera
602b6d8b13 Add/update copyrights+license (with help of a shell script).
[SVN r35856]
2006-11-05 18:13:42 +00:00
Rene Rivera
c5859fe13c Add "--default-bjam" option to force using bjam present in the system (ie the search path).
[SVN r35845]
2006-11-05 00:06:35 +00:00
Rene Rivera
da98fd5c48 A variety of changes to make most tests pass on Windows (with mingw):
* BoostBuild.py; Make the matching of content and files be more loose and use pattern globbing of toolset names.
* glob.py/project_glob.py; Rename to avoid collision with builtin Python module.
* all; Update copyrights and license info.


[SVN r35729]
2006-10-24 23:25:19 +00:00
Rene Rivera
3b9a41e48f Adjust to make test pass on Windows.
[SVN r35723]
2006-10-24 16:32:31 +00:00
Vladimir Prus
3b4cca1b35 Improve the hanling of "inline" targets, like:
alias foo : [ run a.cpp ] ;

and

	exe main : main.cpp [ lib helpers : helpers.cpp ] ;

Now inline targets are marked explicit, so that they are not
build unless requested, and for the alias target, the names
of inline targets are not qualified by the name of top-level target.

	build/
	* alias.jam (alias): Pass 'no-renaming' to
	target.main-target-sources.
	* target.jam (main-target-sources): New parameter
	'no-renaming'. Make inline target explicit.
	* builtin.jam (lib): Declare 'result' variable,
	to avoid implicit declaration of a global one.

	tools/
	* testing.jam (test-suite): Make synonymous with 'alias'.

	test/
	* inline.py: Adjust to the fact that alias no longer
	changes names of inline targets. Check that inline
	targets are explicit.


[SVN r35607]
2006-10-14 10:28:03 +00:00
Vladimir Prus
188d417514 Fix for msvc
[SVN r35533]
2006-10-10 07:48:33 +00:00
Vladimir Prus
90f7514eb8 Test for PCH
* BoostBuild.py (Tester.copy_preserving_timestap): New.
	* pch.py: New.
	* test_all.py: Register pch.py on gcc.


[SVN r35512]
2006-10-07 10:08:19 +00:00
Jürgen Hunold
602eb9e5a2 Added missing/changed to Boost Software license.
Changed tests to use qt3 toolset.


[SVN r35399]
2006-09-28 19:00:12 +00:00
Vladimir Prus
0df12c504b Test for 'cancel requirement' feature
[SVN r35169]
2006-09-18 19:56:19 +00:00
Daniel James
2dbf44f8c5 Merge tab removal.
[SVN r34995]
2006-08-29 20:59:37 +00:00
Vladimir Prus
2a1beb0e9e Correct paths
[SVN r34622]
2006-07-20 08:55:13 +00:00
Vladimir Prus
deac4d9335 Fix expectations.
[SVN r34616]
2006-07-20 08:09:50 +00:00
Vladimir Prus
3b121523c5 Pass pass to BoostBook XSL. Remove broken configuration of msvc.
[SVN r34612]
2006-07-20 07:31:21 +00:00
Vladimir Prus
f56c300b23 Revert the path for preserving relative names of sources, since it breaks
UBLAS tests. Will reconsider later.


[SVN r34233]
2006-06-08 05:31:39 +00:00
Vladimir Prus
aafe2d6065 Try to preserve relative paths in sources.
Based on a patch from Ryan Gallagher.


[SVN r34062]
2006-05-23 14:21:58 +00:00
Vladimir Prus
e76518b57a Fix a bug that prevented parent attributes from being inherited.
[SVN r33995]
2006-05-18 09:15:03 +00:00
Vladimir Prus
0bd46dfddf Windows fixed
[SVN r33813]
2006-04-25 15:20:30 +00:00
Vladimir Prus
9de5f9cf51 Create 'failed_test' dir only if test fails
[SVN r33812]
2006-04-25 14:54:32 +00:00
Vladimir Prus
5b65d0b342 Windows fixes
[SVN r33811]
2006-04-25 14:46:15 +00:00
Vladimir Prus
52b6d2cb23 Windows fixes
[SVN r33810]
2006-04-25 14:29:21 +00:00
Vladimir Prus
f78581a75e Windows fixes
[SVN r33809]
2006-04-25 13:45:30 +00:00
Vladimir Prus
c6622eadc1 Windows fixes
[SVN r33808]
2006-04-25 13:11:25 +00:00
Vladimir Prus
f4790c1838 Ignore msvc 8.0 manifests.
[SVN r33807]
2006-04-25 13:10:03 +00:00
Vladimir Prus
2a544062f5 Prevent --clean from deleting files that were used as sources of 'cast'.
[SVN r33792]
2006-04-24 13:59:41 +00:00
Vladimir Prus
06adc0f63b Tests for more examples.
[SVN r33656]
2006-04-11 07:25:48 +00:00
Vladimir Prus
b31d716fb7 Add a couple of tests for examples.
[SVN r33637]
2006-04-10 13:05:26 +00:00
Vladimir Prus
3a4cbec7b3 Revive boostbook.py tests, working around BoostBook dislike of classes
outside of any namespaces.


[SVN r33636]
2006-04-10 12:48:43 +00:00
Vladimir Prus
b48dc6225f Test that 'unit-test' will find searched libraries.
[SVN r33624]
2006-04-10 07:29:30 +00:00
Vladimir Prus
9a0d3bb3f7 Try to improve diagnostics when no alternative can be found.
[SVN r33586]
2006-04-07 11:06:21 +00:00
Vladimir Prus
258dca128a Check that the value of the <tag> feature may be local rule name,
not fully-qualified.


[SVN r33168]
2006-02-28 07:22:47 +00:00
Vladimir Prus
f3c3972678 Allow <name> work for 'install', when there's a single source
[SVN r33064]
2006-02-21 13:08:53 +00:00
Vladimir Prus
4a6b0fa146 Another attempt to workaround warning on HP-CXX.
[SVN r32894]
2006-02-13 13:33:27 +00:00
Vladimir Prus
f5fe6d378c Rename 'lib c' to 'lib cc' because HP-CXX compiler confuses 'libc.so' with
the system C runtime library.


[SVN r32891]
2006-02-13 12:29:57 +00:00
Vladimir Prus
53787a5e2e Attempt to suppress a warning
[SVN r32887]
2006-02-13 10:56:47 +00:00
Vladimir Prus
f1d1f6d3a4 Fix a problem where <implicit-dependency> had no effect unless
the target named by the property was also build (by virtue of being in
the same Jamfile and not marked as "explicit").


[SVN r32885]
2006-02-13 10:34:45 +00:00
Vladimir Prus
b09996a61d Add a test that <source> in 'lib' works even if there's no explicit sources.
[SVN r32882]
2006-02-13 07:51:33 +00:00
Rene Rivera
6037f6d6ec Adjust Boost.Jam references to new root/tools/jam location.
[SVN r32873]
2006-02-12 23:18:46 +00:00
Markus Schöpflin
4b965217d4 Added Tru64 support.
[SVN r32809]
2006-02-10 16:05:26 +00:00
Vladimir Prus
bbc7f3f253 For
bjam --clean some_main_target

don't clean files belonging to other main targets, even if those other main
targets are dependencies of 'some_main_target'.


[SVN r32760]
2006-02-09 09:42:52 +00:00
Vladimir Prus
3bec6c2038 Change the --clean option to only clean targets under references projects.
Add the --clean-all option to clean everything.


[SVN r32739]
2006-02-08 15:24:31 +00:00
Vladimir Prus
ec4b485eea Forgotten change to inline.py.
This was supposed to go together with "ignore suffix of main target name"
patch.


[SVN r32724]
2006-02-08 09:30:43 +00:00
Vladimir Prus
aea0397977 Unbreak 'make_test.py'. Adjust it to not use extra argument to the rule passed
to 'make', sine it's no longer supported.

Allow to call 'flags' on local rule. Use flag settings on local rule to
implement the effect previously achieved with extra arguments.


[SVN r32723]
2006-02-08 09:29:35 +00:00
Vladimir Prus
79d7a448aa Allow typed main targets to have arbitrary suffix in the name, that does not
affect the names of the generated targets and only usefull for preventing
V2 from treating two independent targets as target alternatives.


[SVN r32720]
2006-02-08 08:06:31 +00:00
Vladimir Prus
3d42d08c00 Implement <build>no.
[SVN r32708]
2006-02-07 13:46:02 +00:00
Vladimir Prus
ec4969db72 Implement 'indirect conditional requirements', which are simular to V1's
convention that rules used in requiremenst are called to provide extra features.


[SVN r32694]
2006-02-07 10:26:17 +00:00
Vladimir Prus
28b4646662 Make the 'explicit' rule always operate on the current project.
[SVN r32654]
2006-02-06 15:26:56 +00:00
Vladimir Prus
61cb30494f Fix "depends on itself" warning emitted when there were directory and
a file with the same name.


[SVN r32433]
2006-01-27 11:10:39 +00:00
Vladimir Prus
32d9796a3e Add a test for the "bjam foo.o" feature.
[SVN r32429]
2006-01-27 10:34:58 +00:00
Vladimir Prus
042c7dc35a When resolving target id, first look for target in Jamfile, then for
file in current dir. This partially reverts rev 1.117 of build/targets.jam.

See test for further explanations.


[SVN r32377]
2006-01-23 09:41:18 +00:00
Vladimir Prus
82b01caeb7 Update the test template.
[SVN r32376]
2006-01-23 09:24:26 +00:00
Vladimir Prus
33490566f5 Serious bugfix: for <include> properties with absolute pathnames on
windows, we ignored dependencies to headers in those directories.

This change is a quick fix, a better fix will follow later.


[SVN r32375]
2006-01-23 08:18:48 +00:00
Vladimir Prus
21292094e5 Supposedly make library_chain.py work on Windows.
The issue is that when with new response files the names of libraries we're
trying to link to is not emitted with "bjam -n", so remove "-n" and explicitly
look in response files.


[SVN r32341]
2006-01-17 09:32:57 +00:00
Vladimir Prus
190b0a3ba4 When installing .cpp files, don't scan them for #includes. It's pointless,
we don't compile.

Thanks to Franz Schnyder for the bug report.


[SVN r31756]
2005-11-23 16:10:41 +00:00
Vladimir Prus
0e388de77d Unbreak project_test4
[SVN r31646]
2005-11-14 14:38:23 +00:00
Vladimir Prus
70758d42ea Unbreak generators_test:
- rename UI type to TUI to avoid conflicts with Qt
- adjust to print.text changes


[SVN r31645]
2005-11-14 14:36:45 +00:00
Vladimir Prus
ab09f7e894 Unbreak dependency_test. It was used print.echo-cmd that got removed recently.
[SVN r31644]
2005-11-14 14:25:15 +00:00
Vladimir Prus
0ce6fd48a6 Adjust tests to the fact that print.text no longer implicitly adds newline.
[SVN r31643]
2005-11-14 13:38:49 +00:00
Vladimir Prus
9cf5bcdf29 Revive the project_test3 test.
[SVN r31035]
2005-09-19 08:49:50 +00:00
Vladimir Prus
ea9da6b91c Fix a link failure on Unix for a main -> libb -> liba scenario,
where libb is a target in Boost.Build and liba is a file referred to by name.


[SVN r30590]
2005-08-16 10:58:22 +00:00
Vladimir Prus
3db370a9e4 Fix using of 'glob' in project root rules.
There were two problems:
- 'glob' was using __name__ as the name of the project and not
  project.current, so it would search in project root, and not in child
  project that inherited project root rules.
- the 'import' that's overrided in project context used __name__ to
  restore the value of current project

Thanks to Emil Dotchevski for the bug report.


[SVN r30507]
2005-08-08 09:31:39 +00:00
Vladimir Prus
24fa408e3f Unbreak " lib a ; " syntax.
Thanks to Craig Rodrigues for the bug report.


[SVN r30309]
2005-07-29 12:00:40 +00:00
Vladimir Prus
cda0cf3306 Ignore some files in CVS operations
[SVN r30307]
2005-07-29 08:42:42 +00:00
Dave Abrahams
26ec6c1206 Fix copyright and documentation
[SVN r30219]
2005-07-22 18:46:20 +00:00
Vladimir Prus
08b36b749e Unbreak <install-source-root> when building from subdirectories.
[SVN r29803]
2005-06-27 12:19:50 +00:00
Vladimir Prus
6e5772545e Add the 'notfile' target.
[SVN r29606]
2005-06-16 08:24:01 +00:00
Vladimir Prus
fa7edfe511 Automatically prepend "lib" prefix to LIB targets on Unix.
[SVN r29602]
2005-06-16 07:24:16 +00:00
Vladimir Prus
792cf4ac64 Allow "bjam some_directory" to work even if there's no Jamfile in ".".
[SVN r29588]
2005-06-15 13:26:37 +00:00
Vladimir Prus
1b9681a9ed Correct license text
[SVN r29587]
2005-06-15 13:19:07 +00:00
Vladimir Prus
43994ac2eb Rename link-runtime to runtime-link to stay compatible with V1.
[SVN r29586]
2005-06-15 12:24:06 +00:00
Vladimir Prus
bf21d96225 Don't run 'library_order' on cygwin, because test relied on gcc/Linux shlib
linking mode.


[SVN r29490]
2005-06-09 08:03:42 +00:00
Vladimir Prus
5a44f04da8 Refactor generators a bit.
* If a generator was given a source it could not handle, it used to return
  that source together with generated targets. This was nice for some use
  cases, but no very nice for others, and this behaviour could not be turned
  off. One use case where it worked bad was:

      lib plugin : plugin.cpp helper ;
      lib helper : helper.cpp ;

  On windows, 'plugin' would link to the 'import library' and pass the DLL
  target though. So, when installing 'plugin', we'd also install 'helper.dll',
  and it was not possible to do anything about it.

* If we asked generators.construct to produce sources of type CPP,
  and the selected generator produced both targets of type CPP, and of
  some other type, we'd try again to convert those other targets to CPP.
  This simply complicated the logic for no good reason.

* Most generator function had 'multiple' parameter, which function
  was long forgotten by anybody.

As a bit of history, I believe some of the above decisions were due to a
certain use case:

          CPP <------- WHL
                          \
                            WD
                          /
          CPP <------- DLP

Here, a source file is converted to two targets with one command, and each
produced file is converted to CPP. Our generators search would notice that
there are two generators for CPP: the WHL->CPP and DPL->CPP
generators. Neither is better that the other so both are tried, and produce
(CPP, DPL) and (CPP, WHL) pairs of targets. To avoid reporting an ambiguity,
we'd try to convert, DLP to CPP and WHL to CPP, do it successfully, notice
that produced targets are the same and decide that there's no ambiguity.

However, this is rather complex logic for a relatively rare case. It can
be handled by writing another WD->CPP generator that would handle
disambiguation itself.

This commit has one user-visible change. The code:

  exe a : a.cpp b ;
  obj b : b.cpp helper;
  lib helper ;

No longer works -- the 'a' target won't link to 'helper'. However, this is
pretty stange code and worked before almost by accident.


[SVN r29361]
2005-06-02 06:43:56 +00:00
Vladimir Prus
3120f7fbaf Add test for multiple source-location, from Craig Rodrigues.
[SVN r29335]
2005-06-01 05:43:25 +00:00
Vladimir Prus
4e9af774ce Revamp path.glob.
The problem with the previous implementation is that it would iterate
over all elements in a dir even if 'pattern' had no metacharacters. First,
that was slow -- if you handed

  /cygdrive/w/My Documents/boost/test/a.cpp

to it, it would crawl all the way to the top, listing each directory and
checking each file. Second, it would fail, because Cygwin is broken and
does not show 'cygdrive' is the list of directory elements of '/'.

Now we check if a pattern has metacharacters, and if not, just do
a simple 'timestamp' call.

The new glob is implemented as new 'GLOB-RECURSIVELY' builtin. I've decided
to use builtin since otherwise, we'd need 'does this name exist' builtin,
and if we need new builtin, why don't implement all globbing in core.


[SVN r29163]
2005-05-24 07:57:56 +00:00
Vladimir Prus
c7bce34d14 Don't use 'jam' in tests -- it's not built by default now.
[SVN r29157]
2005-05-23 11:09:31 +00:00
Vladimir Prus
3f3d979ffd Support FreeBSD for Boost.Build self-tests.
Patch from Craig Rodrigues.


[SVN r28623]
2005-05-03 06:15:08 +00:00
Vladimir Prus
b8e017d7cf Test for absolute glob patterns.
[SVN r28380]
2005-04-21 10:44:42 +00:00
Vladimir Prus
bfa598ce5f Don't run abs_workdir from test_all.py, because that's internal test for
test system, not for Boost.Build itself. In addition, the test doesn't work
for Windows.


[SVN r28376]
2005-04-21 08:55:09 +00:00
Vladimir Prus
2216c20cf2 Escape backslashes, otherwise the test won't work on Windows.
[SVN r28375]
2005-04-21 08:50:39 +00:00
Vladimir Prus
a6d67a8e64 Fix --build-dir for invocation from subdirs.
[SVN r28237]
2005-04-14 10:53:54 +00:00
Vladimir Prus
1a4eacf99a Implemented the --build-dir option.
[SVN r28236]
2005-04-14 10:34:11 +00:00
Vladimir Prus
8a035f29a9 Test multi-token project constants.
[SVN r28179]
2005-04-12 14:06:45 +00:00
Vladimir Prus
1a877e8416 Generate a fully working test, not just code snipped
[SVN r28178]
2005-04-12 14:05:36 +00:00
Vladimir Prus
83dafa7488 Don't crash on use of <tag> in directories containing dots.
The <tag> rule if often used in Jamfile like this: <tag>@$(__name__).rule.
The __name__ looks like Jamfile<jamfiles'directory>. When directory has
a dot, we we confused and took the part till the first dot as the
name of module.

Now, such values are processed closer to the definition point, where
we know the name of the module and don't need to guess it by looking at
the name.

Thanks to Juergen Hunold for the bug report.


[SVN r28063]
2005-04-08 13:23:05 +00:00
Vladimir Prus
e8cbe47cc8 Allow 'using' in Jamfiles to pick up modules in Jamfile's directory.
[SVN r27979]
2005-04-05 12:53:39 +00:00
Vladimir Prus
4f6a940409 Allow to specify directory where a test will be run.
Patch from Niklaus Giger.


[SVN r27975]
2005-04-05 11:21:52 +00:00
Vladimir Prus
4a811c1a6a We did not do any dependency scanning for C sources.
Thanks to Kelly Burkhart for the report.


[SVN r27954]
2005-04-04 14:09:18 +00:00
Vladimir Prus
ce2a4be582 Additional test.
[SVN r27593]
2005-03-10 09:51:34 +00:00
Vladimir Prus
23c772bad5 Change tree installing. Replace preserve-path feature with a
install-source-root feature which specifies the base path to which all
paths are relative.


[SVN r27592]
2005-03-10 09:47:37 +00:00
Vladimir Prus
08b10e27c8 Introduce a new property, preserve-path, which can be used to make the
'install' rule preserve relative paths of sources when installing them.


[SVN r27587]
2005-03-09 09:08:27 +00:00
Rene Rivera
b05b99679a Apply typo fixes from Julio M. Merino Vidal
[SVN r27513]
2005-02-27 17:28:24 +00:00
Vladimir Prus
cf407805f7 Fix BB82 (toolset.using breaks Jamfiles).
* build/toolset.jam (using): Move to...

* build/project.jam (_using): ... here.

  (project-context.using, import): New rules that restore the
  .current-project variable properly.


[SVN r27382]
2005-02-15 07:48:13 +00:00
Vladimir Prus
97e91c8e3f Tweak computation of target names from source names.
* build/generators.jam
  (generator.generated-targets): Comment the desired semantics.

* util/utility.jam
  (basename): Take the part till the last dot, not the first.


[SVN r27374]
2005-02-14 08:25:07 +00:00
Dave Abrahams
53673a2985 test/regression.py
tools/testing.jam

  Support rules for measuring timing of build steps.

build/generators.jam

  Generators with empty source lists can now consume any target type.


[SVN r27335]
2005-02-12 20:24:07 +00:00
Dave Abrahams
72a5e80e64 jam_src/
builtins.{c,h}
        Support for the REBUILDS rule
        remove unused variable

    rules.h
    make.c
        Support for the REBUILDS rule

    make1.c
        Support for the REBUILDS rule

        Support for recording timing information

        Restructured a case statement because it was masking a bug I
        introduced.

    execcmd.h
    execnt.c
    execunix.c
        Support for recording timing information
        Also removed NT-specific stuff from execunix

    expand.c
        Removed tabs from critical comment
        Added tab-width variable setting comment for emacs.

v2/test
    rebuilds.py, timedata.py, test_all.py
        Tests for REBUILDS and timing.


[SVN r27334]
2005-02-12 02:30:18 +00:00
Vladimir Prus
411ad9eae7 Some renames:
- 'stage' -> 'install'
- 'traverse-dependencies' -> 'install-dependencies'
- 'include-type' -> 'install-type'.


[SVN r26833]
2005-01-24 10:08:07 +00:00
Vladimir Prus
0a1190e42c Various 'stage' related improvements.
- Require @module.rule syntax for value of the <tag> feature.
- Don't support change of name in 'stage'.
- Cleanup in 'stage'.


[SVN r26782]
2005-01-21 15:03:08 +00:00
Vladimir Prus
d56e814877 Correctly compute bjam build dir on non-x86 Linux.
Patch from Niklaus Giger.


[SVN r26775]
2005-01-21 07:31:45 +00:00
Vladimir Prus
d4fa3d6092 Added Boostbook test
[SVN r26601]
2004-12-29 11:47:59 +00:00
Vladimir Prus
ded834410d Fix a recent regression: <location>. did not work.
[SVN r26598]
2004-12-29 11:04:09 +00:00
Vladimir Prus
29bc552733 Fix a regression in the 'glob' rule -- it is broken with the current bjam.
Handle ".." correctly.


[SVN r26595]
2004-12-28 17:54:35 +00:00
Vladimir Prus
6b91fc0e9f Usage requirements are now propagated all the way up, not only
to direct dependents. The previous behaviour can be confusing and
there are no use cases where the new behaviour will be bad.

It will add more include paths in some cases, but who cares?


[SVN r26528]
2004-12-16 13:02:35 +00:00
Vladimir Prus
5ec008ddbc Bugfix: searched library was not found when
exe depended on obj and obj depended on a searched library.

Thanks to Caleb Epstein for the bug report.

* tools/builtin.jam
  (searched-lib-generator.extra-usage-requirements): Remove
  (archive-generator.run): Don't bother passing 'library-path' properties.
  (linking-generator.run): Add propery library-path properties for
    searched libraries.

* tools/unix.jam: Induced changes.

* test/searched_lib.py: New test.


[SVN r26486]
2004-12-10 10:17:56 +00:00
Vladimir Prus
4c7ff2913c More type declaration cleanup.
* build/type.jam (register): Remove the 'main' parameter.
* other files: Don't pass the 'main' parameter.


[SVN r26449]
2004-12-06 13:59:51 +00:00
Vladimir Prus
3f608c3e78 Bugfix: <library> was ignored for static linking.
Thanks to Toon Knapen for the bug report.

* tools/builtin.jam
  (archiving-generator.run): Add <library> properties to sources.

* test/library_chain.py: New test.


[SVN r26447]
2004-12-06 09:40:56 +00:00
Vladimir Prus
bc7ed1a9d5 Handle <dependency> for 'stage'.
* tools/stage.jam
  (copy-file, relink-file): Add stage's dependency properies to
  the staged targets properties, so that <dependency> is copied too.

* test/stage.py: New test.


[SVN r26420]
2004-12-03 14:24:32 +00:00
Vladimir Prus
58566b47bd * tools/common.jam (path-variable-setting-command): Allow to refer to
enviroment variables in the list of values. No it's possible to add
  an element to a variable.
* build/project.jam: Remove obsolete test.
* build/toolset.jam (find-property-subset): No longer local,
  so that test can call it.
* test/test.jam: Import 'print' and 'common'.
* util/print.jam: Comment out failing unit test.


[SVN r26413]
2004-12-03 10:46:05 +00:00
Vladimir Prus
a4f3de44f3 Allow Jamroot as alternative (and preferred) spelling of project-root.jam.
[SVN r26351]
2004-11-29 15:44:58 +00:00
Vladimir Prus
78365ce534 Fix some problems with project loading
* build/targets.jam
  (project-target.find): Better error reporting.

* build/project.jam
  (load-jamfile): Use 'path.native' when loading Jamfile,
   otherwise, target id with absolute directory name won't
   work for Windows.


[SVN r26271]
2004-11-22 09:02:52 +00:00
Vladimir Prus
daf4d58c63 * build/project.jam
(load-parent): New rule, extracted from 'initilize'.
  (load-jamfile): If loading project-root.jam, check for
      Jamfile and load it in the same module.
  (inherit-attributes): Simplify.
  (project-rules.constant, project-rules.path-constant): New rules.

* build/targets.jam
  (project-target.__init__): New paramater 'parent'.
  (project-target.inherit)
  (project-target.add-constant)
  (project-target.intern-constants): New rules

*


[SVN r26251]
2004-11-19 09:51:54 +00:00
Vladimir Prus
fad89f9023 Fix a bug which caused child project to be loaded before parents.
* build/project.jam
  (project-context.use-project): Just record parameters, don't do anything.
  (load): After Jamfile is loaded, use data recorded above to load
   additional projects.
* test/test_all.py: New test.


[SVN r26229]
2004-11-17 13:12:29 +00:00
Vladimir Prus
40a504ed4f Allow a generator's 'run' method to return additional usage requirements
as the first elements of result. Those usage requirements will be combined
with explicitly specified for the main target.

This is yet another step towards making 'main target classes' unnecessary.

* build/generators.jam
  (try-one-generator): Check if generator returned usage requirements or not.
  (construct): Make sure first element of result is always property set.
  (many other methods): Induced changes

* tools/builtin.jam
  (exe-target-class, lib-target-class): Remove.
  (linking-generator, seached-lib-generator): Compute usage requirements.
  (archiving-generator): New class


[SVN r26192]
2004-11-12 08:11:14 +00:00
Vladimir Prus
fb138e9ded When 'stage' is used with <traverse-dependencies>on, do not follow the <use>
property, since it's typically used when only headers are used.

* build/virtual-target.jam (subvariant.all-referenced-targets): Return
  the names of properties.
* tools/stage.jam (stage-target-class.collect-targets): Filter out <use>

Thanks to Jurgen Hunold for the bug report.


[SVN r26052]
2004-11-01 16:10:41 +00:00
Vladimir Prus
461a95fbc4 Remove tabs
[SVN r25968]
2004-10-30 08:31:48 +00:00
Vladimir Prus
c3185c4128 Exclude 'profile' variant from test, since it causes unidentified
problems on cygwin/gcc. The problem does not look to be related to V2.


[SVN r25804]
2004-10-20 12:06:20 +00:00
Vladimir Prus
9f07c0dc2c Handle the <library> property in the linking-generator, not in
lib-target-class and exe-target-class. This makes the 'unit-test' rule
work with <library>.


[SVN r25768]
2004-10-18 10:10:36 +00:00
Vladimir Prus
7e6b8e8424 Changed syntax of 'using gcc', allowing configuration of linker-type
* v2/tools/gcc.jam
    (init): parse the new options and call the new rule.
    (init-link-flags): new rule. Initialize flags based on linker type.
              put back -minpure-text
* v2/test/conditionals.py
     small modification to avoid empty binaries.

Patch from Andre Hentz.


[SVN r25764]
2004-10-18 06:41:50 +00:00
Vladimir Prus
4b8fa1648c Do not hardcode dll paths in libraries. That's not really needed, and
would force us to relink all libraries when staging.

Now that libraries do not hardcode dll paths, add a check that correct
-rpath-link options are added. When staging, we don't hardcode-dll-paths,
and libraries never hardcode dll paths, so if there's a long chain of
libraries, we should add -rpath-link, otherwise the linker won't find
the dynamic libraries and will complain.


[SVN r25756]
2004-10-16 09:31:58 +00:00
Vladimir Prus
17a685e035 Library improvements:
lib png : z : <name>png ;
  lib z : : <name>z ;

now works: if you link to 'png' you'll also link to 'z'.

  lib png : z : <file>png.a ;
  lib z : : <file>z.a ;

now works too. The 'prebuilt.jam' modules which used to handle <file> for
all target kinds is now removed.


[SVN r25703]
2004-10-13 10:46:53 +00:00
Vladimir Prus
a1753dcec1 Additional test
[SVN r25702]
2004-10-13 08:03:59 +00:00
Vladimir Prus
8f7c1dde3d Restore the gcc specific link generators.
* build/toolset.jam (inherit-generator): New parameter 'generators-to-ignore'.
* tools/gcc.jam: Ignore *link* generators when inheriting. Declare the
  gcc specific generator.
* test/gcc_runtime.py: Test that <link-runtime>static is correctly handled.
  The gcc specific generator is necessary exactly for that reason.


[SVN r25700]
2004-10-13 08:02:23 +00:00
Vladimir Prus
e646c5b8f8 Ignore <library>, except for "exe" and "lib" targets.
[SVN r25661]
2004-10-11 12:13:48 +00:00
Vladimir Prus
2a64d512a2 Rename lib.err.cpp to lib-err.cpp.
[SVN r25655]
2004-10-11 06:57:05 +00:00
Vladimir Prus
fc48453c63 Rename test-config.jam.in to test-config-example.jam.
[SVN r25654]
2004-10-11 06:52:10 +00:00
Aleksey Gurtovoy
8ba474bdcf c++boost.gif -> boost.png replacement
[SVN r25572]
2004-10-05 15:23:19 +00:00
Vladimir Prus
1e7af707c3 Reduce directory depth, for CD FS benefit.
[SVN r25565]
2004-10-05 07:55:20 +00:00
Vladimir Prus
3f30646c81 Remove one directory level in testcase, so stay below 8-level limit of some
broken systems.


[SVN r25563]
2004-10-05 07:12:26 +00:00
Vladimir Prus
b86474fe8e Change the way generators selection works. Now, instead of computing
'rank' for each viable generator, we use explicit information of the
form 'generator A is better than generator B', which is provided by
the user. The obvious goal is to fix 'custom_generator' failure on
msvc, but generally, I'm fixing BB76 -- which says that current generators
selection is very broken.


[SVN r25361]
2004-09-23 07:44:59 +00:00
Vladimir Prus
8066b6a56e Support the && syntax in the property.translate-paths rule.
[SVN r25339]
2004-09-22 14:25:04 +00:00
Vladimir Prus
41a6ad007c Support AIX and IRIX.
[SVN r25301]
2004-09-21 13:36:36 +00:00
Vladimir Prus
b91aafa44c Revert the previous behaviour of unit-test: it does not store output into
a file but shows it on the screen. However, the proper setting of run
paths is not done for unit-test too.


[SVN r25035]
2004-09-13 09:32:37 +00:00
John Maddock
93a525dc98 BSL update.
[SVN r25016]
2004-09-11 12:12:38 +00:00
Vladimir Prus
553e750fce Another attempt to kill SunCC's warning.
[SVN r25004]
2004-09-10 12:44:00 +00:00
Vladimir Prus
28b4b7adb4 Don't generate empty source file -- SunCC warns in that case.
[SVN r25000]
2004-09-10 11:46:22 +00:00
Vladimir Prus
45d30cdade Add some missing newlines. Sun compiler generates warning otherwise.
[SVN r24998]
2004-09-10 11:42:04 +00:00
Vladimir Prus
197d88d856 Use windows file extensions under cygwin.
[SVN r24988]
2004-09-09 12:23:00 +00:00
Vladimir Prus
6d7b79da48 Simplify the test, and avoid conflicts with the 'RC' type defined in
'msvc.jam/rc.jam'.


[SVN r24986]
2004-09-09 10:55:59 +00:00
Vladimir Prus
474a7fdbef Robustify Tester.expect_content: don't crash when the file does not
exist.


[SVN r24985]
2004-09-09 10:50:52 +00:00
Vladimir Prus
b474060d8e Add missing dllexport/dllimport.
[SVN r24974]
2004-09-08 14:56:04 +00:00
Vladimir Prus
692ec14ece Only SystemExit exception from test module indicates failure. Other exceptions
indicator error in the test, so should not be caught.


[SVN r24973]
2004-09-08 14:48:46 +00:00
Vladimir Prus
95f617c6a2 Work around generators_test failure on msvc
[SVN r24885]
2004-09-03 08:03:26 +00:00
Vladimir Prus
62b3b18c4c Do no check for return status of build at all. For some reason, on
msvc, 0 is returned and that broke the test. But really, we're interested
only if user-defined generator is run, not that the result is compiled.


[SVN r24779]
2004-08-27 08:16:38 +00:00
Vladimir Prus
c14c9b8e6c BSL
[SVN r24749]
2004-08-26 11:19:23 +00:00
Vladimir Prus
834d66a456 Fix the <link-runtime>static property on gcc.
[SVN r24665]
2004-08-23 12:40:23 +00:00
Vladimir Prus
3641f8988f Add a specific test for issue BB60, so that I can close it.
[SVN r24662]
2004-08-23 11:20:43 +00:00
John Maddock
c06ce55478 removed the last boost.org copyright
[SVN r24615]
2004-08-20 11:32:03 +00:00
John Maddock
348fb7ab39 Converted files to the BSL.
[SVN r24614]
2004-08-20 11:10:24 +00:00
Dave Abrahams
539889d4aa fix copyright/license
[SVN r24509]
2004-08-16 14:44:19 +00:00
John Maddock
d066958ed0 Updated copyrights to reflect true author (see discussion on Jamboost list).
[SVN r24500]
2004-08-16 11:23:58 +00:00
Vladimir Prus
07f6065611 * build/virtual-target.jam
(from-file): Use full file name as search key, to avoid creating two
  different targets from two different project, which actually correspond
  to the same file.
  (register): Use actual name of the target as key. This again avoid
  the problem with two equivalent targets in two different projects.


[SVN r23173]
2004-06-24 07:26:29 +00:00
Vladimir Prus
9e5dbba552 Update testing jam to the same logic for running exes as V1 uses.
[SVN r23066]
2004-06-09 13:40:25 +00:00
Vladimir Prus
c5d658939b Update tests to recent unit-test changes
[SVN r23000]
2004-06-02 14:19:16 +00:00
Vladimir Prus
29f34eb193 Remove 'link-incompatible' attribute from some feature, most notable
'toolset' and 'threading'. The reason is that current link-compatibility
check is way too simple minded and produces bogus warnings. For example,
linking MT library into single threaded application is OK. Likewise, some
toolsets are link-compatible.

We might need a better mechanism, but for now just make the feature
link-compatible. Useless warnings are much worse than failure to report
link-incompatibility in some cases.


[SVN r22949]
2004-05-27 07:39:17 +00:00
Vladimir Prus
33b864e88e Don't run library_order.py on Windows, since the test makes no sense there,
does not work, and can't be easily fixed.


[SVN r22933]
2004-05-26 10:59:48 +00:00
Vladimir Prus
2eec4041cb Minor fixes.
[SVN r22930]
2004-05-26 10:52:11 +00:00
Vladimir Prus
79cd3623f4 Remove check for 'unused sources'. The check causes bogus warnings in at least
a couple of cases.

1. On Windows, DLLs are never directly linked to, so they are considered
   unused and cause a warning. There used to be special code in
   exe-target-class and lib-target-class to supress that warning, but this
   failed for unit-test, for example, since main target class for unit test
   is not related with exe-target-class. And making yet another main target
   class looks ugly.
2. A target specified via project-wide <source> or <library> property is
   added to sources for all targets, and cause a warning when it's not used.
   However, there are valid cases to ignore such sources. For example

       obj a : a.cpp : <optimization>off ;

   need to comsume any libraries.

It was not clear how to fix both problems. Further, the only case when I found
the warning to be usefull is when declaring new toolsets, and it that case it
does not add much information compared to --debug-generators output. So, let's
just kill the feature for now.


[SVN r22927]
2004-05-26 09:57:03 +00:00
Vladimir Prus
f9b7313ca8 Allow directory names in arguments in 'glob'.
[SVN r22800]
2004-05-12 08:50:04 +00:00
Vladimir Prus
d6c9b302a0 Make the 'glob' rule in the project scope to operate relatively to
the 'source-location', not project location.

Thanks to Johannes Brunen for the bug report.


[SVN r22799]
2004-05-12 07:38:48 +00:00
Vladimir Prus
65d0021707 Don't import toolsets in project-root.jam
[SVN r22798]
2004-05-12 07:11:53 +00:00
Vladimir Prus
6e10fa5525 Introduce the <source> feature and make <library> work in the same way
as <source>.


[SVN r22570]
2004-03-31 08:02:59 +00:00
Vladimir Prus
12d08a7b73 Bugfix: the main target rules did not work unless called from Jamfile.
The used 'CALLER_MODULE' to determine the project where the main target
is to be declared, which did not work if the rule is called from another
module.

Thanks to Zbynek Winkler for the bug report.

* build/project.jam (current): New rule
* test/wrapper.py: New test
* other files: Use 'project.current'.


[SVN r22569]
2004-03-31 06:53:56 +00:00
Vladimir Prus
2dd280cbb6 Improve the algorithm for computing build properties.
[SVN r22542]
2004-03-22 08:10:42 +00:00
Vladimir Prus
b775145d8f Darwin improvements.
Patch from Andre Hentz.

 * v2/build/toolset.jam
   (inherit-flags): Take an extra parameter describing properties that
   should not be inherited.

 * v2/build/type.jam
   (register-suffixes): Removed local qualifier.

 * v2/test/BoostBuild.py
   (prepare_suffix_map): Add .dylib if OS is Darwin.
   (Tester::_init_): path to bjam on Darwin.

 * v2/test/prebuilt.py
   make sure $toolset is expanded correctly.

 * v2/test/prebuilt/project-root.jam
   use $toolset instead of gcc.

 * v2/test/prebuilt/ext/project-root.jam
   use $toolset instead of gcc.

 * v2/test/prebuilt/ext/Jamfile2.jam
   handle extension .dylib.

 * v2/test/prebuilt/ext/Jamfile2.jam
   handle extension .dylib.

 * v2/tools/darwin.jam
   inline call to toolset.inherit.
   filter <debug-symbols>off because -s is not accepted for dlls.
   speficy that .dylib files are of type SHARED_LIB.
   (actions link): pass -s for static linkage.
   (actions link.dll): pass -L flag with path to libraries.
   (actions archive): -c inhibits warning.


[SVN r22332]
2004-02-20 08:51:33 +00:00
Vladimir Prus
cd17918331 Revert latest commit. The test fails without ordered properties, and those
can't be finished right away.


[SVN r22282]
2004-02-16 08:49:48 +00:00
Vladimir Prus
2d883c64d5 Optimize library ordering by native rules.
[SVN r22281]
2004-02-16 08:30:13 +00:00
Vladimir Prus
0da0a2e3a4 Disable order-sensitive properties for a while. They cause performance
degradation that should be investigated.


[SVN r22145]
2004-02-03 08:36:46 +00:00
Vladimir Prus
81530cba02 Fix typo
[SVN r22135]
2004-02-02 13:27:46 +00:00
Vladimir Prus
ae5e7922d0 Revive project_test1.py.
[SVN r22133]
2004-02-02 13:17:41 +00:00
Vladimir Prus
93c3c932e2 Instroduce order-sensitive properties.
* build/feature.jam: New feature attribute 'order-sensitive'.

* jam_src/modules/property-set.c: (property_set_create): Don't sort
  order-sensitive attributes.


[SVN r22132]
2004-02-02 13:12:30 +00:00
Vladimir Prus
9034f3ba61 First version of proper library ordering for gcc.
[SVN r22079]
2004-01-30 14:10:24 +00:00
Vladimir Prus
2078bed239 * test/test_all.py
Don't stop at the first failure, try to move further.

  Patch from Andre Hentz, with some tweaks by myself.


[SVN r21724]
2004-01-14 07:20:49 +00:00
Vladimir Prus
a3ac522cd1 Improve NDEBUG handling. Specify <define>NDEBUG as part of <variant>release,
instead of setting it on when there's <optimization>speed. Also, now we
don't use active features at all.


[SVN r21666]
2004-01-13 10:18:09 +00:00
Vladimir Prus
21f0722dfa Added support for testing on solaris:
* test/BoostBuild.py:
    (Tester): added a check for SunOS and one for Linux. The default now is
    to raise an exception.

Patch from  Andre Hentz.


[SVN r21663]
2004-01-13 09:24:16 +00:00
Vladimir Prus
1baab343b9 Unbreak searched_lib.py and library_chain.py. Pass proper -rpath-link
options to the linker.

* tools/builtin.jam
  (lib-target-class.compute-usage-requirements): Add xdll-path
  properties instead of dll-path. Add them unconditionally,
  not only when hardcode-dll-paths is true.

  (linking-generator.run): When hardcode-dll-paths is true, add
  dll-path property for each xdll-path property.

* tools/gcc.jam
  Convert xdll-path properties into -rpath-link option.


[SVN r21560]
2004-01-09 10:50:07 +00:00
Vladimir Prus
3086648616 Fix BB65: includes of the form
# include "a.h"

(note the space), were not considered during dependency scanning.


[SVN r21541]
2004-01-08 08:00:00 +00:00
Rene Rivera
4306e24d92 Fix tabs in file.
[SVN r21399]
2003-12-26 23:26:49 +00:00
Vladimir Prus
37cf2d1afc Another fix for standalone projects.
[SVN r21226]
2003-12-11 14:12:02 +00:00
Vladimir Prus
860db52c28 Fix a couple of bugs with absolute filesnames.
[SVN r21225]
2003-12-11 13:46:11 +00:00
Vladimir Prus
a051902d37 Forgotten change.
[SVN r21197]
2003-12-10 07:55:01 +00:00
Vladimir Prus
771ef2230d When build directory is specified via 'build-dir' project attribute,
don't add 'bin' to the path.

Patch from Zbynek Winkler.


[SVN r21195]
2003-12-10 06:39:27 +00:00
Rene Rivera
4a0924d91f Fix broken links.
[SVN r21163]
2003-12-06 16:17:39 +00:00
Vladimir Prus
49adf0f54e Remove tabs.
[SVN r21112]
2003-12-03 07:56:28 +00:00
Vladimir Prus
e4fb41995a Fix BB58: the unit-test rule was ignoring <library> property.
* tools/builtin.jam
  (linking-generator): Move <library> properties to sources in the 'run'
  method. This makes the logic usable by everyone who invokes the generator.
  (exe-target-class, lib-target-class): Don't do the above.


[SVN r20707]
2003-11-06 16:46:29 +00:00
Vladimir Prus
20c1e93a40 Fix a bug with searched libraries. When they are bypassed by static library,
we need to bypass <library-path> property, as well.

* tools/builtin.jam
  (lib-target-class.compute-usage-requirements): The above change.

* build/virtual-target.jam
  (subvariant.set-usage-requirements, subvariant.usege-requirements):
      New methods.
  (abstract-file-target.dg): Don't allow changing the value.

* build/targets.jam
  (basic-target.generate): Explicitly don't change value of 'dg'.


[SVN r20655]
2003-11-04 17:14:29 +00:00
Vladimir Prus
abd7908cfc Add a test for linking a libary to library. This revealed some bug, and
in fact, caused rsp files refactoring comitted previously.


[SVN r20651]
2003-11-04 16:40:45 +00:00
Vladimir Prus
9e371b3f34 Add forgotten file.
[SVN r20645]
2003-11-04 13:07:39 +00:00
Vladimir Prus
0bf53f0cf6 Remove obsolete tests.
[SVN r20634]
2003-11-04 10:07:32 +00:00
Vladimir Prus
acadbf896a Fix the bug that compsite properties in the 'requirements' attribute are not expanded.
* build/targets.jam
  (basic-target.refined-properties): expand composites in the 'requirements' property-set.

Patch from Paul Lin.

* tests/composite.py: New test.


[SVN r20615]
2003-11-03 15:19:36 +00:00
Vladimir Prus
dc2b77511d Put my test config here, so that I can run the entire release_procedure.txt
on all toolsets.


[SVN r20542]
2003-10-29 11:31:02 +00:00
Vladimir Prus
58ffd92d48 Allow BoostBuild.py to find bjam both in parent directory (for releases)
and in parent's parent directory (for CVS testing).


[SVN r20540]
2003-10-29 11:18:47 +00:00
Vladimir Prus
3f70a26a20 Allow the 'stage' rule to traverse dependencies.
* build/virtual-target.jam
  (subvariant.__init__): New parameter 'sources'.
  (subvariant.all-referenced-targets): New method.

* build/targets.jam
  (basic-target.create-subvariant): New parameter 'sources'.

* built/type.jam
  (is-subtype): New rule.

* tools/stage.jam
  (stage-target-class.construct): Traverse dependencies when requested.
  (stage-target-class.collect-targets): New method.


[SVN r20534]
2003-10-29 06:08:44 +00:00
Vladimir Prus
583bf9fe87 Make 'regression.py' work with msvc.
* tools/builtin.jam
  (exe-target-class.compute-usage-requirements): Pass <dll-path> properties
  as usage requirements.

* tools/testing.jam
  (capture-output): Handle <dll-path> properties.

* tools/common.jam
  (path-variable-setting-command): New rule.


[SVN r20522]
2003-10-28 12:16:10 +00:00
Vladimir Prus
466105e97d Make library target pass <dll-path> properties it got from
usage requirements of sources. Add a test for the new behaviour.


[SVN r20521]
2003-10-28 10:05:59 +00:00
Vladimir Prus
83f22eb83e Fix BB54: the 'alias' rule was not passing usage requirements of the sources.
* build/alias.jam
  (alias-target-class.compute-usage-requirements): New method.


[SVN r20519]
2003-10-28 08:50:58 +00:00
Vladimir Prus
b2b6e2769b Simplify target paths.
* build/targets.jam
  (project-target.reference-properties): Remove.

* build/virtual-target.jam
  (abstract-file-target.specific-main-target,
   file-target.specific-main-target): Remove.


[SVN r20516]
2003-10-28 07:46:40 +00:00
Vladimir Prus
236fc77725 Accomodate new directory layout.
[SVN r20503]
2003-10-27 07:14:21 +00:00
Vladimir Prus
b949771e65 Work-in-progress on better library handling.
* new/builtin.jam
  (link-action.adjust-properties): Remove.
  (linking-generator.generated-targets): Do what adjust-properties used to do.
  (linking-generator.run): Convert <library> properties to sources.
  (exe-generator): New class.


[SVN r20455]
2003-10-22 16:18:08 +00:00
Vladimir Prus
d88803f3cb Fix a bug in the "stage" rule. It was changing target suffix in some cases.
Thanks to Peter Steiner for bug report.


[SVN r20454]
2003-10-22 16:12:38 +00:00
Vladimir Prus
07e1e527a3 Handle hardcode-dll-paths a little bit differently.
* new/targets.jam
  (basic-target.compute-usage-requirements): Add second parameter 'targets'.

* new/builtin.jam
  (lib-target-class.compute-usage-requirements): Add proper <dll-path>
  properties when <hardcode-dll-paths> in in properties.

  (lib-target.adjust-properties): Don't handle <hardcode-dll-paths>.


[SVN r20441]
2003-10-21 10:44:06 +00:00
Vladimir Prus
a5e699ac5c Fix a problem with 'use-project' which refers to child project. Thanks
to Austin Bingham for the bug report.

* new/project.jam
  (load): Don't mark project as loaded here.
  (load-jamfile): Mark it as loaded here.


[SVN r20439]
2003-10-21 09:24:47 +00:00
Vladimir Prus
f4c350524f Bugfix. It was not possible to specify empty suffix to a type if
base type had nonempty suffix.


[SVN r20435]
2003-10-21 07:24:28 +00:00
Vladimir Prus
2f1119297f Remove support for using project-root.jam in place of Jamfile.
* new/project-roots.jam
  (project-root-context.project): Remove.

* new/project.jam
  (find): Simplify.
  (find-jamfile): Optimize.


[SVN r20432]
2003-10-21 06:12:49 +00:00
Vladimir Prus
47aa5f97b7 Fix a bug which caused double loading of Jamfile in some cases. Also,
simplify some things.

* new/project.jam
  (load): Tweak
  (lookup): Remove.
  (find): Simplify.


[SVN r20430]
2003-10-21 05:47:39 +00:00
Vladimir Prus
cb50ed0edd Don't run 'regression' on win, since it's not working there, yet.
[SVN r20336]
2003-10-10 13:18:22 +00:00
Vladimir Prus
1048d58831 Rename <dependency> to <use>.
[SVN r20335]
2003-10-10 12:49:06 +00:00
Vladimir Prus
c159616543 Drop useless test which causes problems on windows.
[SVN r20334]
2003-10-10 12:28:04 +00:00
Vladimir Prus
f7964e634f Make the test platform-neutral.
[SVN r20332]
2003-10-10 12:18:40 +00:00
Vladimir Prus
503da68bc4 Improve alternative selection.
* new/targets.jam
  (main-target.select-alternative): Rewrite.
  (main-target.generate-really): Issue error in all cases where best
  alternative could not be found.
  (basic-target.match): Renamed from 'match-rank' and changed.

* boost_build_v2.html: Document new algorithm.

* test/alternatives.py: More tests.


[SVN r20331]
2003-10-10 12:14:59 +00:00
Vladimir Prus
ada627ba32 Make the 'regression' test case work on windows with gcc.
[SVN r20299]
2003-10-08 05:49:57 +00:00
Vladimir Prus
7c4e61af9f Bugfix: path-constant rule was mishandling absolute paths on Windows.
[SVN r20297]
2003-10-08 05:40:16 +00:00
Vladimir Prus
d454a26cfe Add tests for regression system.
[SVN r20280]
2003-10-07 13:03:04 +00:00
Vladimir Prus
2eb79255bd Bugfix.
* new/BoostBuild.py
  (Tester.touch): Fix so that it can accept List instances.


[SVN r20279]
2003-10-07 12:50:17 +00:00
Dave Abrahams
5ffe27e49e Removed all property-adjuster references and the associated test.
[SVN r20207]
2003-09-29 15:27:47 +00:00
Vladimir Prus
959782b4d4 Enable some previously commented out test.
[SVN r20205]
2003-09-29 15:17:18 +00:00
Vladimir Prus
05c4757d82 Implement a somewhat better link-compatibility check.
* new/targets.jam
  (basic-target.check-for-link-compatibility): New rule.
  (basic-target.generate-sources, basic-target.generate): Call the above.


[SVN r20191]
2003-09-26 11:13:42 +00:00
Vladimir Prus
0419f26474 Drop the notion of link-compatibility. We don't really want it for
projects, and for individual targets, it will reappear later.

* new/property.jam:
  (refine): Don't check for link-compatibility.

* new/targets.jam
  (project-target.generate): Don't call 'refine' and don't emit any
  warnings.

  (basic-target.match-rank): The alternative selection mechanism dependended
  on link-compatibility in some way. Work around the difference in semantic
  we have now. This will be resolved in a more clean way later.

* new/property-set.jam
  (property-set.link-incompatible, property-set.link-incompatible-with):
  New methods.


[SVN r20190]
2003-09-26 10:22:22 +00:00
Vladimir Prus
a2f68ad42e Implement <implicit-dependency> feature.
* new/virtual-target.jam
  (subvariant-dg.implicit-includes): New method.
  (subvariant-dg.__init__): Check for <implcit-dependency>, not all
  dependency features.

* new/builtin.jam
  (compile-action.adjust-properties): Call 'implicit-includes'.


[SVN r20174]
2003-09-24 06:13:01 +00:00
Dave Abrahams
b6c3972f2c Use import rule
[SVN r20170]
2003-09-24 00:01:11 +00:00
Vladimir Prus
da15d4a222 Fix BB39: project root constants are available also in project-root module
itself.


[SVN r20077]
2003-09-16 14:54:09 +00:00
Vladimir Prus
a046f6b0c0 Make msvc happy.
[SVN r20019]
2003-09-11 08:12:58 +00:00
Vladimir Prus
a8758e0f2c Bugfix: allow a generator to create two targets of the same type.
* new/generators.jam
  (generator.__init__): Use parallel lists to store prefixes and postfixes
  for a name, not mapping with type as a key, since type is not unique.
  (generator.generated-targets): Adjust.


[SVN r19990]
2003-09-10 07:39:45 +00:00
Vladimir Prus
b8b18394e3 Add 'glob' rule to Jamfile context.
[SVN r19914]
2003-09-04 11:19:03 +00:00
Vladimir Prus
be258d889a Remove support for old-style target ids.
[SVN r19913]
2003-09-04 11:06:14 +00:00
Vladimir Prus
52547317f0 Bugfix. Allow "project-root" to work in Jamfile, again.
Thanks to Peter Schoen for bugreport.

* new/project.jam (initialize): Set 'project-root-module' attribute.
* new/project_root.py: New test.


[SVN r19899]
2003-09-01 14:00:26 +00:00
Vladimir Prus
e92b5c5d23 Fix a hard error whenever a target is skipped. Thanks to
Christopher Currie for spotting this bug.


[SVN r19854]
2003-08-29 08:48:15 +00:00
Vladimir Prus
c72f0987ca Python 2.3 fixes. Use __rmul__ for fixed mode operations on List, not
__coerce__, since it works in a wrong way and might be removed in future.


[SVN r19806]
2003-08-27 13:57:47 +00:00
Vladimir Prus
6165bef6c0 Test toolset inheritance
[SVN r19461]
2003-08-05 06:10:58 +00:00
Vladimir Prus
286825f9d5 Rename 'xclass' to 'class'.
[SVN r19458]
2003-08-05 05:25:33 +00:00
Vladimir Prus
a9cb673c30 Rename 'xnew' to just 'new'.
[SVN r19434]
2003-08-04 11:12:30 +00:00
Vladimir Prus
7fceeb4bc7 Drop all style classes support.
[SVN r19433]
2003-08-04 10:53:34 +00:00
Vladimir Prus
bd38c04d0e Move abstract-target hierarchy to new classes.
[SVN r19428]
2003-08-04 09:22:29 +00:00
Vladimir Prus
c1e3f990f1 Move generators to new-style classes.
[SVN r19427]
2003-08-04 09:19:54 +00:00
Vladimir Prus
88d198970c Speed up module imports.
* jam_src/builtins.c: New builtins IMPORT_MODULE and IMPORTED_MODULES.
  jam_src/rules.c: (bindrule): Refactor. (lookup_rule): New function.

* kernel/modules.jam: Make use of IMPORT_MODULE.


[SVN r19422]
2003-08-04 08:45:41 +00:00
Vladimir Prus
34b0c5d51d Correct the copyright.
[SVN r19325]
2003-07-28 08:25:29 +00:00
Vladimir Prus
630e14381f Bugfix. Keep the same suffix when staging files.
[SVN r19324]
2003-07-28 08:18:20 +00:00
Vladimir Prus
9935ca42e3 Weaken multiple main target default build check. Must be identical
rather then only defined on first.

The previous behaviour did not work when there were "default-build" attribute
on project and two alternatives for a main target.

Patch from Michael Stevens.


[SVN r19303]
2003-07-25 07:58:47 +00:00
Vladimir Prus
4f30918d6a Patch from Pedro Ferreira to implement <tag> feature.
* new/targets.jam
  (basic-target.tag-name): New rule.
  (basic-target.generate-really): Temporary change self.name

* test/tag.py: New test.


[SVN r19298]
2003-07-24 13:57:45 +00:00
Vladimir Prus
11d9de9016 Unbreak the test on Windows.
[SVN r19258]
2003-07-22 09:31:45 +00:00
Vladimir Prus
15b0e35204 Python 2.1 compatibility.
[SVN r19255]
2003-07-22 09:02:09 +00:00
Vladimir Prus
7b8c2fca3f Fix BB46 (inline targets renaming).
* new/targets.jam
  (project-target.add-alternative): New rule.
  (project-target.build-main-targets): New rule.
  (project-target.generate, project-target.main-target,
   project-target.has-main-target): Call 'build-main-targets'
  (project-target.rename-main-target): Remove.

  (main-target-sources): Use 'rename', not project.rename-main-target.
  (main-target-alternative): Simplify.

* test/inline.py: Test for fix.


[SVN r19245]
2003-07-21 08:30:20 +00:00
Vladimir Prus
72d84b8e49 Bugfix: conditionals properties was misbehaving when there were ":" in
property value.

* new/property.jam
  (evaluate-conditionals-in-context): Don't be greedy in regex.

* test/conditionals3.py: New test.


[SVN r19243]
2003-07-21 07:17:19 +00:00
Vladimir Prus
d14334895e Unbreak STLport and railsys test.
* tools/stlport.jam
  (stlport-target-class.generate): New method.

* test/test_all.py: Run 'railsys' again.


[SVN r19242]
2003-07-21 06:43:28 +00:00
Vladimir Prus
370c9f2bfe Work on BB43 (hang on loop in main target references).
* new/targets.jam
  (start-building, end-building): New rules.
  (main-target.generate): Call the above rules.

* test/loop.py: New test.


[SVN r19241]
2003-07-21 06:21:27 +00:00
Vladimir Prus
1a7819fe34 Fix BB38 (composite properties expansion buggy).
* new/build-request.jam
  (expand-no-defaults): Don't expand composites.

* new/targets.jam
  (main-target.generate): Expand composites.

* test/property_expansion.py: New test.


[SVN r19240]
2003-07-21 05:55:42 +00:00
Vladimir Prus
35aa067d95 Fix a bug which caused non-free feature to appear twice in property set.
[SVN r19239]
2003-07-21 05:34:15 +00:00
Vladimir Prus
c1d153e914 Add missing file.
[SVN r18932]
2003-07-03 10:11:38 +00:00
Vladimir Prus
d2ad8e70c5 Implement inline main targets.
* new/targets.jam
  (main-target-sources): New rule.
  (abstract-target.rename): New rule
  (project-target.rename-main-target): New rule.


[SVN r18923]
2003-07-03 07:23:26 +00:00
Vladimir Prus
eb5d60e764 Make searched targets really work on borland.
* new/builtin.jam
  (lib-generator): Remove.
  (lib-target-class): New class. Target class is more powerfull then
  generator, here.

* new/generators.jam
  (construct): New argument 'return-all'.

* bew/property-set.jam
  (property-set.add-raw): New method.


[SVN r18917]
2003-07-02 12:23:50 +00:00
Vladimir Prus
745fbefcf4 Add --preserve option to test system.
[SVN r18915]
2003-07-02 11:46:19 +00:00
Vladimir Prus
6834f94a49 Robustify dependency_test.
[SVN r18907]
2003-07-01 14:10:03 +00:00
Vladimir Prus
a61389b1c6 Change the core so that both "existing" and "updated" modifiers are both
allowed.


[SVN r18901]
2003-07-01 09:45:56 +00:00
Vladimir Prus
3a68b842ae The "explicit" targets are now specified by "explicit" rule in Jamfile,
not by project attribute. The problem with the previous interface was
that it was not possible to mark target as explicit anywhere else,
such as in helper module which declares target in project module, or
in toolset module.

* new/targets.jam
  (project-target.mark-target-as-explicit): New rule
  (project-target.targets-to-build): Use self.explicit-targets.

* new/project.jam
  (project-attributes.set): Don't allow 'explicit-targets'.


[SVN r18900]
2003-07-01 06:46:15 +00:00
Vladimir Prus
ee237153c7 Update build system for bjam changes.
[SVN r18890]
2003-06-30 14:28:05 +00:00
Vladimir Prus
bd5a03d448 Handle include dependencies between generated sources correctly.
[SVN r18889]
2003-06-30 14:24:20 +00:00
Vladimir Prus
c2abccc7de Bugfix: make searched libraries really work on borland.
[SVN r18867]
2003-06-24 12:43:11 +00:00
Vladimir Prus
cace6663db Enable 'custom_generator' test.
[SVN r18833]
2003-06-18 06:37:43 +00:00
Vladimir Prus
83394f7ff8 Implement new target-id syntax.
[SVN r18780]
2003-06-11 12:22:03 +00:00
Vladimir Prus
58f0dbb5cd Compile C files with C compiler, not C++. This commit would close BB32, if
it included MSVC...

* new/toolset.jam:
  Allow action names with dots, so that we can set flags for
   gcc.compile.c, gcc.compile and gcc and combine those flags.

* tools/gcc.jam: Use 'gcc' for compiling C files. There's still a problem:
   'init' rules does not allow to configure name of C compiler. Also, don't
   declare flags individually for gcc.link and gcc.link-dll.

* tools/borland.jam: Force C++ compile when needed.


[SVN r18774]
2003-06-11 08:40:45 +00:00
Vladimir Prus
f8a73bbd50 Allow project-root.jam to act as Jamfile.
* new/project-root.jam (project-root-context.project): New rule
  (find-project-rule): New rule, factored out of 'load' so that it can
  be used elsewhere.

* new/project.jam (find): When project is not yet known, try loading
  project-root, not only Jamfile.


[SVN r18759]
2003-06-10 11:07:56 +00:00
Vladimir Prus
bc4878cdd8 Update railsys for recent changes.
[SVN r18694]
2003-06-06 10:06:14 +00:00
Vladimir Prus
90dbefd759 Refactorings. Now usage requirements that should be propagated to dependents
are communiated via return value of 'abstract-target.generate', not as
attribute of virtual target. The advantage is that we can return usage
requirements, even if no targets were created.

Also, usage requirements is not really attribute of virtual target. If several
virtual targets are created for one main target, the previous code would set
the same usage requirements on all virtual targets.


[SVN r18689]
2003-06-06 09:02:36 +00:00
Vladimir Prus
6327d3e7be Don't warn when dependency main target produced nothing.
* new/targets.jam
  (basic-target.check-for-unused-sources): Don't warn when group
  of targets originated from one main target is empty.


[SVN r18686]
2003-06-06 06:29:31 +00:00
Vladimir Prus
0d2f6b260b Simplify project-id and target-id handling.
* new/project.jam
  (lookup) Don't support project location in front of "@".
  (lookup-with-load): Remove.
  (find): New rule.
  (find-target): move to...

* new/target.jam
  (find): Here. And simplify.


[SVN r18667]
2003-06-04 13:30:45 +00:00
Vladimir Prus
5a4da8e5d5 Remove 'boost-build.jam' files from 'railsys' test, since they mess up
testing.


[SVN r18583]
2003-05-28 11:32:01 +00:00
Vladimir Prus
ce2b257a16 Bugfix from Michael Stevens: when directory names contained regex
metacharacters, Boost.Build misbehaved.

* new/path.jam
  (all-parents): Don't use regex to strip path prefix, use a more robust
    approach.

* test/bad_dirname.py: New test.


[SVN r18576]
2003-05-28 07:11:50 +00:00
Dave Abrahams
377bb87cad Enabled sorting of BBv2 modules into subdirectories
build-system.jam - moved from tools/build/new to tools/build

boost-build.jam - moved from tools/build/new to tools/build/kernel
bootstrap.jam
errors.jam
modules.jam

test/BoostBuild.py   - adjusted for the above modification
test/boost-build.jam

project-root.jam - renamed to "project-roots.jam" to avoid confusion
                   and conflict with the user's project-root.jam file

project.jam                           - adjusted for the above renaming
test/project-test1/project-test1.jam

type.jam - broke a circular module dependency


[SVN r18575]
2003-05-28 01:33:38 +00:00
Dave Abrahams
6bc8613bab Give a little feedback about the current directory when a test fails
[SVN r18571]
2003-05-27 23:59:03 +00:00
Vladimir Prus
c1aa2a6273 Update the railsys tests for recent QT changes.
[SVN r18555]
2003-05-27 06:08:09 +00:00
Vladimir Prus
e8463abada Allow 'standalone' projects.
* new/project.jam
  (inherit-attribute): New rule, extracted from 'initialize'.
  (initialize): Allow 'jamfile' parameter to be empty, in which case
    the project is 'standalone'.


[SVN r18544]
2003-05-26 14:30:26 +00:00
Vladimir Prus
13c385b491 Refactorings. Use module name to identify Jamfiles, not the directory where
they are located. The problem with using the directory name is that we might
want toolset modules to act as project, and directory name is not unique then.
We might even want to declare two projects in the same module.


[SVN r18542]
2003-05-26 13:51:21 +00:00
Vladimir Prus
88370d5a63 Refactorings: remove 'project-root' attribute of project, for lack of any
use.

* new/project.jam
  (initialize): Register with project root here. Don't initialize the
   'project-root' attribute.
  (project-attributes.set): Don't allow 'project-root' and 'project-root-module'.


[SVN r18541]
2003-05-26 12:56:24 +00:00
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
Vladimir Prus
220713e082 Use the previous approach for finding generator's match rank, now
that we have a use case. Add an explanation in code. More details
will be posted to the list.


[SVN r18475]
2003-05-21 05:37:39 +00:00
Vladimir Prus
95ec8bfc41 Ignore borland debug symbols.
[SVN r18448]
2003-05-19 12:39:06 +00:00
Vladimir Prus
1d14f245bf Fix a bug with default build handling. The bug was caused by the fact that
default build was stored as plain list, and implied properties were not
converted. E.g. we had "debug release", not "<variant>debug <variant>release",
which was assumed.

* new/targets.jam
  (main-target, basic-target): Store 'property-set' as default-build
  attribute.
  (main-target-default-build): Use 'property-set.create-with-validation'.

* new/property-set.jam
  (create-with-validation): New rule.

* test/default_build.py: More tests.


[SVN r18436]
2003-05-19 09:54:08 +00:00
Dave Abrahams
4ee5b15a5d * expand.c - Implemented :W modifier for Cygwin->Windows path
translation.  Cleaned up indentation and idiomatic use of string.

* index.html - documented recent features including VARNAMES and
  DELETE_MODULE

* borland.jam, msvc.jam - use the new :W modifier to simplify
  code (but only somewhat)

* BoostBuild.py - ignore MSVC .ilk files under Cygwin and NT


[SVN r18434]
2003-05-19 06:30:44 +00:00
Dave Abrahams
1722b16700 * Restored the printing of qualified names from invoked actions.
Consequently rolled back the workaround in make_rule.py

* Added new indirect rule invocation module for encoding the module to
  invoke a rule from as well as the exact name to invoke it by, and
  for subsequent invocation.

* Fixed module __test__ rules so they really do execute in a separate
  module.  Associated tweaks to __test__ in path.jam


[SVN r18427]
2003-05-16 16:30:13 +00:00
Vladimir Prus
cd49e5bc38 Unbreak 'searched_lib.py'.
* new/virtual-target.jam
  (null-action): Pass '.no-action' as action name, not 'no-action'. The
  action name is really dummy, it's not used at all. However, when it does
  not include dot, the smart 'action' ctor will assume it's local and prepend
  module name to it. The calling module will be 'null-action' instance module,
  always unique, and as result, no two targets with null actions will be
  equal, as far as 'virtual-target.register' is concerned.


[SVN r18424]
2003-05-16 12:57:40 +00:00
Vladimir Prus
db91ec9eeb Unbreak make_rule.py. The change in actions reporting broke it.
[SVN r18422]
2003-05-16 12:38:50 +00:00
Vladimir Prus
b651eb1fee Run 'unused' now that it works.
[SVN r18421]
2003-05-16 12:15:36 +00:00
Vladimir Prus
bb4b314443 Add missing import.
[SVN r18420]
2003-05-16 12:14:56 +00:00
Vladimir Prus
23078d9d4a Add forgotten files.
[SVN r18417]
2003-05-16 11:23:17 +00:00
Dave Abrahams
7555f7e166 added missing import
[SVN r18412]
2003-05-15 22:31:03 +00:00
Dave Abrahams
ce112daf23 Workaround svn_tree deficiency on Cygwin
[SVN r18411]
2003-05-15 22:30:47 +00:00
Dave Abrahams
3bb7442512 * added new builtin tests
* handle the absence of QT more gracefully

* flush stdout after each test so that emacs shows progress

****** Commented out tests which appear to be failing outside my control ******


[SVN r18410]
2003-05-15 22:30:08 +00:00
Dave Abrahams
1e2b34c928 tests for new builtin rules
[SVN r18409]
2003-05-15 22:27:47 +00:00
Dave Abrahams
acb95541c1 * Prefer to test with a debug version of bjam if one is available
* Always dump stdio/stderr when there's a failure


[SVN r18408]
2003-05-15 22:27:25 +00:00
Vladimir Prus
e30fb819a4 Improve the way unused sources are detected/reported.
* new/targets.jam
  (basic-target.generate-source): Separate virtual targets that come from
    different sources.
  (basic-target.check-for-unused-targets): Warn only if not virtual target
    from a given source is comsumed.


[SVN r18403]
2003-05-15 15:52:26 +00:00
Vladimir Prus
a26f853035 Add tests for typechecking facilities.
* test/core_typecheck.py: New test
* test/core_d12.py: Don't pass toolset name to bjam.
* test/test_all.py: Run core tests.


[SVN r18390]
2003-05-14 06:44:43 +00:00
Vladimir Prus
f66ff9d456 Add missing call to BoostBuild.Tester.cleanup.
[SVN r18389]
2003-05-14 06:38:04 +00:00
Vladimir Prus
6287b25112 Improve tests.
* tests/prebuilt/ext/Jamfile3: Test that prebuilt targets with
  absolute names work.


[SVN r18371]
2003-05-08 13:52:28 +00:00
Vladimir Prus
680a933600 Bugfix.
* new/virtual-target.jam
  (file-target.specific-main-target): Check not only free, but also
  dependency properties when deciding if targets is specific to the main
  target.
* new/dependency_property.py: New test.


[SVN r18363]
2003-05-08 11:24:26 +00:00
Dave Abrahams
22a4b4f30b restore from disk crash
[SVN r18353]
2003-05-08 02:19:10 +00:00
Dave Abrahams
5f99b86bd1 Enable symlink test for Cygwin, since it's been fixed there.
[SVN r18347]
2003-05-07 16:08:33 +00:00
Dave Abrahams
340fd6efa6 Works on Cygwin now
[SVN r18346]
2003-05-07 16:08:04 +00:00
Vladimir Prus
412ee4ad24 Fix path properties handling bug, noted by Kirill Lapshin.
* new/property.jam
  (translate-paths): Apply 'path.make' to path properties.

* test/path_features.py: Test for the bug.


[SVN r18325]
2003-04-28 08:46:16 +00:00
Vladimir Prus
e6f4b40277 Fix problem with absolute paths for sources, noted by Kirill Lapshin.
* new/virtual-target.jam
  (from-file): Pass target name via "path.make".
  (abstract-file-target.actual-name): Pass target name via "path.native".

* test/absolute_sources.py: New test.


[SVN r18324]
2003-04-28 07:55:53 +00:00
Vladimir Prus
a99af5e8a9 Add test-config.jam skeleton.
[SVN r18323]
2003-04-28 07:45:02 +00:00
Vladimir Prus
bfb285baea Implement 'explicit targets'. This closes BB29, except for documentation
issues.

* new/project.jam: New project attribute 'explicit-targets'.
* new/targets.jam (project-target): Don't implicitly generate targets
  that are in 'explicit-targets' attribute.


[SVN r18294]
2003-04-23 13:34:17 +00:00
Dave Abrahams
4e0c8a8f32 Patches for testing under Cygwin
[SVN r18283]
2003-04-21 00:35:36 +00:00
Dave Abrahams
72e727f4de Modifications for working under Cygwin
[SVN r18266]
2003-04-16 16:14:20 +00:00
Vladimir Prus
b040c8b42e Bugfix: set NDEBUG for release builds.
* new/builtin.jam: Make <optimization>speed active property and add
  <define>NDEBUG for it.

* test/ndebug.py: New test.


[SVN r18250]
2003-04-14 11:02:34 +00:00
Vladimir Prus
21bb325dcc Bugfix: don't create duplicate virtual targets for searched lib with
the same properties. Thanks to Andre Hentz for finding this bug and
providing the test case.

* new/builtin.jam
  (searched-lib-generator.run): Pass the result through
  'virtual-target.register'.

* test/searched_lib.py: Add new test.


[SVN r18247]
2003-04-14 05:51:06 +00:00
Vladimir Prus
e825755eed Fix a bug introduces in 1.8 which broke gcc tests. Do not think that import
libraries are used with gcc, even on NT. The previos version assumed that
import libraries are always used on NT.


[SVN r18230]
2003-04-11 06:31:14 +00:00
Vladimir Prus
9efcd4132f Restore prebuilt.py to life on NT/gcc.
[SVN r18228]
2003-04-10 15:10:37 +00:00
Vladimir Prus
41e33cd9f0 Patch from Andre Hentz.
get os=cygwin/toolset=msvc to pass the tests

* new/msvc.jam
  (link): create a CYGWIN-specific version (assumes bash and cygpath)
  (archive): convert paths from unix-style to nt-style
  (init): use platform-independent paths

* test/dependency-test/foo.jam
  add __declspec if CYGWIN and not GCC


[SVN r18224]
2003-04-10 09:49:31 +00:00
Vladimir Prus
a8af1447a7 Borland tweaks.
* test/dependency_test.py
  Ignore *.tds files.


[SVN r18219]
2003-04-09 12:17:11 +00:00
Vladimir Prus
0d64186003 Test tweak: don't import toolsets --- user-config/test-config should do that.
[SVN r18218]
2003-04-09 12:14:28 +00:00
Vladimir Prus
b1f7b4f34d Patch from Andre Hentz to fix os=cygwin/toolset=msvc combination.
* new/builtin.jam: Associate obj and lib extension with OBJ and
STATIC_LIB target types, to handle the above combination. The gcc
toolset overrides these extension explicitly.

* new/msvc.jam
   (archive): Use bash syntax on cygwin.


[SVN r18210]
2003-04-08 14:14:53 +00:00
Vladimir Prus
394043114a Win32 fixes.
[SVN r18182]
2003-04-04 08:00:42 +00:00
Vladimir Prus
d188a48917 Tweaks.
* test/BoostBuild.py
    (Tester.expand_toolset): New method.


[SVN r18180]
2003-04-04 07:52:09 +00:00
Vladimir Prus
443f59d114 Pass string to 'popen3', since it does not like lists.
[SVN r18179]
2003-04-04 07:50:36 +00:00
Vladimir Prus
d63f63a9fa Patch from Andre Hentz.
Change the test system to use "exec*", not "system". This is needed to
avoid espacing shell metacharacters.


[SVN r18156]
2003-04-02 12:43:05 +00:00
Vladimir Prus
05defd2bb1 Additional tests for direct build request handling.
[SVN r18147]
2003-04-01 08:46:38 +00:00
Vladimir Prus
9dde9ed6b4 Enable a test which now works.
[SVN r18146]
2003-04-01 07:50:01 +00:00
Douglas Gregor
51fc0e2dee print.py: Test the print module by using it to output text with quotes to a
text file

test_all.py: add print.py


[SVN r18126]
2003-03-28 15:27:14 +00:00
Vladimir Prus
5b79cb74ed Patch from Andre Hentz.
* new/builtin.jam
  - register builtin.response-generator with 'register-linker', to
    take advantange of 'link-action'. Convert <library-path>,
    <find-static-library> and <find-shared-library> into on-target
    variables using toolset.flags.
  (builtin.response-file) Output variables for library path to response
    file.
  (searched-lib-generator.run): Assign 'null-action' instance to the
  generated target, to carry properties. Correct prototype and workaround
  some, as-yet-unknown problem.

* test/searched_lib.py: New test (added by me).


[SVN r18121]
2003-03-28 09:20:58 +00:00
Vladimir Prus
dda1f62f93 Bugfix: pass toolset after extra_arguments, so that
run_build_system("-n") generates
   -n gcc
command line, intead of
   gcc -n
where '-n' is ignored.


[SVN r18120]
2003-03-28 09:12:51 +00:00
Vladimir Prus
fcd415ef69 Robustify project-test3 and project-test4, so that don't fail
if just some incidental property is added.


[SVN r18119]
2003-03-28 08:39:21 +00:00
Vladimir Prus
b47cd2d0ea Workaround a big BUG. The test must pass now, however.
[SVN r18103]
2003-03-27 15:46:14 +00:00
Dave Abrahams
7ac1d52126 Adjust for Win32
[SVN r18030]
2003-03-20 13:48:59 +00:00
Dave Abrahams
24affbdfdf Account for Win32 idiosyncracies
[SVN r18024]
2003-03-20 02:42:17 +00:00
Vladimir Prus
06b75a7d71 Bugfix. Make values of path-constants into absolute paths, so that they
can be used without problems as values of path features.


[SVN r17908]
2003-03-14 07:50:19 +00:00
Vladimir Prus
6e5234743c Bugfix: allow alternative with no sources and no generated targets.
* new/targets.jam
  (generate): Use a special string to report failure, not just return
      of empty list.
  (basic-target.generate-sources): Accomodate the above change.
  (basic-target.check-for-unused-sources): Allow empty list of targets.

* test/alternatives.py: New test.


[SVN r17906]
2003-03-14 06:58:44 +00:00
Dave Abrahams
5e84902733 Patches for WIN32
[SVN r17895]
2003-03-13 17:41:17 +00:00
Dave Abrahams
1ef541ccf5 Patches for WIN32
[SVN r17894]
2003-03-13 17:37:13 +00:00
Vladimir Prus
c3daa69e05 Bugfix: translate path properties even in conditional properties.
* new/property.jam
  (split-conditional): New rule
  (translate-paths): Use the above to handle conditional properties.

* test/path_features.py: New tests.


[SVN r17881]
2003-03-13 10:09:06 +00:00
Vladimir Prus
6a6d6fb90c Integrate the "railsys" test.
[SVN r17848]
2003-03-12 14:08:57 +00:00
Vladimir Prus
4c57eec8b2 Update tests for the last commit.
[SVN r17846]
2003-03-12 14:03:34 +00:00
Vladimir Prus
5ab287d535 Add big testcase from Jürgen Hunold.
[SVN r17838]
2003-03-12 13:30:21 +00:00
Vladimir Prus
4ac0bc3f06 Fix conditional usage requirements. Thanks to Ali Azarbayejani for bug
report.

* new/property-set.jam
   (property-set.evaluate-conditionals): New parameter 'context'.

* new/property.jam
   (evaluate-conditionals-in-context): Renamed from 'evaluate-conditionals'.
   New parameter 'context'.

* new/targets.jam
   (basic-target.generate): Evaluate conditionals in usage-requirements.

* test/conditionals.py: Add test.


[SVN r17830]
2003-03-12 08:35:54 +00:00
Vladimir Prus
6ec769bf7f Change <dependency>, so that it does not really add dependency
unconditionally.

* new/builtin.jam
     (linking-generator.run): New rule. Sets dependency on <library>
     properties.

* new/generators.jam
     (construct): Do not handle usage requirements. Do not handle
     dependency features in any way.

* new/targets.jam
     (main-target.generate-really): Don't create/set subvariant-dg.
     (basic-target.generate): Collect usage requirements. Create/set
     subvariant-dg.

* new/virtual-target.jam
     (subvariant-dg): Take actual build properties together with
     requested ones.


[SVN r17813]
2003-03-11 12:41:39 +00:00
Vladimir Prus
30dd23d718 Bugfixes: prevent two equal property lists generate two different
property-set instances, because of different order.

* new/property-set.jam
    (create): Sort the properties.

* new/feature.jam:
     (minimize): Bugfix.


[SVN r17812]
2003-03-11 12:08:35 +00:00
Vladimir Prus
b07f821bd6 Doc tweak.
[SVN r17768]
2003-03-07 16:39:13 +00:00
Vladimir Prus
1bdae210d2 Change default-build handling.
* new/targets.jam
     (main-target.apply-default-build): Combine build request with
     default build.

* new/default_biuld.py: More tests.


[SVN r17756]
2003-03-07 10:06:42 +00:00
Vladimir Prus
8d38ee1b89 Make default values of features really work. Now a feature with
default value will always be present in build properties of all
main targets. The change moves adding default value into main
targets --- it was done at the top level.

* new/build-request.jam
    (expand-no-defaults): No longer local.

* new/build-system.jam
    Use 'build-request.expand-no-defaults', not 'expand'.

* new/feature.jam
    (add-defaults): Tolerate conditional properties
        (e.g <variant>debug:<define>DEBUG)

* new/property-set.jam
    (property-set.add-defaults): New method.

* new/targets.jam
    (basic-target.final-properties): Add defaults.

* test/default_features.py: New test.


[SVN r17753]
2003-03-07 08:45:37 +00:00
Dave Abrahams
8f2b6126b9 Accomodate msvc
[SVN r17746]
2003-03-06 17:54:16 +00:00
Dave Abrahams
a474528bdc Stop putting exported symbols in the intended .exe object file
[SVN r17742]
2003-03-06 14:58:04 +00:00
Dave Abrahams
49b7e75ea2 improve error reports
[SVN r17741]
2003-03-06 14:57:26 +00:00
Vladimir Prus
7494886fee Improve test system docs.
[SVN r17731]
2003-03-05 14:51:05 +00:00
Dave Abrahams
26ffd348a9 Fixes for NT
[SVN r17704]
2003-03-03 16:12:38 +00:00
Vladimir Prus
b054db5911 Prevent the 'make' rule perform reduntant builds. Thanks to Kirill Lapshin
for the bug report.

* new/make.jam
    (make-target-class.construct): Pass the result through
    'virtual-target.register'.

* new/virtual-target.jam
    (register): Ignore incidental properties when deciding if targets are
    equivivalent.

* test/make_rule.py: Add new test.


[SVN r17701]
2003-03-03 07:47:14 +00:00
Vladimir Prus
5b1001ef74 Warn on unused sources.
* new/targets.jam
    (basic-target.check-for-unused-sources): New rule.
    (basic-target.generate): Call the above.

* new/virtual-target.jam
    (traverse): New arguments 'include-roots' and 'include-sources'.

* test/unused.py: New test.


[SVN r17685]
2003-02-28 08:13:38 +00:00
Vladimir Prus
e69e444e5d Cleanups. Default build improvements related to BB10.
* new/targets.jam
    (main-target.default-build): New field.
    (main-target.add-alternative): Don't allow default-build for
       second and subsequence alternatives. Record default build
       from the first one.
    (main-target.generate): Expand build request.
    (main-target.generate-really): New rule, extracted from 'generate'.
    (basic-target.default-build): New rule.
    (basic-target.generate): Don't expand default build.

* test/BoostBuild.py
  Allow to suppress passing toolset when calling run_build_system.
  Some Python 2.1 compatibility fixes.

* test/alternatives.py
  More tests.

* test/default_build.py
  More tests.


[SVN r17683]
2003-02-28 06:36:39 +00:00
Dave Abrahams
8caa1bfca8 Fix extensions
[SVN r17681]
2003-02-28 01:33:10 +00:00
Dave Abrahams
527414ced6 Warning suppression for MSVC
[SVN r17676]
2003-02-27 15:08:20 +00:00
Dave Abrahams
8ecc2fb311 Fixes for NT
[SVN r17675]
2003-02-27 15:04:11 +00:00
Dave Abrahams
2fe6cc0f7e Warning suppression for MSVC
[SVN r17674]
2003-02-27 15:01:02 +00:00
Vladimir Prus
8c8f99e835 Refactorings.
* new/targets.jam
    (main-target.select-alternatives): New rule.
    (main-target.generate): Simplify, using the above.

* new/errors.jam
    (error): Do EXIT if --no-error-backtrace is given.

* tests/alternatives.py: New test.


[SVN r17673]
2003-02-27 14:25:26 +00:00
Vladimir Prus
ae90c56249 Bugfix: nested 'build-project' statements were not handled correctly
when any build request is given on command line. Thanks to
Jürgen Hunold for catching this!


[SVN r17669]
2003-02-27 08:51:37 +00:00
Dave Abrahams
453da12659 typo
[SVN r17643]
2003-02-25 14:42:34 +00:00
Dave Abrahams
09d88e1f8e Fixes for testing
[SVN r17642]
2003-02-25 14:37:10 +00:00
Vladimir Prus
8f3659a663 Fix some conditional logic.
[SVN r17640]
2003-02-25 14:09:45 +00:00
Dave Abrahams
74c8438c09 roll back mistaken change
[SVN r17638]
2003-02-25 13:52:19 +00:00
Dave Abrahams
fa10f34e5f This uses gcc explicitly, so it had better not rely on $toolset
[SVN r17624]
2003-02-25 02:27:29 +00:00
Dave Abrahams
6755468816 Better handling of pass_toolset
[SVN r17604]
2003-02-23 17:04:57 +00:00
Dave Abrahams
09f57e1699 minor fixes
[SVN r17603]
2003-02-23 16:56:21 +00:00
Vladimir Prus
dabd5d5b69 Implement the 'alias' main target. This closes BB12.
[SVN r17574]
2003-02-21 09:25:43 +00:00
Vladimir Prus
477aa5a946 Bugfix: make Tester.ignore* methods really work.
[SVN r17573]
2003-02-21 09:22:35 +00:00
Vladimir Prus
9b3fd4f503 Fix syntax of variable setting on jam command line for windows.
[SVN r17571]
2003-02-21 08:23:07 +00:00
Vladimir Prus
a15049afbe Really start the last failed test as soon as possible.
[SVN r17568]
2003-02-21 07:49:14 +00:00
Vladimir Prus
10837cd3f5 More testing improvements.
* new/build-system.jam: Try to load 'test-config.jam'. If successfull,
    don't load site-config.jam/user-config.jam.

* test/BoostBuild.py: Add directory where test is invoked to BOOST_BUILD_PATH,
    so that test-config.jam can be dropped to "test" dir.


[SVN r17558]
2003-02-20 15:58:02 +00:00
Vladimir Prus
e017ca640f Towards really cross-toolset testing system.
- Allow to specify toolset name on the command line
- Expand $toolset in paths
- Pass toolset name to bjam invocations.


[SVN r17555]
2003-02-20 13:08:51 +00:00
Vladimir Prus
e44c37b94f Allow additional argument for user rule, with "make" main target.
* new/make.jam
    (make): Change name only of the first element in 'generating-rule'

* new/virtual-target.jam
    (action.actualize): Pass only first element of action name to
       toolset.set-target-variables.

* test/make_rule.py: New test.


[SVN r17543]
2003-02-20 07:20:52 +00:00
Vladimir Prus
feae90d6d0 Bugfix: Whoever inveted "text mode" for files was very wrong, and I was
wrong for ignoring this. This changes fixes searched_lib.py on Windows.


[SVN r17534]
2003-02-19 15:49:53 +00:00
Vladimir Prus
352bc8c515 Improve stage rule, allowing to specify location in requirements. This
allows short name for stage targets which install to global locations.


[SVN r17508]
2003-02-18 11:25:04 +00:00
Vladimir Prus
0264dca306 Improve running tests.
1. Test names are printed as they are executed.
2. The test which failed during the previous run is executed as soon
   as possible.yx


[SVN r17507]
2003-02-18 09:00:59 +00:00
Vladimir Prus
188f0e963b Followup to the last commit: don't import 'exe_suffix'.
[SVN r17506]
2003-02-18 08:57:28 +00:00
Vladimir Prus
2f58129645 Automatically adjust suffixes when running tests.
[SVN r17505]
2003-02-18 08:32:57 +00:00
Vladimir Prus
95d4da2990 Don't link to -lz and assume it's existence: build a private library
for testing. Also, test both <name> and <search> in one test.


[SVN r17503]
2003-02-18 06:56:12 +00:00
Dave Abrahams
38ca2de3b2 untested MSVC toolset
untested response-file support
expanded optimization to speed/space/off

removed module_actions.PYC
validate multiple properties at once.
Fix bugs in type.jam, virtual-target.jam, symlink.py


[SVN r17487]
2003-02-17 15:16:35 +00:00
Vladimir Prus
29699d629e Bugfix: virtual target with per-main-target properties can be confused
with ordinary virtual target.

* new/virtual-target.jam
    (abstract-file-target.specific-main-target): New overridable rule.
    (abstract-file-target.actual-name): Use the above.
    (file-target.specific-main-target): Override, using code from
       'compute-extra-path'.
    (file-target.compute-extra-path): Remove
    (file-target.path): Use 'specific-main-target' directly.

* test/main_properties.py: More tests.


[SVN r17480]
2003-02-17 09:10:57 +00:00
Vladimir Prus
71e8e39f36 Bugfix: recreate working dir only if it does not exists.
* test/BoostBuild.py: (Tester.rm): The above change.


[SVN r17479]
2003-02-17 09:03:04 +00:00
Vladimir Prus
338bf290e6 Bugfix: build-dir was broken when building from child projects.
[SVN r17478]
2003-02-17 08:36:45 +00:00
Vladimir Prus
846928e81a Bugfix: <search> property on searched lib targets was ignored.
[SVN r17477]
2003-02-17 08:32:45 +00:00
Vladimir Prus
a3022bed89 Minor bugfix.
[SVN r17298]
2003-02-10 07:09:14 +00:00
Björn Karlsson
1bba5c6b1f Added copyright statement
[SVN r17226]
2003-02-05 09:47:21 +00:00
Björn Karlsson
468b7d29e1 Added copyright statement
[SVN r17224]
2003-02-05 09:33:54 +00:00
Vladimir Prus
e468ab1b9a Kill tabs.
[SVN r17221]
2003-02-05 08:00:34 +00:00
Vladimir Prus
aec91ee0fe Improve diagnostics.
[SVN r17220]
2003-02-05 08:00:06 +00:00
Vladimir Prus
601764adff Bugfix: now search-lib targets can be used in requirements and
usage-requirements.

* new/builtin.jam
    (link-action.adjust-properties): Rework.

* test/searched_lib.py: New test.


[SVN r17104]
2003-01-31 09:26:25 +00:00
Vladimir Prus
202f647001 Bugfix: quoted includes were not handled correctly in some cases.
[SVN r17067]
2003-01-28 15:40:25 +00:00
Vladimir Prus
c09d236e1b Enable warnings for gcc.
* new/gcc.jam: The change itself.

* test/generators-test/Jamfile: Supress a warning :-)


[SVN r17058]
2003-01-28 08:46:22 +00:00
Vladimir Prus
8491abeb3a Make module_actions test work on Linux.
[SVN r17057]
2003-01-28 08:40:23 +00:00
Vladimir Prus
cccd2cec60 Add (now disabled) test for BB10.
[SVN r17008]
2003-01-23 14:24:53 +00:00
Dave Abrahams
07ca2ea663 Added missing module_actions test
[SVN r17007]
2003-01-23 13:57:01 +00:00
Vladimir Prus
6906a6333f Supress some output, when unneeded.
[SVN r17005]
2003-01-23 11:33:53 +00:00
Vladimir Prus
f67acc61a7 Introduce "--ignore-config" command line option.
[SVN r17004]
2003-01-23 11:22:47 +00:00
Dave Abrahams
52183394e8 Added missing module_actions test
[SVN r16999]
2003-01-22 22:10:11 +00:00
Vladimir Prus
3099d7337f Win32 fix.
[SVN r16910]
2003-01-15 12:03:08 +00:00
Vladimir Prus
41b44f946c Fix the stage rule, so that it allows sources with directory names.
* new/stage.jam:
   (stage-target-class): Strip directory names when determining the name of
   the target file.

* test/stage.py: Update the test.


[SVN r16892]
2003-01-13 16:28:47 +00:00
Vladimir Prus
2782e9b785 Fix/improve the symlink rule.
* new/path.jam
    (make-NT, make-UNIX): Convert empty path into "."

* new/project.jam
    (path-relative-to-project-location): New rule.

* new/stage.jam
    (stage-target-class.construct): Use the above rule.

* new/symlink.jam
    (symlink-targets.construct): Call 'set-path' on created
    virtual targets.
    (ln): Attempts at better handling creating symlinks in
    directories.

* new/virtual-target.jam
    (abstract-file-target.actual-name): If explicit path was
    given, include it in grist.

* test/symlink.py: New test.

* test/test_all.py
    Run new test.


[SVN r16889]
2003-01-13 16:09:43 +00:00
Vladimir Prus
53c60e6a4e Rename 'use-requirements' to 'usage-requirement', to avoid
confusion.


[SVN r16883]
2003-01-13 11:15:07 +00:00
Dave Abrahams
8f5dd44691 Added missing newlines at EOF
[SVN r16857]
2003-01-10 15:38:27 +00:00
Vladimir Prus
96b2477766 Use more strict checks of suffix->type mapping. Does
allow type for a suffix to change.

* new/type.jam
    (register-suffixes): New rule. ( suffixes + : type )
    (register): Use the above.


[SVN r16848]
2003-01-10 10:02:13 +00:00
Vladimir Prus
d1c305bc15 Make prebuilt.py work on NT/MinGW.
[SVN r16847]
2003-01-10 09:40:58 +00:00
Dave Abrahams
26aff665ab add missing newline at EOF
[SVN r16840]
2003-01-09 17:09:04 +00:00
Vladimir Prus
32134d03f3 Make build_dir.py work on NT/MinGW.
[SVN r16839]
2003-01-09 16:22:09 +00:00
Vladimir Prus
4bfdbb5d43 Make project_dependencies.py work on NT/MinGW.
[SVN r16837]
2003-01-09 16:17:57 +00:00
Dave Abrahams
62983542ec add missing newline at EOF
[SVN r16836]
2003-01-09 16:14:30 +00:00
Vladimir Prus
d9217ebe21 Make stage.py work on NT/MinGW.
[SVN r16835]
2003-01-09 16:08:51 +00:00
Vladimir Prus
ffdb657b30 Make conditionals.py work on NT/MinGW.
[SVN r16834]
2003-01-09 16:04:13 +00:00
Vladimir Prus
1cfb8168d4 Make use_requirements.py work on NT/Cygwin, by using static lib in one
case.


[SVN r16833]
2003-01-09 15:52:23 +00:00
Vladimir Prus
adde0ddab3 Bugfix.
[SVN r16831]
2003-01-09 15:22:06 +00:00
Dave Abrahams
91e49d27e3 Fixes for Windows/GCC-3.2
[SVN r16815]
2003-01-09 01:29:30 +00:00
Dave Abrahams
5462e75669 Restore crucial missing line
[SVN r16810]
2003-01-09 00:03:25 +00:00
Dave Abrahams
e76fd2da84 Fixed up difference reporting again!
[SVN r16805]
2003-01-08 20:41:29 +00:00
Dave Abrahams
ec6cb7521b Fixed up difference reporting
[SVN r16804]
2003-01-08 20:34:00 +00:00
Dave Abrahams
954b6c9e00 Add verbosity options
[SVN r16803]
2003-01-08 20:11:15 +00:00
Dave Abrahams
a27cca7073 Add missing newlines at EOF
[SVN r16802]
2003-01-08 19:43:09 +00:00
Dave Abrahams
d715898f85 Add missing exe_suffix, dll_suffix
[SVN r16801]
2003-01-08 19:42:47 +00:00
Dave Abrahams
48e67e6a49 Add verbosity command-line option to dump build actions.
[SVN r16800]
2003-01-08 19:42:09 +00:00
Vladimir Prus
77817cb920 Making more tests work on windows.
* new/builtin.jam: The lib suffix in not "obj", even on windows.

* test/BoostBuild.py: (lib_suffix): New variable.
* test/generators_test.py: Use lib_suffix.


[SVN r16793]
2003-01-08 13:05:30 +00:00
Dave Abrahams
2dae35fbcc cleanup
[SVN r16761]
2003-01-05 18:40:55 +00:00
Dave Abrahams
8642622fe0 undo ls hack
[SVN r16760]
2003-01-05 18:40:33 +00:00
Dave Abrahams
5755486169 Use exe_suffix for Cygwin
[SVN r16759]
2003-01-05 18:27:05 +00:00
Dave Abrahams
89046eec23 Compute exe_suffix for Cygwin
Dump recursive directory on certain failures.
Allow List addition


[SVN r16758]
2003-01-05 18:25:58 +00:00
Dave Abrahams
685e43c097 Added missing newline at EOF which was causing warnings and thus test
failures with gcc-3.2


[SVN r16755]
2003-01-05 17:42:37 +00:00
Vladimir Prus
2d57d47b45 Work on BB14: allow target suffixes to depend
on build properties.

* new/builtin.jam
    Introduce "os" feature.

* new/gcc.jam
    Make object suffix "o" on all platforms.

* new/property.jam
    (property-map): New class.

* new/type.jam
    (.suffixes): Global propety-map instance, to
	keep properties->suffix mapping.
    (set-generated-target-suffix): New rule
    (generated-target-suffix): New argument
	'properties'.

* new/virtual-target.jam
    (abstract-file-target.actual-name): Pass
	properties to type.generated-target-suffix.

* test/project_test4.py
    Don't specify expected list of build properties,
    since it's not stable. Check head of error message
    only.


[SVN r16700]
2002-12-25 07:18:34 +00:00
Vladimir Prus
9605d9d16e Another bugfix for dependency properties in use requirements.
* new/targets.jam
    (generate-dependencies): New argument 'extra-properties.
        Add it to properties used for building dependencies.
    (basic-target.generate): Use the above change.


[SVN r16611]
2002-12-15 10:14:11 +00:00
Vladimir Prus
a0c8689ab0 Add a script to facilitate creating of tests from directories.
[SVN r16610]
2002-12-15 10:10:10 +00:00
Vladimir Prus
022ef577da Implement BB7: now there's "build-dir" project
attribute which controls where generated targets are put,
much in the same was as ALL_LOCATE_TARGET.

* new/virtual-target.jam
    (virtual-target.path): Respect build dir.
    (virtual-target.actualize-location): Don't
       compute path, but call call instead.

* new/project.jam
    (initialize): Set default value for 'build-dir'.
    (project-attributes.set): Handle 'build-dir'.

* new/path.jam
    (relative): New rule.

* test/build_dir.py: New test.


[SVN r16589]
2002-12-11 19:01:50 +00:00
Vladimir Prus
cfe61e5caa Introduce the <dll-path> and <hardcode-dll-paths> features.
* gcc.jam: Handle the <dll-path> feature.

* builtin.jam
    New features <dll-path> and <hardcode-dll-paths>.
    (link-action.adjust-properties): Add library's
    full paths to <dll-path> when <hardcode-dll-paths>
    is specified.


[SVN r16588]
2002-12-11 17:40:48 +00:00
Vladimir Prus
8905002026 Bugfix: dependency features in use requirements were mishandled.
* new/targets.jam
    (basic-target.generate): Use 'generate-dependencies'
    for use requirements on this target.

* test/use_requirements.py: More tests.


[SVN r16580]
2002-12-10 07:48:56 +00:00
Vladimir Prus
043e67d51f Bugfix: path features in target requirement were
not translated.

* test/path_features.py: Fix a bug in test.

* new/targets.jam
    (main-target-requirements): Bugfix.


[SVN r16579]
2002-12-10 07:15:33 +00:00
Vladimir Prus
2c841baa2d Replace the "prebuilt" rule with <file> feature.
* new/generators.jam
    (find-viable-generators): Allow target type of
       "*" mean any type. Try generators for "*" first.
       Really ignore generators for base types when
       there's a generator for derived type. Allow
       grist-only element in generators requirements
       to match all values of property.

* new/prebuilt.jam
    (prebuilt-target-class): Remove
    (prebuild-file-generator): New class.


[SVN r16578]
2002-12-10 07:06:43 +00:00
Vladimir Prus
149a9f83ef Improve shared/static linking interface and
introduce separate <link-runtime> feature.
Allow to use the 'lib' rule to declare
libraries that should be searched for.

* builtin.jam: Remove 'shared' features. Introduce
   'link' and 'link-runtime'.
   (searched-lib-target): New class
   (searched-lib-generator): New generator.
   (lib-action): New class, derived from 'action'.
   Handles instances of 'searched-lib-target' in sources.
   Also, moves all libraries from sources to property value,
   so that we can repeat them twice in command line.
   (lib-generator): Generator which uses 'lib-action'.

* generators.jam: Allow empty list of sources everywhere.

* virtual-target.jam (file-target): Split into
   'abstract-file-target' and 'file-target'.
   (abstra
  (action.actualize-sources): New rule. Allows to
  handle the fact that some sources are special,
  and should not become $(>) in action body.


[SVN r16573]
2002-12-09 10:02:37 +00:00
Vladimir Prus
c830f2d90a Better support project requirements with dependency properties
in it. Don't generate all main target into separate subdirectories
in this case.

* new/targets.jam:
    (project-target.reference-properties): New method
    (generate): Moved from basic-target.generate-source
    (generate-dependencies): New rule.

* test/project_dependencies.py: New test.


[SVN r16453]
2002-11-28 08:18:06 +00:00
Vladimir Prus
731f4ee7f7 Improve 'flags' and the gcc toolset.
* gcc.jam: Extend the 'toolset' feature with gcc here.
    Use flags for linking too and eliminate 'link-options'
    rule. Remove empty compile/archive/link/link-dll rules.

* toolset.jam (flags): Document somehow.
     (set-target-variables): Call 'actualize' on values
     of dependency features.


[SVN r16440]
2002-11-27 09:35:53 +00:00
Vladimir Prus
1f02cb3334 Add dummy actions for 'all', so that jam return 0 exit status. It used
to return 0 before because of a bug, but now that the bug is fixed, we
need to change test.jam.


[SVN r16359]
2002-11-21 12:27:38 +00:00
Vladimir Prus
d58cc867f1 Test for composite properties in target references.
[SVN r16347]
2002-11-20 16:38:53 +00:00
Dave Abrahams
8270fed72e Tests for v1 testing
[SVN r16345]
2002-11-20 15:51:53 +00:00
Vladimir Prus
d9b8b467ed Forgotten change.
[SVN r16248]
2002-11-15 07:15:10 +00:00
Vladimir Prus
b6d69f0b88 Revive all the tests.
* boost_build_v2.html: Document new option.

* new/generators.jam (find-viable-generators): Revert part of Dave's
   commit, essentially disabling finding base type generators.
   This part breaks a test, and need to be thinked about.

* new/errors.jam: Handle "--no-error-backtrace" option.

* test/project_test4.py: Adjust for new error syntax.


[SVN r16233]
2002-11-14 10:17:50 +00:00
Vladimir Prus
296276a550 Fix rule echoing.
* jam_src/make1.c (make1c): Output don't output nonqueit when neither
     DEBUG_MAKE nor DEBUG_MAKEQ is set.

   * test/code_d1d2.py: New test.


[SVN r16231]
2002-11-14 07:11:16 +00:00
Vladimir Prus
75230dc75a First implementation of "stage" and "prebuilt" rule.
* new/common.jam (copy): New rule.

* new/targets.jam (main-target.generate): Use a different
   algorith for selecting subvariant. Favour one with
   the longest intersection of requirements with build
   properties.

* new/virtual-target.jam (virtual-target): Eliminate 'subvariant'
   attribute. Use properties of action to for the same
   purpose. New methods 'set-path' and 'extra-grist'.


[SVN r16129]
2002-11-06 10:26:11 +00:00
Dave Abrahams
946edc4ce6 initial commit
[SVN r16122]
2002-11-05 19:56:18 +00:00
Dave Abrahams
2fe349e4b9 Proof-of-concept for testing
[SVN r16108]
2002-11-04 21:57:50 +00:00
Dave Abrahams
9fc2525046 Cygwin compatibility
[SVN r16107]
2002-11-04 21:56:41 +00:00
Vladimir Prus
2adc4a8664 Made 'include' adjustment for generated headers work when other
targets are specified as sources, not only as dependency properties.

    * new/virtual-target.jam (subvariant-dg): Note which sources
    are roots of dependency grapgs and record those graphs.


[SVN r16095]
2002-11-04 17:24:41 +00:00
Vladimir Prus
bdae1e81eb Honour use-requirements for dependency properties.
[SVN r15964]
2002-10-23 10:39:23 +00:00
Vladimir Prus
16c30bee97 Forgotten file.
[SVN r15852]
2002-10-10 12:20:19 +00:00
Vladimir Prus
e60af004d1 Add more tests.
[SVN r15851]
2002-10-10 12:12:06 +00:00
Vladimir Prus
93ba07f369 Implement dependendency features.
[SVN r15850]
2002-10-10 11:58:41 +00:00
Vladimir Prus
b55dc66bf3 Implement simple form of use requirements.
* new/virtual-target.jam
        (virtual-target.use-requirements): New rule.
        (virtual-target.set-use-requirements): New rule.

    * new/generators.jam (construct): Use 'use-requirements' of sources.

    * new/targets.jam (basic-target.generate): Store use requirements for
             generated targets.
      (main-target-alternative): Process use requirements.

    * new/project.jam: Support 'use-requirements' project attribute.


[SVN r15821]
2002-10-09 11:33:22 +00:00
Vladimir Prus
ef5eff03d0 Bugfixes.
* new/virtual-targets.jam (virtual-target.root): New rule
        (traverse): Don't traverse past roots.
    * new/targets.jam (main-target): Call 'virtual-target.root' as
        appropriate.


[SVN r15773]
2002-10-07 14:34:43 +00:00
Vladimir Prus
12518b72c2 Sundry improvements:
Bison and lex support.
    unit-test rule
    --version option
    default build really works

    * new/build-system.jam: Bugfixes. Added "--version" option.

    * new/project.jam: If default-build is not specifies, don't stick "debug".

    * new/property.jam (evaluate-conditionals): New rule.

    * new/targets.jam (basic-target.generate): Evalute conditional properties.

    * test/BoostBuild.py (Tester.maybe_do_diff): New method.
        (Tester.run_build_system): Call the above method when
        appropriate.


[SVN r15771]
2002-10-07 13:34:14 +00:00
Vladimir Prus
585b2f713e Allow to specify target ids in command line.
* project.jam (lookup-with-load): New rule.
      (find-target): Try interperting target id as project first.

    * build-request.jam (from-command-line): Don't grab
      unconditionally elements which have slashes -- they may be target
      ids.

    * build-system.jam: Allow target ids is command
      line. Accept --clean option.

    * BoostBuild.py (run_build_system): Call 'ignore_directoies' on diff.

    * tree.py (Trees_different.ignore_directoies): New method.


[SVN r15768]
2002-10-07 13:18:27 +00:00
Vladimir Prus
b2ed2fe8f5 Fix some obscure bugs.
* new/virtual-target.jam (clone-template): Improve interface and logic.

    * new/make.jam (make-target-class.construct): Set type and suffix on
    generated targets.

    * new/generators.jam (construct): Make sure all targets have known
     types.


[SVN r15766]
2002-10-07 13:08:04 +00:00
Vladimir Prus
43f2565a2d Allow directory part in names of source files.
[SVN r15708]
2002-10-04 13:59:25 +00:00
Vladimir Prus
bba2939592 Implement path features.
* property.jam (translate-paths): New rule.

    * targets.jam (main-target-alternative): Translate path
      properties.

    * project.jam (project-attributes.set): Likewise.

    * builtin.jam (variant): Fixes.


[SVN r15707]
2002-10-04 13:48:38 +00:00
Vladimir Prus
791b5ad620 Implement variant declaration.
* builtin.jam (variant): New rule.

    * build-system.jam: Unconditionally add <toolset>gcc to build
        request. Will be fixed when toolset support is ready.

    * feature.jam (extend-feature): Bugfix.


[SVN r15678]
2002-10-03 16:29:21 +00:00
Vladimir Prus
455019d5dc Propagate free properties in build request to all directly requested targets.
* targets.jam
        (abstract-target.direct-build-request): New rule.
        (project-target.direct-build-request): New rule.
        (main-target.direct-build-request): New rule.
        (main-target.generate): Use data stored by
        'direct-build-request' to adjust build properties.

    * build-system.jam: Call 'direct-build-request' on project
         target in "."

    * feature.jam (feature): Don't allow propagated free features.


[SVN r15677]
2002-10-03 15:18:59 +00:00
Vladimir Prus
2977f296d2 Skip projects when property refinement for them fails.
Skip main targets when no alternative can be build.
Issue error when 'construct' for alternative fails.


[SVN r15676]
2002-10-03 15:01:09 +00:00
Vladimir Prus
2e9065c102 Cleanups.
[SVN r15651]
2002-10-02 16:13:54 +00:00
Vladimir Prus
9029c81fce Test for poor main's per-source requirements.
* new/builtin.jam: Make 'obj' main type.
    * new/generators-test/*: Try compiling the same CPP file with
        different defines and linking in the same exe.


[SVN r15649]
2002-10-02 12:38:13 +00:00
Vladimir Prus
511b07358e Dependency scanning implementation.
* jam_src/builtins.c: New builtin SEARCH_FOR_TARGET.

    * jam_src/rules.c
         (bind_explicitly_located_targets): New function.
         (search_for_target): New function.

    * jam_src/make.c (make): Call 'bind_explicitly_located_targets()'
        immediately on entering.

    * jam_src/search.c (call_bind_rule): No longer 'static'.

    * new/builtin.jam (c-scanner.process): Real implementation.

    * test/dependency_test.py: Really test for dependencies.


[SVN r15646]
2002-10-02 11:56:32 +00:00
Vladimir Prus
c06b10384a Infrastructure for dependency scanning.
* virtual-target.jam (virtual-target.actualize): Accept
        'scanner' parameter and create different actual targets
        for different values of that parameter.
     (virtual-target.includes): Remove.
     (binding): New rule
     (remember-binding): New rule.

    * type.jam (set-scanner): New rule. (get-scanner): New rule.

    * scanner.jam: New file.

    * class.jam (__init__): Define __name__ in class scopes.

    * builtin.jam (c-scanner): New scanner class, associated with CPP
        files.


[SVN r15644]
2002-10-02 10:04:03 +00:00
Vladimir Prus
44f3faf761 Adjust include paths for compilations, so that generated headers are found.
* virtual-target.jam (traverse): New rule, returns a list of
    targets, given the graph root.
  (subvariant-dg): New class, to keep all targets for a given
    subvariant.
  (virtual-target.dg): New rule to access subvariant-dg.
  (virtual-target.path): New rule

* targets.jam (main-target.generate): Assign subvariant dg to all
  created targets.

* builtin.jam (compile-action.adjust-properties): Use subvariant
  dg to find all targets, their location, and add those location
  to include path.


[SVN r15619]
2002-10-01 17:00:24 +00:00
Vladimir Prus
b53b5af5e0 Added hooks to allow special property adjustment for generators and actions.
For example, this would allow compilers to add generated headers into include
path.

	* virtual-target.jam (action.adjust-properties): New rule.
	  (clone-action-template): Don't slice cloned object.

	* generators.jam (generator.action-class): New rule, to allow
	  overriding action class on per-generator basis.

	* builtin.jam (compile-action): New class.
	    (C-compiling-generator): New class.

	* gcc.jam: Use C-compiling-generator for gcc. Honor includes.


[SVN r15618]
2002-10-01 16:31:31 +00:00
Vladimir Prus
f2c695ebe8 Tweak test system.
[SVN r15611]
2002-10-01 14:55:52 +00:00
Vladimir Prus
609dd1f6ab Introduced SHARED-LIB and STATIC-LIB target types. Also introduced LIB target
type and a generator, which relays either to SHARED-LIB or STATIC-LIB,
depending of the value of "shared" feature.


[SVN r15529]
2002-09-27 07:35:03 +00:00
Vladimir Prus
7caaaac870 Work in progress.
- Got rid of vectors of vectors in generators code. That was not only slow, it
  was also troublesome.
- Started work on transformation caching. Works but needs review/cleanup.


[SVN r15465]
2002-09-20 12:50:44 +00:00
Vladimir Prus
e7eab4c752 Prevent creating two equivivalent virtual targets. This, in particular,
prevents complining the same source twice with the same properties.
Also allow generators to change source names using patterns.

    * new/generators.jam (generator): Accept name patterns together with
        target types.
        (generator.generated-targets): Use name patterns. Transform generated
        targets with 'virtual-targets.register', to eliminate duplicate
        virtual targets.


[SVN r15302]
2002-09-13 12:19:42 +00:00
Vladimir Prus
2796e8f328 Added generators test to the test suite.
[SVN r15269]
2002-09-11 15:56:56 +00:00
Vladimir Prus
ba4cc2976f Small fix.
[SVN r15268]
2002-09-11 15:54:39 +00:00
Dave Abrahams
12807f87fc More cygwin/NT compatibility fixes
[SVN r15267]
2002-09-11 15:40:32 +00:00
Dave Abrahams
4711f64f4e Workaround for cywgin/NT build
[SVN r15263]
2002-09-11 14:37:25 +00:00
Vladimir Prus
021c2e550d Some cleanups. At the same time, allowed several suffixes to target types
(e.g. "cpp" and "cxx").


[SVN r15262]
2002-09-11 14:18:52 +00:00
Vladimir Prus
4a7a508bc2 Added future generators test -- not automated now.
[SVN r14926]
2002-08-16 14:25:22 +00:00