Commit Graph

1149 Commits

Author SHA1 Message Date
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
Vladimir Prus
708e462dbf Created a new file 'common.jam' to keep rules not specific to a toolset.
* new/targets.jam: Use 'common' instead of 'utility'.
    * test/project_test3.py: Test that 'clean' works.
    * test/svn_tree.py: Sync with upstream revision 2944. Fix a bug
       which caused empty directory to be treated as file.


[SVN r14886]
2002-08-15 09:29:49 +00:00
Vladimir Prus
670c715402 Propagate only propagated properties.
[SVN r14884]
2002-08-15 08:42:08 +00:00
Vladimir Prus
04f57ff5ca Renamed 'os.path.jam' to 'path.jam'.
[SVN r14753]
2002-08-09 11:43:47 +00:00
Vladimir Prus
728a621cfb More checks for 'use-project' in project root module.
[SVN r14707]
2002-08-06 07:01:19 +00:00
Rene Rivera
52f28e78ef Add call to project root use-project for testing.
[SVN r14704]
2002-08-06 04:10:55 +00:00
Vladimir Prus
650a824995 Made names of preserved directories printed by tests.
* test/TestCmd.py (TestCmd.cleanup): Print the names of preserved
        directories. Reset self._dirlist even if directories are preserved.
    * test/BoostBuild.py (Tester.cleanup): New method.


[SVN r14489]
2002-07-17 09:16:37 +00:00
Vladimir Prus
8e64eb262d Deleted project_test2 and moved the interesting tests from it to project_test4.
[SVN r14404]
2002-07-11 10:01:53 +00:00
Vladimir Prus
8ccb3666b2 Renamed the 'subproject' rule to 'build-project' in UI.
[SVN r14403]
2002-07-11 09:41:29 +00:00
Vladimir Prus
77c5930fc8 Recover project_test3 to life.
[SVN r14399]
2002-07-10 16:27:25 +00:00
Vladimir Prus
8c70c8b287 Work on issue 577833: Finish target paths.
* new/targets.jam (main-target.generate) Add extra path component to
        virtual target which free properties are not equal to project's.
        (basic-target.generate): Pass refined properties to 'construct'.
        (virtual-target.extra-path): New rule.
        (virtual-target.actualize): Make use of extra path.
    * new/property.jam (take-free): New rule.


[SVN r14396]
2002-07-10 16:05:15 +00:00
Vladimir Prus
6813d7ce77 Changed reporting of unability to satisfy a build request.
* new/target.jam (main-target.generate): Give a more detailed error
        message when no alternative is found. (basic-target.generate):
        Don't exit with error when requirements can't be satisfied. Just
        return an error string.


[SVN r14393]
2002-07-10 09:06:24 +00:00
Vladimir Prus
47f95f3528 Forgotten file.
[SVN r14392]
2002-07-10 08:43:11 +00:00
Vladimir Prus
52a21fa88c Implemented main target alternative selection.
* new/targets.jam (main-target.generate): Select the alternative
         based on the list of non-free requirements.
     * new/property.jam (remove-free): New rule, removes free property from
         a property set.


[SVN r14391]
2002-07-10 08:37:31 +00:00
Vladimir Prus
d099c061b8 Bugfix.
[SVN r14390]
2002-07-10 07:31:57 +00:00
Vladimir Prus
64d934d4a0 Test system tweaks.
* test/TestCmd.py: Cause the names of preserved directories to be
        printed.
    * test/test_system.html: Document "PRESERVE*" environmental variables
       and "pass_test"/"fail_test" methods.


[SVN r14389]
2002-07-10 07:31:24 +00:00
Vladimir Prus
ffa86d5a91 Work around the fact that our tests change the current directory.
[SVN r14375]
2002-07-09 16:01:34 +00:00
Vladimir Prus
b0c9980865 Specifying target properties in target references now actually work.
* new/targets.jam (basic-target.generate-source): Fix regex.
    * test/project_test4.py: New test.


[SVN r14374]
2002-07-09 15:57:21 +00:00
Vladimir Prus
f3ec2d31dc Documented project-test3.
[SVN r14371]
2002-07-09 15:05:06 +00:00
Vladimir Prus
ac3d613184 Allow to use implicit features in some places.
* new/property.jam (make): New rule, constructs property set from
        what the user gives. Handles implicit features.
    * new/project.jam, new/targets.jam: Use 'property.make'.


