2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-16 13:22:11 +00:00
Commit Graph

511 Commits

Author SHA1 Message Date
Vladimir Prus
db0d944e94 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
935b2236db 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
977d086664 Unbreak " lib a ; " syntax.
Thanks to Craig Rodrigues for the bug report.


[SVN r30309]
2005-07-29 12:00:40 +00:00
Vladimir Prus
8f9edf178d Ignore some files in CVS operations
[SVN r30307]
2005-07-29 08:42:42 +00:00
Dave Abrahams
9743353f89 Fix copyright and documentation
[SVN r30219]
2005-07-22 18:46:20 +00:00
Vladimir Prus
1f5750af86 Unbreak <install-source-root> when building from subdirectories.
[SVN r29803]
2005-06-27 12:19:50 +00:00
Vladimir Prus
68d3b8f280 Add the 'notfile' target.
[SVN r29606]
2005-06-16 08:24:01 +00:00
Vladimir Prus
3a7327a605 Automatically prepend "lib" prefix to LIB targets on Unix.
[SVN r29602]
2005-06-16 07:24:16 +00:00
Vladimir Prus
d7bdc38c6c 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
c921b04cfb Correct license text
[SVN r29587]
2005-06-15 13:19:07 +00:00
Vladimir Prus
4d6bfe4eef Rename link-runtime to runtime-link to stay compatible with V1.
[SVN r29586]
2005-06-15 12:24:06 +00:00
Vladimir Prus
900240c47d 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
7b2749353b 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
08aba8f757 Add test for multiple source-location, from Craig Rodrigues.
[SVN r29335]
2005-06-01 05:43:25 +00:00
Vladimir Prus
a9144a5ec3 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
c6b899c0ea 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
604408b82d Support FreeBSD for Boost.Build self-tests.
Patch from Craig Rodrigues.


[SVN r28623]
2005-05-03 06:15:08 +00:00
Vladimir Prus
c6778e1fe7 Test for absolute glob patterns.
[SVN r28380]
2005-04-21 10:44:42 +00:00
Vladimir Prus
9e753a3f33 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
11d31b4b87 Escape backslashes, otherwise the test won't work on Windows.
[SVN r28375]
2005-04-21 08:50:39 +00:00
Vladimir Prus
d9fb658dbb Fix --build-dir for invocation from subdirs.
[SVN r28237]
2005-04-14 10:53:54 +00:00
Vladimir Prus
1b04aca862 Implemented the --build-dir option.
[SVN r28236]
2005-04-14 10:34:11 +00:00
Vladimir Prus
e0d3afbd97 Test multi-token project constants.
[SVN r28179]
2005-04-12 14:06:45 +00:00
Vladimir Prus
2e96a5594b Generate a fully working test, not just code snipped
[SVN r28178]
2005-04-12 14:05:36 +00:00
Vladimir Prus
62273e9a85 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
a3a1019a0c Allow 'using' in Jamfiles to pick up modules in Jamfile's directory.
[SVN r27979]
2005-04-05 12:53:39 +00:00
Vladimir Prus
b43fe0e57a 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
109f933024 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
62dbb501a1 Additional test.
[SVN r27593]
2005-03-10 09:51:34 +00:00
Vladimir Prus
95f49491b0 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
9bf995a857 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
dd959a7227 Apply typo fixes from Julio M. Merino Vidal
[SVN r27513]
2005-02-27 17:28:24 +00:00
Vladimir Prus
f1b5944777 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
0c3a86e511 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
9aed3db356 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
5539d6e2b9 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
c40b9809ee Some renames:
- 'stage' -> 'install'
- 'traverse-dependencies' -> 'install-dependencies'
- 'include-type' -> 'install-type'.


[SVN r26833]
2005-01-24 10:08:07 +00:00
Vladimir Prus
84334a4cd0 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
d67b94f85a 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
ab1a8958fd Added Boostbook test
[SVN r26601]
2004-12-29 11:47:59 +00:00
Vladimir Prus
2365aa5e3e Fix a recent regression: <location>. did not work.
[SVN r26598]
2004-12-29 11:04:09 +00:00
Vladimir Prus
552d98e3f8 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
5e5c84734d 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
ee27fd4ee2 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
6155a88116 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
990560fbab 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
6f86fbc1f4 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
fc9f31c127 * 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
70c6ca08dd Allow Jamroot as alternative (and preferred) spelling of project-root.jam.
[SVN r26351]
2004-11-29 15:44:58 +00:00
Vladimir Prus
094b2aa656 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