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

540 Commits

Author SHA1 Message Date
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
9969209255 Cleanups.
* new/targets.jam
  (project-target.reference-properties): Call 'run-action' on properties,
  to match the process in 'basic-target'.

  (basic-target.refined-properties): Remove the comment about difference
  from the above rule.


[SVN r18249]
2003-04-14 10:06:20 +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
Dave Abrahams
4fae733892 optimized insertion-sort
[SVN r18225]
2003-04-10 11:33:13 +00:00
Vladimir Prus
142365f287 Improve library handling.
* new/toolset.jam
  (flags): Add 'unchecked' parameter, too allow declaring flags for other
  modules.

* new/builtin.jam: Don't declare LIBRARY_PATH_OPTION.
* new/borland.jam: Use flags to declare LIBRARY_PATH_OPTION and LIBRARY_OPTION.
* new/msvc.jam: Use flags to declare LIBRARY_PATH_OPTION and LIBRARY_OPTION.


[SVN r18222]
2003-04-09 14:14:57 +00:00
Vladimir Prus
5eaac86c0c Make composing generators fail immediately if given no name. This,
essentially, makes composing generators fail if they are run deeper
during transformation search. Looks like a new incarnation of
'allow-composing'.

The motivation is to fight with cases where trasformation
like CPP -> OBJ -> STATIC_LIB -> RSP -> EXE was tried. The composing
OBJ -> STATIC_LIB generator was totally unprepared to be invoked at such
depth, and errored out. The new behaviour cause this transformation to be
rejected, but the search continues.

* new/generators.jam
  (generator.run-really): New rule, with most of previous 'run' content.
  (generator.run): Check arguments only and call 'run-really'. Immediately
  return if the generator is composing and no name is specified.


[SVN r18216]
2003-04-09 12:12:41 +00:00
Vladimir Prus
de1c0dca7b Minor bugfix: properties were not correctly reported in --debug-generators
output.


[SVN r18215]
2003-04-09 12:06:14 +00:00
Vladimir Prus
c0c1636dfb Cleanups.
* new/builtin.jam
  (searched-lib-generator.run): Tweak the logic and change comments.


[SVN r18214]
2003-04-09 12:03:19 +00:00
Vladimir Prus
9cb554a731 Declare 'user-interface' feature in 'builtin.jam', not 'msvc.jam', because
it is not msvc-specific -- e.g. borland needs it as well.


[SVN r18213]
2003-04-09 12:01:02 +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
192fd6c976 Cleanups.
* new/virtual-target.jam
  (virtual-target.path): New abstract method. Added so that derived classes
  always define both 'actualize-location' and 'path'.

* new/builtin.jam
  (searched-lib-target.path): Use empty body.


[SVN r18196]
2003-04-07 09:08:35 +00:00
Vladimir Prus
3ed8693101 Win32 fixes. Big thanks to Bjorn Karlsson.
* jam_src/pwc.c: Concert short pathnames to long ones.


[SVN r18181]
2003-04-04 07:55:59 +00:00
Douglas Gregor
8153b7b4d9 print.jam: Provide escaped strings for Windows and Unix
regex.jam: Provide "escape" routine that escapes a string with certain escape
  characters

boostbook.jam: Use print.escape to properly escape argument to "echo" on
  Windows and Unix (BoostBook now works on non-Cygwin Windows)