[SVN r14370]
2002-07-09 15:03:04 +00:00
Vladimir Prus
028fbc5951 Removed obsolete test system and tests.
[SVN r14364]
2002-07-09 09:05:59 +00:00
Vladimir Prus
9384457f08 Work on the issue 578618. Moved all the data out of jamfile modules.
* new/project.jam (project-attributes): New class to keep all the
        project related data. (attritutes, attribute): New rules to access
        the project attributes. (target): New rule to access the project
        target for a jamfile module.
        (initialize): Store attribute in project-attributes instance.
        (project): Moved to jamfile module.
        (assign-option): Moved with modifications to project-attributes.get.
    * new/targets.jam, new/project-root.jam, new/make.jam,
      new/build-system.jam: Induced changes.


[SVN r14362]
2002-07-09 07:56:51 +00:00
Vladimir Prus
ffd68201df Test that targets from projects with different project roots can be used
together.


[SVN r14349]
2002-07-08 11:35:17 +00:00
Vladimir Prus
0e7be98dea Cleanups.
* new/targets.jam: (main-target.alternatives): Renamed from
      'main-target.variants'. Comment improvements.


[SVN r14342]
2002-07-08 10:38:54 +00:00
Vladimir Prus
e76db483d1 Using targets from other projects implemented.
* new/project.jam (lookup): Bugfixes. (find-target): Attempt to load
        project specified by project id.
        Project module rules:
            project: Allow empty id.
            use-project: New rule.
    * new/targets.jam: (basic-target.generate-source): Correct a bug in
        separating target id from extra properties.


[SVN r14341]
2002-07-08 10:26:57 +00:00
Vladimir Prus
5c7e8f77a6 Restore project_test2.py to life again.
[SVN r14337]
2002-07-08 09:30:19 +00:00
Dave Abrahams
78ff6489c6 incorporate defaults into build-request.expand
[SVN r14311]
2002-07-05 16:17:12 +00:00
Vladimir Prus
4e4254f5cb Apply feature defaults when building.
* new/build-request.jam (expand-with-defaults): New rule
    * new/build-system.jam, new/targets.jam: Use 'expand-with-defaults' instead
        of 'expand'.
    * new/builtin.jam: Define new feature 'threading'.
    * test/project_test3.py: Test that feature defaults are applied.


[SVN r14307]
2002-07-05 15:09:28 +00:00
Vladimir Prus
b3595b0e70 Unbreak project_test2.
[SVN r14284]
2002-07-02 15:07:43 +00:00
Vladimir Prus
e21fb49bcf Implemented getting build request from the command line.
* new/build-request.jam (from-command-line): New rule.
    * new/build-system.jam: Get build request from the command line,
        expand it and pass to 'generate' rules.
    * new/targets.jam: Use targets's properties when computing path.
    * test/project_test3.py: Test the above changes.


[SVN r14283]
2002-07-02 15:02:04 +00:00
Vladimir Prus
efd007c790 Project root loading tweaks.
* new/project-root.jam (load): Really produce an error message when
        project root file is not found.
    * test/project_test3.py: Test for the error reporting.


[SVN r14280]
2002-07-02 14:14:45 +00:00
Vladimir Prus
41896394ad Fix typo in the previous commit.
[SVN r14276]
2002-07-02 11:41:17 +00:00
Vladimir Prus
bde3a45b09 Made project_test3 work on windows.
[SVN r14275]
2002-07-02 11:37:54 +00:00
Vladimir Prus
023c50202f Test system improvements w.r.t. file content matching.
* test/BoostBuild.py (Tester.read_and_strip, Tester.expect_content):
        New methods.
    * test/test_system.html: Document the above methods.


[SVN r14274]
2002-07-02 10:34:43 +00:00
Dave Abrahams
d22e72693c improved property.as-path
[SVN r14269]
2002-07-01 20:05:37 +00:00
Vladimir Prus
50137dcc10 Beginning of the 'make' rule.
* new/targets.jam: Check for duplicate 'basic-target::generate()' calls.
        Use better logic to tell is source is another main target or file.
        (project-target::has-main-target): New rule.
    * new/project.jam (lookup): Fixes. (find-target): Implemented.
    * new/make.jam: New file, defines the 'make' rule and associated target
        class.
    * new/build-system.jam: Import 'make'. Generate virtual targets and
        actualize them.
    * new/utility.jam: Added "MkDir" rule and actions.
    * test/project_test3.py: New test.


