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

77 Commits

Author SHA1 Message Date
Vladimir Prus
a994e940df Make tags for intel compiler match V1.
[SVN r35216]
2006-09-19 19:02:40 +00:00
Vladimir Prus
6900b5680c * tools/stage.jam (rename): Generate 'vc6' and 'vc7' suffixes
instead of 'vc60' and 'vc70', to match V1 behaviour.


[SVN r35147]
2006-09-17 18:35:43 +00:00
Vladimir Prus
1970b3942d Allow <name> work for 'install', when there's a single source
[SVN r33064]
2006-02-21 13:08:53 +00:00
Vladimir Prus
7518d106e2 Fixes for 'install' rule.
- Copy the <linkflags> feature when relinking targets.
- Don't install typeless targets if explicit list of
  allowed types is specified.
- Fix the 'rename' rule to handle <runtime-debugging> feature.


[SVN r33057]
2006-02-21 09:08:29 +00:00
Vladimir Prus
6d4c855fff When installing .cpp files, don't scan them for #includes. It's pointless,
we don't compile.

Thanks to Franz Schnyder for the bug report.


[SVN r31756]
2005-11-23 16:10:41 +00:00
Vladimir Prus
6c016ac1a1 Don't ever try to relink non-derived files.
[SVN r30872]
2005-09-08 09:21:58 +00:00
Vladimir Prus
eeb5324f5e On install, relink shared libraries if the dll-path property has changed.
[SVN r30538]
2005-08-12 12:53:58 +00:00
Vladimir Prus
82ca771e11 Add missing call to 'virtual-target.register' when symlinking targets.
Otherwise, if we build 'install' target twice, we'll get two different
symlink targets.


[SVN r30400]
2005-08-03 11:43:04 +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
4e81e3fc1c Fix an error when a 'install' target has another 'install' target in sources.
We managed to create property set with two 'location' properties, and then
crashed when deciding where to put the target.


[SVN r29603]
2005-06-16 07:47:22 +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
4d6bfe4eef Rename link-runtime to runtime-link to stay compatible with V1.
[SVN r29586]
2005-06-15 12:24:06 +00:00
Vladimir Prus
5fab631f5d Further generators simplications.
1. If when generating something, we find more that one suitable generators,
   run them and more then one return something, immediately report ambiguity.
   Don't care if the produced targets are the same. This is better that
   running several generators all the time, performance wise.

2. Remove the notion of 'intermediate' virtual-targets. IIRC, they were used
   to prevent staging of RSP files, and we don't stage them anyway now.


[SVN r29491]
2005-06-09 08:12:21 +00:00
Vladimir Prus
7ef55e8276 Fix error when installing with <install-source-root> and source file names
are absolute.


[SVN r29180]
2005-05-25 06:10:23 +00:00
Vladimir Prus
67902a923a Don't relink exe on CYGWIN.
I believe no dynamic paths are hardcoded in shared libraries, so relinking
is not needed.


[SVN r28511]
2005-04-28 12:31:52 +00:00
Rene Rivera
f191d632c3 Make the version/variant tag conform to BBv1 behaviour.
[SVN r28439]
2005-04-23 16:36:59 +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
Vladimir Prus
9d1b318b43 Implement symlinks support for installing shared libraries.
Also fix top-level Boost Jamfile. Seems like V2 can now install Boost.


[SVN r26835]
2005-01-24 14:11:27 +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
3e4ae30d8d Fix handling of <dll-path> in 'stage' rule, which was broken in
the recent commit.


[SVN r26832]
2005-01-24 07:59:11 +00:00
Vladimir Prus
b34abc6bb0 Further 'stage' improvements.
- Fix the 'stage.rename' rule (not versioning yet).
- Don't even try to install searched libs, ever.
- Make top-level Boost Jamfile work.


[SVN r26783]
2005-01-21 16:05:22 +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
f4b06edc27 Refactoring of virtual targets.
- Drop separate 'suffix' field in file targets. Store suffix as part of
  the name' field. This avoids the need to copy the suffix field and the
  name everywhere.
- Do not pass generated targets to constructor of 'action'. Instead,
  pass the acton to constructor of target.


[SVN r26778]
2005-01-21 08:42:51 +00:00
Vladimir Prus
21b0be6bfc Kill the link-compatibility check completely. It just causes too much
problems, instead of helping.


[SVN r26576]
2004-12-22 09:42:44 +00:00
Vladimir Prus
0656ab2818 Supress 'link-compatibility' warning for:
stage a1 : a1.txt : <location>dist ;
  stage a2 : a2.txt : <location>dist <dependency>a1 ;

The problem is that 'a1' is requested with <os>LINUX but the returned target
have <location>dist as the only property, which causes this bogus warning.


[SVN r26421]
2004-12-03 14:30: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
7d8f3051b8 Add variant/compiler part to the names of installed targets.
[SVN r26419]
2004-12-03 12:35:53 +00:00
Vladimir Prus
d2b38551f3 Create symbolic links the <so-version> is specified.
* tools/stage.jam
  (symlink-lib): New rule.
  (stage-shared-linking-generator.run): Use the above to
  create symlinks.


[SVN r26415]
2004-12-03 11:23:13 +00:00
Vladimir Prus
6afa38681d Don't hardcode '.so' suffix.
* tools/stage.jam
  (stage-shared-linking-generator.run): Don't hardcode 'so' suffix.
* build/virtual-target.jam
  (abstract-file-target.suffix): Compute and return the real suffix
  that will be used. Previously, it would return something only if the
  suffix was explicitly set.


