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

950 Commits

Author SHA1 Message Date
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
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
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
Vladimir Prus
1a64e29a3d Try to reduce the number of include paths.
[SVN r17956]
2003-03-17 09:31:19 +00:00
Vladimir Prus
0bd6333bab Bugfix.
[SVN r17885]
2003-03-13 10:51:20 +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
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
Rene Rivera
31121c4a63 Initial code for modifier generators... Name modifier is implemented, and <version> facet of name modifier to produce correct soname/version-name behaviour.
[SVN r17655]
2003-02-26 06:29:12 +00:00
Dave Abrahams
04a9734952 bugfix
[SVN r17649]
2003-02-25 18:25:29 +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
05fcdfc33a Say goodbye to the composing-generator class.
* new/generators.jam
    (generator): New argument 'composing'
    (run): Use 'self.composing'.
    (convert-multiple-sources-to-consumable-types): Moved from
       composing-generator.
    (composing-generator): Remove

* new/builtin.jam
    (linking-generator, register-linker): Use the argument to generator's
       ctor. Allow to make generator non-composing.

* new/msvc.jam: Make msvc.link generator non-composing.


[SVN r17572]
2003-02-21 08:29:34 +00:00
Vladimir Prus
5da81f569e Stage improvements: exes are now relinked when staging.
* new/generators.jam
  (construct-with-caching): Don't try to cache transformation when source
     target has action (i.e is not plain file).

* new/stage.jam: Try converting stages targets to special staged type.
    Provide STAGED_EXE type.


[SVN r17545]
2003-02-20 10:15:38 +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
Dave Abrahams
c7f1064152 Kill allow-composing checks
[SVN r17523]
2003-02-19 09:31:43 +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
Dave Abrahams
9c965a9e24 Hack around NT symlink support
[SVN r17496]
2003-02-17 17:52:20 +00:00
Dave Abrahams
cc77be5098 response file bugfixes
[SVN r17490]
2003-02-17 17:42:49 +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
e9f7422b2b Cleanups.
* new/virtual-target.jam
     (abstract-file-target.extra-grist): Remove
     (null-action): New class.

* new/prebuilt.jam
     (prebuilt-file-generator): Don't use 'extra-grist', use
     'null-action' instread to distinguish different prebuilt targets.


[SVN r17482]
2003-02-17 09:51:06 +00:00
Vladimir Prus
81b7961c6c Sync with the rest of code.
[SVN r17481]
2003-02-17 09:43:04 +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
2969557432 Introduce the 'property-set' class, which is used instead of
plain old lists of properties in most cases where we need property sets.

The changes are too numerous and mostly automatic to comment each one.


[SVN r17305]
2003-02-10 14:40:38 +00:00
Vladimir Prus
f6bd24e5ba Check that generators are created with valid source and target types.
* new/builtin.jam
    (lib-generator): Don't pass any source types to base's ctor.

* new/generators.jam
    (generator): Check types.
    (composing-generators): Allow empty list of source types.

* new/type.jam
    (validate): New rule


[SVN r17168]
2003-02-03 10:14:32 +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
885264872c Add a comment as to why searched-lib instances with different properties
won't be confused.


[SVN r17103]
2003-01-31 08:17:05 +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
34dae0687e Improve handling of features. Now they are composed only of explicitly
specified properties.

* new/builtin.jam: (variant): Don't add defaults.

* new/feature.jam: (minimize): Eliminate defauls, when possible.


[SVN r17066]
2003-01-28 15:20:23 +00:00
Vladimir Prus
bff8682edf Overwrite existing symlinks.
[SVN r17064]
2003-01-28 15:13:03 +00:00
Vladimir Prus
f369885928 Added testing.launcher feature. For example, now unit tests can be
run under valgrind.


[SVN r17063]
2003-01-28 15:12:31 +00:00
Rene Rivera
2e59653742 Minor syntax nit.
[SVN r17048]
2003-01-26 18:15:38 +00:00
Vladimir Prus
2a5f7c0ced Implement toolset inheritance. Add Kylix toolset. Still need
to inherit "init" rule and test all this.

* new/borland.jam
    Use COMPILER_NAME and LINKER_NAME vars.

* new/generators.jam
    (generator.clone): New method.
    (register-composing): Use 'register'
    (generators-for-toolset): New rule.

* new/property.jam
    (change): New rule

* new/toolset.jam
    (add-flag): New rule
    (flags): Use the above.
    (register): New rule.
    (inherit): New rule
    (inherit-generators,inherit-flags,inherit-rules): New rules.


[SVN r16979]
2003-01-21 16:10:37 +00:00
Dave Abrahams
c59248f080 Handle BB1
[SVN r16967]
2003-01-21 05:03:08 +00:00
Vladimir Prus
07eb26a1b9 Add "hpp" as another suffix for "H" type.
[SVN r16961]
2003-01-20 13:02:55 +00:00
Vladimir Prus
fc65b94993 Preliminary QT support.
* new/qt.jam: New file

* new/target.jam:
    (basic-target.generate): Call 'feature.run-action'.


[SVN r16915]
2003-01-16 12:50: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
b1a6452ba4 Refine the virtual-targets/actions UML diagram and add some relevant
comments.


[SVN r16881]
2003-01-13 07:36:32 +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
Vladimir Prus
d9217ebe21 Make stage.py work on NT/MinGW.
[SVN r16835]
2003-01-09 16:08:51 +00:00
Vladimir Prus
e1fc0d24d6 Changes static lib suffix to "lib" on NT. Use "a" for gcc on all
platforms.


[SVN r16830]
2003-01-09 14:51:45 +00:00
Dave Abrahams
f034e3da98 fix DLL suffix for Cygwin
[SVN r16806]
2003-01-08 20:43:49 +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
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
2fd72ada56 Bugfix.
* new/builtin.jam: When hardcoding dll paths, check for
     <library> properties too, no only for sources of
     LIB type.


[SVN r16609]
2002-12-15 08:07:12 +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
9328322608 Added <linkflags>
[SVN r16582]
2002-12-10 09:03:19 +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