[SVN r14249]
2002-06-27 14:00:30 +00:00
Vladimir Prus
07b79b453f Fix a bug in the previous commit.
[SVN r14248]
2002-06-27 13:41:35 +00:00
Vladimir Prus
f7691b8ccb Futher cleanups. Tests now pass.
* new/targets.jam: Rename 'abstract-target::local-name' to 'name'. Rename
        'abstract-target::name()' to 'abstract-target::full-name()'.
    * test/project-test2/project-test2.jam: Induces change.


[SVN r14247]
2002-06-27 11:00:05 +00:00
Vladimir Prus
6c15e489bb Don't wait after each run of bjam. Instead, wait for time change before
making any change to filesystem by the tester classes.


[SVN r14238]
2002-06-25 14:55:27 +00:00
Dave Abrahams
25fb2add6c Merged from RC_1_28_0
[SVN r13944]
2002-05-16 00:56:42 +00:00
Rene Rivera
fd3c87f199 Added container.
[SVN r13828]
2002-05-12 16:57:31 +00:00
Dave Abrahams
42ef876174 fix tabs and line-endings
[SVN r13774]
2002-05-09 14:24:57 +00:00
Dave Abrahams
a3364b7b11 Restored to health on non-NT systems
[SVN r13742]
2002-05-08 11:39:23 +00:00
Vladimir Prus
7e8437b177 * test/project_test1.py: Remove trailing whitespace, so that the test
work again, after 'print' fixes.


[SVN r13712]
2002-05-07 07:17:20 +00:00
Dave Abrahams
ca39cf30da Clear environment before testing
[SVN r13696]
2002-05-06 21:09:03 +00:00
Dave Abrahams
3605d8dc91 bug fix
[SVN r13695]
2002-05-06 20:59:53 +00:00
Dave Abrahams
2bf1779f95 Bug fixes
[SVN r13693]
2002-05-06 18:54:24 +00:00
Dave Abrahams
6a5ea2f5e3 initial commit
[SVN r13691]
2002-05-06 18:29:50 +00:00
Dave Abrahams
6da1c928af initial commit
[SVN r13690]
2002-05-06 18:22:28 +00:00
Dave Abrahams
b4e91a9649 new initialization code + tests
[SVN r13689]
2002-05-06 18:20:47 +00:00
Dave Abrahams
bd5f6d5455 new initialization code + tests
[SVN r13688]
2002-05-06 18:14:59 +00:00
Dave Abrahams
2b392b9c3f new initialization code + tests
[SVN r13687]
2002-05-06 17:51:21 +00:00
Vladimir Prus
13dc7be0d6 Forgotten file.
[SVN r13682]
2002-05-06 09:14:28 +00:00
Vladimir Prus
526a6b60ec Work on project/targets modules.
* new/targets.jam: Considerably changed.
    * new/project.jam: Projects now return project targets via 'target' rule.
        Requirements are inherited. Renames 'subinclude(s)' to 'subproject(s)'.
        (find-jamfile): Rewritten, which fixes some bugs.
    * new/project-root/jam: (print): Sort projects first by they id, which
        makes order more predictable.
    * test/project-test1.py: Also run test from the 'project-test1' dir.
    * test/project-test2.py: New test.


[SVN r13681]
2002-05-06 09:11:30 +00:00
Vladimir Prus
180d72a999 Fixes.
* test/BoostBuild.py (Test.run_build_system): Now really allow any exit
        status if the 'status' paremeter is 'None', per documentation.


[SVN r13680]
2002-05-06 08:48:08 +00:00
Vladimir Prus
05219612c8 Test system fixes.
* test/BoostBuild.py (Tester.__init__): New paremeter 'arguments'. Add
        BOOST_BUILD_PATH to the command line.
        (Tester.set_tree): Make files writable after copying.
        (Tester.copy): New method
        (Test.read): Open file in read mode.
    * test/test_system.html: Documented the above changes. Small cleanups.
    * new/test.jam: Remove bootstrap code.
    * new/readme.txt: Changed command line for running unit tests.