[SVN r26414]
2004-12-03 11:02:56 +00:00
Vladimir Prus
2600f1c728 Cleanup stage rule.
* tools/stage.jam
  (stage-target-class.targets-to-stage): New rule, partly extracted
  from construct, and former 'select-included'.
  (stage-target-class.construct): Cleanup.
* build/virtual-target.jam
  (file-target.path): If <location> feature is present, use the
   value as the path.


[SVN r26411]
2004-12-03 10:12:31 +00:00
Vladimir Prus
db137f4034 The 'stage' rule now understands the <tag> feauture.
[SVN r26409]
2004-12-03 08:42:05 +00:00
Vladimir Prus
230ec44483 Refactor/improve <tag> support.
* build/targets.jam (generate-realy):
  After applying tag, we used to 'temporary' change self.name,
  which is horrible. How pass the name to 'construct'.

  (construct): New parameter 'name'.

  (tag-name): New rule, extracted from basic-target. This needs to be
  separate rule so that we can call it from 'stage'. Check for a value of
  from '@something' and interpret 'something' as a rule which returns the
  new name.


[SVN r26408]
2004-12-03 08:28:37 +00:00
Vladimir Prus
9e6512273b Added <so-version> feature, and make stage add the version and relink
shared libraries when needed.

* tools/stage.jam
  (copy-file, relink-file): New rules, extracted from other classes.
  (STAGED_SHARED_LIB): New type.
  (stage-shared-lib-generator): New class


[SVN r26399]
2004-12-02 11:32:07 +00:00
Vladimir Prus
28867fecac 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
22c6f4e4c0 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
d6e1f35760 Make <hardcode-dll-paths>true the default.
[SVN r25735]
2004-10-15 13:11:15 +00:00
Vladimir Prus
da19826066 Add comment
[SVN r25699]
2004-10-13 06:58:35 +00:00
Vladimir Prus
d4e260045f Refactorings.
The targets (both abstract and virtual) used to refer to project there belong
to using the name of Jamfile module corresponding to the project. That was a
bit messy, and whatevet it was necessary to get any project attribute, one
had to call 'project.attribute', which was messy too.

Now, projects are identified by instance of project-target class, and
attributes are obtained via 'get' method in that class.


[SVN r23001]
2004-06-02 14:26:15 +00:00
Vladimir Prus
765486f506 Support inline targets in sources of 'stage'.
[SVN r22962]
2004-05-28 08:46:00 +00:00
Vladimir Prus
d94c8ae1ff Bugfix: when staging, change locations on all targets produced by an action,
not only on the one we're staging.

On Windows, the action that produces EXE also produces RSP file. If location
of RSP file is not changed when staging, both staged EXE and original EXE will
try to use the same RSP file and that will cause 'duplicate virtual target'
error.


[SVN r22931]
2004-05-26 10:54:55 +00:00
Vladimir Prus
3e37e47c8d Remove check for 'unused sources'. The check causes bogus warnings in at least
a couple of cases.

1. On Windows, DLLs are never directly linked to, so they are considered
   unused and cause a warning. There used to be special code in
   exe-target-class and lib-target-class to supress that warning, but this
   failed for unit-test, for example, since main target class for unit test
   is not related with exe-target-class. And making yet another main target
   class looks ugly.
2. A target specified via project-wide <source> or <library> property is
   added to sources for all targets, and cause a warning when it's not used.
   However, there are valid cases to ignore such sources. For example

       obj a : a.cpp : <optimization>off ;

   need to comsume any libraries.

It was not clear how to fix both problems. Further, the only case when I found
the warning to be usefull is when declaring new toolsets, and it that case it
does not add much information compared to --debug-generators output. So, let's
just kill the feature for now.


[SVN r22927]
2004-05-26 09:57:03 +00:00
Vladimir Prus
533abcaadd Bugfix: the main target rules did not work unless called from Jamfile.
The used 'CALLER_MODULE' to determine the project where the main target
is to be declared, which did not work if the rule is called from another
module.

Thanks to Zbynek Winkler for the bug report.

* build/project.jam (current): New rule
* test/wrapper.py: New test
* other files: Use 'project.current'.


[SVN r22569]
2004-03-31 06:53:56 +00:00
Vladimir Prus
2742a1f4e7 Instead of don't returning targets which are not of requested type
from generators.construct, return them with 'intermediate' flag.


[SVN r21565]
2004-01-09 11:55:32 +00:00
Vladimir Prus
ede64adbce Allow <include-type> to select staged targets, even
with <traverse-dependencies>off.

Patch from Pedro Ferreira.


[SVN r21322]
2003-12-18 14:54:04 +00:00
Vladimir Prus
3057d9c718 Refactorings.
* tools/stage.jam
  (update-location,construct-special-target,construct-regular-target): New
  methods
  (construct): Rewrite in terms of the above methods.

Patch from Pedro Ferreira.


[SVN r21318]
2003-12-18 06:55:53 +00:00
Vladimir Prus
cf106daa18 Don't check link compatibility for alias and stage targets, since it makes
no sense for them.


[SVN r21111]
2003-12-03 07:05:47 +00:00
Vladimir Prus
e95f44bffa Fix doc formatting to comple with ReST.
[SVN r21027]
2003-12-01 06:10:11 +00:00
Vladimir Prus
4e9ebe6d49 Workaround hang in --help handling.
[SVN r20980]
2003-11-28 06:42:09 +00:00
Vladimir Prus
f484ffbbaf * build/virtual-target.jam
(abstract-file-target.creating-subvariant): Renamed from
  'dg', which was meaningless.


[SVN r20657]
2003-11-04 17:26:58 +00:00