2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-01 20:32:17 +00:00
Commit Graph

496 Commits

Author SHA1 Message Date
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