[SVN r13678]
2002-05-06 07:22:46 +00:00
Rene Rivera
4710ebfa4d Updated test to use generic print rules instead of dump rule. And therefore removed dump rule.
[SVN r13667]
2002-05-04 15:44:38 +00:00
Vladimir Prus
81c11a458f Some property functions.
* property.jam (refine-properties): New rule.
    * feature.jam: New feature attribute 'link-incompatible'.
    * test.jam: Test the property module.


[SVN r13640]
2002-05-03 14:15:18 +00:00
Dave Abrahams
ee065366a2 initial checkin
[SVN r13637]
2002-05-03 12:35:41 +00:00
Vladimir Prus
cfbf941144 Enhancements for project.lookup.
* new/project.jam (lookup): Require second argument, which specifies
        directory, relative to which paths in id should be interpreted.
    * test/project-test1.jam: Test for the above change.


[SVN r13636]
2002-05-03 10:10:14 +00:00
Vladimir Prus
99f579c5c9 Updated project-test1.py.
[SVN r13635]
2002-05-03 09:46:01 +00:00
Dave Abrahams
202045e0c2 Eliminated bogus ^M characters
[SVN r13626]
2002-05-02 19:01:29 +00:00
Dave Abrahams
0241b6de73 Workaround for crazy assertion in Jambase
[SVN r13625]
2002-05-02 19:01:07 +00:00
Dave Abrahams
64ae13d9a8 Show *full* build command on failure
[SVN r13624]
2002-05-02 19:00:38 +00:00
Dave Abrahams
c9a4bf48b3 Updated test to take advantage of --build-system=... option
[SVN r13620]
2002-05-02 16:44:13 +00:00
Dave Abrahams
30ef00ea04 Initial checkin, includes test instructions
[SVN r13619]
2002-05-02 16:41:36 +00:00
Dave Abrahams
6dc0ba2240 Added --debug --quiet to args used when running tests
[SVN r13618]
2002-05-02 16:39:04 +00:00
Vladimir Prus
2b7b4614eb Test system improvements.
* BoostBuild.py
        (Tester.expect_nothing): New method.
        (Tester.run_build_system): Added 'subdir' argument. Take a nap
        after running bjam, so that further touches to files are detected.
    * test_system.html
        Document the above changes. Document earlier changes to List{}.
        Fixed typos.


[SVN r13522]
2002-04-18 08:35:27 +00:00
Vladimir Prus
3ff33503ce Change of tests to accomodate new load behaviour and also fix previous
incorrect commit.


[SVN r13518]
2002-04-17 14:30:13 +00:00
Vladimir Prus
4e0da61c59 Added description of milestone 1 and some tests for it.
[SVN r13517]
2002-04-17 14:10:54 +00:00
Dave Abrahams
31eb4b7e09 Use new List niceties
[SVN r13497]
2002-04-15 18:05:58 +00:00
Dave Abrahams
2cce65e400 Added some niceties for List class
[SVN r13496]
2002-04-15 18:04:33 +00:00
Vladimir Prus
b03fa41185 Plugged the project test in the testing framework.
[SVN r13458]
2002-04-12 08:07:39 +00:00
Vladimir Prus
e451f261bc Added two example tests.
[SVN r13457]
2002-04-12 07:26:10 +00:00
Vladimir Prus
b70c44af0f Make the test system invoke jam binary located in the same working copy.
[SVN r13446]
2002-04-11 15:16:22 +00:00
Vladimir Prus
6484f68f2d Added a test for the 'project' module.
[SVN r13424]
2002-04-10 06:52:06 +00:00
Vladimir Prus
42a8bf643f Another attempt at replacing tabs with spaces.
[SVN r13409]
2002-04-09 07:48:35 +00:00
Vladimir Prus
21d6cd568e Added new test system sources. Updated docs.
[SVN r13401]
2002-04-08 15:13:36 +00:00
Dave Abrahams
8cfa7b44d9 perforce 2.4 merge (again)
[SVN r13391]
2002-04-07 00:22:45 +00:00
Vladimir Prus
789a1fdd62 Added test system docs.
[SVN r13359]
2002-04-03 11:10:10 +00:00
Dave Abrahams
1ac75b8de2 *** empty log message ***
[SVN r13288]
2002-03-27 22:45:04 +00:00
Dave Abrahams
8e383958ad New module scoping rules
[SVN r13287]
2002-03-27 22:23:30 +00:00
Vladimir Prus
d875b67380 Minor modifications.
* regex.jam (split): Change behavour with regard to separators at
	the beginning of string.
    * os.path.jam (has_parent, parent, join): Allow relative paths to
	point upward.
	(all_parents): new rule
	Added support for unix pathes.