[SVN r18148]
2003-04-01 14:34:31 +00:00
Douglas Gregor
f17b4f4e95 Allow passing in the caller to the make rule, so that other modules
(that aren't user projects) can use it to add targets to their callers


[SVN r18137]
2003-03-30 15:24:57 +00:00
Douglas Gregor
16010b66b0 ALWAYS $(output-target) doesn't belong in the text rule, it belongs in
the caller


[SVN r18135]
2003-03-30 15:17:52 +00:00
Douglas Gregor
62ee4de76b - Changes the \" -> '' transformation into \" -> \\\", i.e., instead of
transforming the double-quote character into two single quotes, we transform
it into a correctly-escaped double quote.

- Add an "overwrite" option to print.text that overwrites the file instead of
appending to it.


[SVN r18124]
2003-03-28 15:12:29 +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
a85fd44bb4 Bugfix: quote filenames in actions.
[SVN r18102]
2003-03-27 15:40:07 +00:00
Vladimir Prus
783a7fe308 Fix path handling on Cygwin. Thanks to Andre Hentz for the patch.
[SVN r18091]
2003-03-26 12:16:01 +00:00
Vladimir Prus
d5e39ef214 Comments/renames.
[SVN r18089]
2003-03-26 09:09:42 +00:00
Rene Rivera
e6472a08c8 Changes to bootstrap and build with the MinGW environment.
* Define the OS as NT as this seems more reasonable than having MINGW as the OS (after all MinGW is the toolset not the OS).
* Add detection of one common install location for MinGW.


[SVN r18073]
2003-03-24 04:34:27 +00:00
Rene Rivera
f063766d8e Minor change to hopefully cover more NT shells.
[SVN r18068]
2003-03-24 00:56:58 +00:00
Dave Abrahams
ebfc61b92f minor UML tweaks
[SVN r18034]
2003-03-20 16:01:53 +00:00
Dave Abrahams
c08dae0d99 Add missing path nativizing.
[SVN r18029]
2003-03-20 13:48:31 +00:00
Dave Abrahams
540b62ec8f Fix usage requirements check to account for conditional properties.
I'm not completely sure this is precisely the right fix:

    a. The error message used to reference a non-existent variable.
    What was it supposed to be?

    b. Should property.remove et. al. be able to cope with conditional
    properties?


[SVN r18023]
2003-03-20 02:41:49 +00:00
Vladimir Prus
b64b4ab884 Prevent 'hardcode-dll-paths' from setting rpath on static libraries.
Thanks to Ali Azarbayejani for the bug report.


[SVN r17999]
2003-03-19 09:00:25 +00:00
Douglas Gregor
0c2d9952f1 Allow '=' in free features specified on the command line
[SVN r17961]
2003-03-17 15:55:28 +00:00
Vladimir Prus
1a64e29a3d Try to reduce the number of include paths.
[SVN r17956]
2003-03-17 09:31:19 +00:00
Vladimir Prus
5f5d281dc1 Better direct request handling.
* new/build-request.jam
  (directly-requested-properties-adjuster): Redo.

* new/targets.jam
  (main-target.generate-really): Adjust properties here.

* new/virtual-target.jam
  (register-actual-name): New rule.
  (virtual-target.actualize-no-scanner): Call the above, to detected bugs,
  where two virtual target correspond to one Jam target name.


[SVN r17955]
2003-03-17 09:27:43 +00:00
Vladimir Prus
4546260675 Refactorings.
* new/build-request.jam
  (directly-requested-properties-adjuster): New class.

* new/targets.jam
  (abstract-target.direct-build-request): Gone.
  (abstract-target.set-property-adjuster): New method.
  (main-target.generate): Use property-adjuster.


[SVN r17954]
2003-03-17 08:36:34 +00:00
Vladimir Prus
05ca30e383 Bufgix. Thanks to Jürgen Hunold for the report.
* new/toolset.jam
  (set-target-variable): Call 'path.native' when setting path features.


[SVN r17953]
2003-03-17 07:58:06 +00:00
Vladimir Prus
110f86cea0 Path handling fixes.
[SVN r17952]
2003-03-17 07:44:33 +00:00
Vladimir Prus
498c59acf9 Refactoring.
[SVN r17915]
2003-03-14 15:26:18 +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
Vladimir Prus
0bd6333bab Bugfix.
[SVN r17885]
2003-03-13 10:51:20 +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
4cebb350b2 Bugfix.
* new/project.jam
  (project-attributes.set): Pass default build through 'property.make'.


[SVN r17845]
2003-03-12 13:55:11 +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
053545f1bd Bugfix.
* new/feature.jam
    (expand-subfeatures): Don't try expanding subfeatures in subfeatures.


[SVN r17815]
2003-03-11 15:26:10 +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
Dave Abrahams
30a94e32ce bugfix
[SVN r17763]
2003-03-07 15:22:54 +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
49ad964458 Refactorings.
* new/targets.jam
     (main-target.apply-default-build): Call
     'build-request.expand-no-defaults', not 'expand'. The motivation
     is to have defaults added in one place: 'property-set.add-defaults'.
     Also handle the case where default-build is empty.

     (main-target.generate): Apply defaults here. The motivation is
     that if we're using default build, default features should be
     applied here as well, or else we'll get ambiguous alternatives.

     (basic-target.generate): Do not add defaults.


[SVN r17755]
2003-03-07 09:44:20 +00:00
Vladimir Prus
07f6a34e11 Refactoring.
* new/targets.jam
    (main-target.apply-default-build): New rule, extracted from 'generate'.
    (main-target.generate): Use the above.


[SVN r17754]
2003-03-07 09:09:44 +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
Vladimir Prus
8e801f7dcd Typo.
[SVN r17752]
2003-03-07 06:47:03 +00:00
Dave Abrahams
e48fb0e74c set-target-variables on multiple targets
[SVN r17744]
2003-03-06 17:25:10 +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