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

38 Commits

Author SHA1 Message Date
Rene Rivera
5b5b339cf1 Add copyrights+license (with help of a shell script).
[SVN r35861]
2006-11-06 01:44:13 +00:00
Vladimir Prus
70758d42ea Unbreak generators_test:
- rename UI type to TUI to avoid conflicts with Qt
- adjust to print.text changes


[SVN r31645]
2005-11-14 14:36:45 +00:00
Vladimir Prus
5a44f04da8 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
97e91c8e3f 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
Vladimir Prus
4c7ff2913c 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
40a504ed4f 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
b86474fe8e Change the way generators selection works. Now, instead of computing
'rank' for each viable generator, we use explicit information of the
form 'generator A is better than generator B', which is provided by
the user. The obvious goal is to fix 'custom_generator' failure on
msvc, but generally, I'm fixing BB76 -- which says that current generators
selection is very broken.


[SVN r25361]
2004-09-23 07:44:59 +00:00
Vladimir Prus
28b4b7adb4 Don't generate empty source file -- SunCC warns in that case.
[SVN r25000]
2004-09-10 11:46:22 +00:00
Vladimir Prus
95f617c6a2 Work around generators_test failure on msvc
[SVN r24885]
2004-09-03 08:03:26 +00:00
John Maddock
c06ce55478 removed the last boost.org copyright
[SVN r24615]
2004-08-20 11:32:03 +00:00
John Maddock
348fb7ab39 Converted files to the BSL.
[SVN r24614]
2004-08-20 11:10:24 +00:00
John Maddock
d066958ed0 Updated copyrights to reflect true author (see discussion on Jamboost list).
[SVN r24500]
2004-08-16 11:23:58 +00:00
Vladimir Prus
a8758e0f2c Bugfix: allow a generator to create two targets of the same type.
* new/generators.jam
  (generator.__init__): Use parallel lists to store prefixes and postfixes
  for a name, not mapping with type as a key, since type is not unique.
  (generator.generated-targets): Adjust.


[SVN r19990]
2003-09-10 07:39:45 +00:00
Vladimir Prus
be258d889a Remove support for old-style target ids.
[SVN r19913]
2003-09-04 11:06:14 +00:00
Vladimir Prus
286825f9d5 Rename 'xclass' to 'class'.
[SVN r19458]
2003-08-05 05:25:33 +00:00
Vladimir Prus
a9cb673c30 Rename 'xnew' to just 'new'.
[SVN r19434]
2003-08-04 11:12:30 +00:00
Vladimir Prus
7fceeb4bc7 Drop all style classes support.
[SVN r19433]
2003-08-04 10:53:34 +00:00
Vladimir Prus
c1e3f990f1 Move generators to new-style classes.
[SVN r19427]
2003-08-04 09:19:54 +00:00
Vladimir Prus
0d64186003 Test tweak: don't import toolsets --- user-config/test-config should do that.
[SVN r18218]
2003-04-09 12:14:28 +00:00
Dave Abrahams
09d88e1f8e Fixes for testing
[SVN r17642]
2003-02-25 14:37:10 +00:00
Vladimir Prus
e017ca640f Towards really cross-toolset testing system.
- Allow to specify toolset name on the command line
- Expand $toolset in paths
- Pass toolset name to bjam invocations.


[SVN r17555]
2003-02-20 13:08:51 +00:00
Björn Karlsson
468b7d29e1 Added copyright statement
[SVN r17224]
2003-02-05 09:33:54 +00:00
Vladimir Prus
c09d236e1b Enable warnings for gcc.
* new/gcc.jam: The change itself.

* test/generators-test/Jamfile: Supress a warning :-)


[SVN r17058]
2003-01-28 08:46:22 +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
Dave Abrahams
685e43c097 Added missing newline at EOF which was causing warnings and thus test
failures with gcc-3.2


[SVN r16755]
2003-01-05 17:42:37 +00:00
Vladimir Prus
d9b8b467ed Forgotten change.
[SVN r16248]
2002-11-15 07:15:10 +00:00
Vladimir Prus
b6d69f0b88 Revive all the tests.
* boost_build_v2.html: Document new option.

* new/generators.jam (find-viable-generators): Revert part of Dave's
   commit, essentially disabling finding base type generators.
   This part breaks a test, and need to be thinked about.

* new/errors.jam: Handle "--no-error-backtrace" option.

* test/project_test4.py: Adjust for new error syntax.


[SVN r16233]
2002-11-14 10:17:50 +00:00
Vladimir Prus
2e9065c102 Cleanups.
[SVN r15651]
2002-10-02 16:13:54 +00:00
Vladimir Prus
9029c81fce Test for poor main's per-source requirements.
* new/builtin.jam: Make 'obj' main type.
    * new/generators-test/*: Try compiling the same CPP file with
        different defines and linking in the same exe.


[SVN r15649]
2002-10-02 12:38:13 +00:00
Vladimir Prus
c06b10384a Infrastructure for dependency scanning.
* virtual-target.jam (virtual-target.actualize): Accept
        'scanner' parameter and create different actual targets
        for different values of that parameter.
     (virtual-target.includes): Remove.
     (binding): New rule
     (remember-binding): New rule.

    * type.jam (set-scanner): New rule. (get-scanner): New rule.

    * scanner.jam: New file.

    * class.jam (__init__): Define __name__ in class scopes.

    * builtin.jam (c-scanner): New scanner class, associated with CPP
        files.


[SVN r15644]
2002-10-02 10:04:03 +00:00
Vladimir Prus
609dd1f6ab Introduced SHARED-LIB and STATIC-LIB target types. Also introduced LIB target
type and a generator, which relays either to SHARED-LIB or STATIC-LIB,
depending of the value of "shared" feature.


[SVN r15529]
2002-09-27 07:35:03 +00:00
Vladimir Prus
7caaaac870 Work in progress.
- Got rid of vectors of vectors in generators code. That was not only slow, it
  was also troublesome.
- Started work on transformation caching. Works but needs review/cleanup.


[SVN r15465]
2002-09-20 12:50:44 +00:00
Vladimir Prus
e7eab4c752 Prevent creating two equivivalent virtual targets. This, in particular,
prevents complining the same source twice with the same properties.
Also allow generators to change source names using patterns.

    * new/generators.jam (generator): Accept name patterns together with
        target types.
        (generator.generated-targets): Use name patterns. Transform generated
        targets with 'virtual-targets.register', to eliminate duplicate
        virtual targets.


[SVN r15302]
2002-09-13 12:19:42 +00:00
Vladimir Prus
ba4cc2976f Small fix.
[SVN r15268]
2002-09-11 15:54:39 +00:00
Dave Abrahams
12807f87fc More cygwin/NT compatibility fixes
[SVN r15267]
2002-09-11 15:40:32 +00:00
Dave Abrahams
4711f64f4e Workaround for cywgin/NT build
[SVN r15263]
2002-09-11 14:37:25 +00:00
Vladimir Prus
021c2e550d Some cleanups. At the same time, allowed several suffixes to target types
(e.g. "cpp" and "cxx").


[SVN r15262]
2002-09-11 14:18:52 +00:00
Vladimir Prus
4a7a508bc2 Added future generators test -- not automated now.
[SVN r14926]
2002-08-16 14:25:22 +00:00