[SVN r13279]
2002-03-26 08:56:05 +00:00
Dave Abrahams
423e65af29 Bug fix for Windows at least
[SVN r12983]
2002-02-28 15:22:17 +00:00
Dave Abrahams
e9b2c95e8a Build request expansion
[SVN r12778]
2002-02-10 00:49:29 +00:00
Dave Abrahams
6cb1bdc689 added tests for sequence, string, and numbers
[SVN r12301]
2002-01-13 17:50:10 +00:00
Dave Abrahams
2b1d5b3fbb fixes
[SVN r12146]
2001-12-24 19:27:39 +00:00
Dave Abrahams
fb61875273 no message
[SVN r12053]
2001-12-13 18:45:42 +00:00
Dave Abrahams
afc5de72ce ----------------------------------------------------------------------
committing in tools/build

Modified Files:
	build_system.htm
		Documented:
			local rules
			the RULENAMES rule
			the EXPORT rule
			the BACKTRACE rule
			new IMPORT semantics
			-d+12 Dependency Graph Output
			Crude Argument Binding
			Variable numbers of arguments

	jam_src/compile.c
		implemented RULENAMES, EXPORT, varargs support, new IMPORT semantics
		removed unused variables

	jam_src/make1.c
	jam_src/hdrmacro.c
		removed unused variables

	jam_src/jamgram.{c,h,y,yy}
		"module local x" does not change module local value of x
		if it is already set.

	jam_src/lists.[ch]
		added list_pop_front()

	new/assert.jam new/boost-build.jam
	new/build-system.jam new/errors.jam
	new/modules.jam new/os.path.jam
		beginnings of new build system

	test/check-arguments.jam
	test/check-jam-patches.jam
	test/echo_args.jam
		Added tests for recent core modifications; comments

Added Files:
	new/feature.jam new/property.jam
	new/readme.txt new/sequence.jam
	new/test.jam
		beginnings of new build system
----------------------------------------------------------------------


[SVN r11789]
2001-11-27 16:41:59 +00:00
Dave Abrahams
b326d85682 tests for local rules and backtraces
[SVN r11761]
2001-11-21 04:48:41 +00:00
Dave Abrahams
8966d74530 more IMPORT tests
[SVN r11689]
2001-11-14 19:57:52 +00:00
Vladimir Prus
fd6d532196 Build testing framework added.
[SVN r11638]
2001-11-09 09:07:53 +00:00
Dave Abrahams
0d6b779d27 ----------------------------------------------------------------------
Modified Files:
	allyourbase.jam build_system.htm new-split.jam
 Tag: jam_src
	jam_src/Jambase jam_src/compile.c jam_src/compile.h
	jam_src/headers.c jam_src/jam.c jam_src/jam.h
	jam_src/jambase.c jam_src/jamgram.c jam_src/jamgram.h
	jam_src/jamgram.y jam_src/jamgram.yy jam_src/jamgramtab.h
	jam_src/lists.c jam_src/lists.h jam_src/makedebugjam.bat
	jam_src/modules.c jam_src/modules.h jam_src/newstr.c
	jam_src/newstr.h jam_src/parse.c jam_src/parse.h
	jam_src/rules.c jam_src/rules.h jam_src/search.c
	jam_src/subst.c
 No tag
	test/check-jam-patches.jam
Added Files:
	boost-build.jam
----------------------------------------------------------------------

allyourbase.jam
  Fix the way new-split.jam is included, by using $(JAM_VERSION) to detect the
  presence of new language features.

build_system.htm
  Updated documentation to include core Jam extensions.

jam_src/Jambase
  Updated so that the built-in Jambase can be completely overridden based on
  JAMBASE, BOOST_ROOT, and BOOST_BUILD_PATH environment variables.

jam_src/compile.{c,h}
  Added IMPORT and CALLER_MODULE rules, header legend for profile dump. Moved
  regex_compile so it could be used by more functions.

jam_src/headers.c, jambase.c, jamgram.{c,y,yy}, search.c, subst.c
  Adjusted for the addition of FRAMEs, which was needed for CALLER_MODULE.

