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

192 Commits

Author SHA1 Message Date
Jürgen Hunold
d48877e786 Add "unix" as default value for target-os and host-os.
Add detection of "linux" in default-host-os.


[SVN r34893]
2006-08-16 06:27:26 +00:00
Rene Rivera
28d52b1e89 Add host-os and target-os features.
[SVN r34889]
2006-08-15 18:46:13 +00:00
Rene Rivera
3af30fce69 Add missing "undef" feature. It's used in plenty of places but was never defined.
[SVN r33473]
2006-03-25 16:28:19 +00:00
Vladimir Prus
406f805b8d Make <warnings>on the default. Increase warning level options for
compiler for <warnings>all for gcc and intel.


[SVN r33306]
2006-03-10 11:29:31 +00:00
Vladimir Prus
d2f9daebca Resolve confict between builtin.lib-generator and $(toolset).prebuilt
in favour of the latter (toolset.prebuilt). This cuts down the number
of generator invocations for prebuilt target and is more clear.

Thanks to Mark Evans for pointing this out.


[SVN r32952]
2006-02-16 07:47:09 +00:00
Vladimir Prus
3bc444ff7e Make the 'warnings' and 'warnings-as-errors' features propagated.
[SVN r32895]
2006-02-13 15:57:10 +00:00
Vladimir Prus
311db52d22 Corrects a problem in the handling of <conditional>@rule in
the lib rule, e.g.:

lib foo : : <conditional>@sources ;

Prior to the patch, this was treating the library as a prebuilt
library because of the absence of any source arguments.  Thus
nothing would get built.

 * tools/builtin.jam
   (lib-generator.run): Added additional constraint when setting
   library type to SEARCHED_LIB.

Patch from Mark Evans.


[SVN r32880]
2006-02-13 07:39:17 +00:00
Vladimir Prus
d005b61309 New "c++abi" feature. Implement "cxxarm" value of that feature to Tru64,
and add proper -model compiler flags.


[SVN r32808]
2006-02-10 15:00:52 +00:00
Vladimir Prus
3764b81c4e Implement <build>no.
[SVN r32708]
2006-02-07 13:46:02 +00:00
Vladimir Prus
4c1960e774 Implement 'indirect conditional requirements', which are simular to V1's
convention that rules used in requiremenst are called to provide extra features.


[SVN r32694]
2006-02-07 10:26:17 +00:00
Vladimir Prus
ec0580a8c1 Serious bugfix: for <include> properties with absolute pathnames on
windows, we ignored dependencies to headers in those directories.

This change is a quick fix, a better fix will follow later.


[SVN r32375]
2006-01-23 08:18:48 +00:00
Vladimir Prus
c5ce38757e When building searched libraries, return 'xdll-path' properties for each
'search' property. This makes sure that linking againsts searched library
in custom directory works on gcc, and that proper run-time library search
path is set by 'unit-test' and 'run' rule.


[SVN r32342]
2006-01-17 09:55:16 +00:00
Vladimir Prus
17a84a5968 Add assembler support for msvc toolset.
Patch from Reece Dunn.


[SVN r31077]
2005-09-22 13:51:58 +00:00
Vladimir Prus
b49d4311d0 New features <warning> and <warnings-as-errors>.
Patch from Reece Dunn.


[SVN r31068]
2005-09-21 13:44:06 +00:00
Vladimir Prus
1c4204443e Allow unqualified rule names for calls to the 'make' main target rule.
[SVN r30974]
2005-09-14 09:54:14 +00:00
Rene Rivera
26b3f2fc3a Add features for specifying CPU code generation: address-model, architecture, and instruction-set. Transplanted from BBv1.
[SVN r30744]
2005-08-31 03:49:33 +00:00
Vladimir Prus
dd7dffecec Remove debug print
[SVN r30591]
2005-08-16 10:59:50 +00:00
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
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
f99f815c17 Remove ambiguity between builtin.lib-generator and builtin.prebuilt.
[SVN r29600]
2005-06-16 06:29:30 +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
Dave Abrahams
f6497c0741 make the use of msvc-specific features in Jamfiles portable
[SVN r29531]
2005-06-11 19:34:13 +00:00
Vladimir Prus
3e45b39bc5 Improve "linking" of libraries into static libraries.
When a library is present in sources of a static library, return it
to dependents via usage requirements, not by adding it to the list
of created targets.


[SVN r29362]
2005-06-02 07:19:11 +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
Toon Knapen
ec44facdd2 added capability to handle <fflags>
[SVN r29171]
2005-05-24 15:27:30 +00:00
Vladimir Prus
233ccf88ad Some comments
[SVN r27982]
2005-04-05 13:37:44 +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
3d5b4963c6 Allow
lib z jpeg : : <search>x ;

to work. Previously, this would complain that you specify requirements
together with multiple names.


[SVN r27059]
2005-02-03 15:32:56 +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
aa05391a55 Avoid calling class.is-a when faster methods will do.
[SVN r26578]
2004-12-23 08:45:00 +00:00
Vladimir Prus
8cc138879c Optimization. Try to prune generators which are guaranteed to fail.
[SVN r26556]
2004-12-20 15:43:14 +00:00
Vladimir Prus
f53c70c0df Use property-set in more places
[SVN r26487]
2004-12-10 15:49:30 +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
Dave Abrahams
42f4871b1b Factored html type out of boostbook.jam and in the process created a
modular system for registering new types.


[SVN r26484]
2004-12-10 02:39:57 +00:00
Vladimir Prus
988802a0ab Improved Boost.Python support. Actually, already committed python.jam
(accidentally), so this commit just removed declarations of PYTHON_EXTENSION
from builtin.jam.


[SVN r26452]
2004-12-06 14:16:22 +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
6b0bc477f9 The 'stdlib' feature is no longer link-incompatible, as I generally
don't think link-compatibility check does any good.


[SVN r26270]
2004-11-22 07:52:11 +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
1c17c6acfd Add comment.
[SVN r26156]
2004-11-09 08:02:43 +00:00
Vladimir Prus
543fb2d180 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
faecbd8532 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
d6e1f35760 Make <hardcode-dll-paths>true the default.
[SVN r25735]
2004-10-15 13:11:15 +00:00
Vladimir Prus
08bac7ef79 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
d5703174df Ignore <library>, except for "exe" and "lib" targets.
[SVN r25661]
2004-10-11 12:13:48 +00:00
Vladimir Prus
1e560a18e0 Add <toolset>msvc as optional property for msvc.compile* generators,
otherwise, only RC->OBJ is tried when OBJ target is needed.


[SVN r23279]
2004-06-30 06:15:49 +00:00
Vladimir Prus
62c8a3d5d4 Allow a simple [ lib a b c ] syntax for declaring searched libraries.
[SVN r23254]
2004-06-29 10:23:27 +00:00
Vladimir Prus
d18f9e9a15 Experimental fix to make ordering of searched libraries work.
The order is preserved by making properties of the form
<find-static-library>lib1&&lib2&&lib3 and then adding "lib1", "lib2",
"lib3" in the right order.


[SVN r23251]
2004-06-29 08:13:29 +00:00
Vladimir Prus
1a2cf5ead1 Fix a couple of project.attribute calls. The method should not be called now,
and does not work, either. Thanks to Michael Stevens for the bug report.


[SVN r23023]
2004-06-04 12:57:48 +00:00
Vladimir Prus
e4163c3201 Properly hardcode dll paths, even if library was not produced by 'lib' target,
but was specified as file.


[SVN r22963]
2004-05-28 08:46:49 +00:00