jam_src/jam.c
  added JAM_VERSION and started using FRAMEs.

jam_src/jam.h
  swapped the -d argument numbers that were used by profiling and parse debugging.

jam_src/lists.{c,h}
  Pulled stack frames out of LOL and put them where they belong, in the interpreter.

jam_src/modules.{c,h}
  Use strncat instead of strncpy to get predictable behavior.

jam_src/parse.{c,h}, rules.{c,h}
  Adjust for FRAMEs, and added a rulename field in the PARSE node to support
  profiling with modules.

test/check-jam-patches.jam
  Added tests for IMPORT and CALLER_MODULE


[SVN r11427]
2001-10-23 23:10:28 +00:00
Dave Abrahams
68de9b0878 ----------------------------------------------------------------------
Modified Files:
	Jambase allyourbase.jam
 Tag: jam_src
	jam_src/Jamfile jam_src/command.c jam_src/common.mk
	jam_src/compile.c jam_src/compile.h jam_src/hash.c
	jam_src/hash.h jam_src/jambase.c jam_src/jamgram.c
	jam_src/jamgram.h jam_src/jamgram.y jam_src/jamgram.yy
	jam_src/jamgramtab.h jam_src/lists.c jam_src/lists.h
	jam_src/make1.c jam_src/makedebugjam.bat jam_src/newstr.c
	jam_src/newstr.h jam_src/parse.c jam_src/parse.h
	jam_src/rules.c jam_src/rules.h jam_src/search.c
 No tag
	test/check-arguments.jam test/check-bindrule.jam
	test/check-jam-patches.jam test/recursive.jam
	test/test_nt_line_length.jam
Added Files:
 Tag: jam_src
	jam_src/modules.c jam_src/modules.h
Removed Files:
	Jamfile
----------------------------------------------------------------------

Jambase
   Removed obsolete check-arguments rule

allyourbase.jam
   Added different split rule definition for new Jam executable when
   NEW_BOOST_JAM is set.

Jamfile
    removed (this file was flotsam)

jam_src/Jamfile
    Added module.c; allowed yyacc to run under NT

jam_src/command.c
jam_src/make1.c
    added rule body/action reference-counting

jam_src/common.mk
    Added modules.c

jam_src/compile.c
    account for rule body/action reference-counting
    added "module { ... }, module local..." support
    cleaned up code for evaluate_rule

jam_src/compile.h
jam_src/parse.{c,h}
    Added module support

jam_src/hash.{c,h}
    Added a data parameter to hashenumerate() for flexibility

jam_src/jamgram.{yy,y,c,h}
jam_src/jamgramtab.h
jam_src/lists.{c,h}
    Added module support
    refactored grammar slightly

jam_src/makedebugjam.bat
    removed bogus invocation of yyacc
    cleaned up redundant variable settings

jam_src/modules.{c,h} - added

jam_src/rules.{c,h}
    added rule body/action reference-counting
    module support
    free list for SETTINGS

jam_src/search.c
    cleaned up a confusing name

test/check-arguments.jam
    added copyright notice
    made it stand on its own

test/check-bindrule.jam
test/recursive.jam
    use new argument-list feature

test/check-jam-patches.jam
    tests for:
      new SUBST behavior,
      "for local <var> in ...",
      while loops,
      negative indices/slices
      module rules and locals

test/test_nt_line_length.jam
    commenting and cleanup


[SVN r11411]
2001-10-20 13:01:16 +00:00
Dave Abrahams
e21603cd7f All of my pending changes
[SVN r11328]
2001-10-02 12:24:53 +00:00
Dave Abrahams
925d4c0418 beginnings of a test framework
[SVN r11083]
2001-09-10 02:53:41 +00:00
Dave Abrahams
9e00fb3e0b beginnings of a test framework
[SVN r11080]
2001-09-10 02:40:57 +00:00
Dave Abrahams
c21434b394 initial checkin
[SVN r10901]
2001-08-20 10:39:42 +00:00
Dave Abrahams
4968be2fd2 added assertion tests
[SVN r10900]
2001-08-20 10:39:19 +00:00
Dave Abrahams
fe147dfc5e Intermediate step in build system rewrite
Added Files:
 	Jambase ftjam-requests.txt test/Jamfile test/jam-fail.jam
 	test/unit-tests.jam


[SVN r10874]
2001-08-16 11:17:59 +00:00