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

147 Commits

Author SHA1 Message Date
Vladimir Prus
8e665325a7 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
Dave Abrahams
895983c7e3 cleanup
[SVN r16761]
2003-01-05 18:40:55 +00:00
Dave Abrahams
e77ff30fe0 undo ls hack
[SVN r16760]
2003-01-05 18:40:33 +00:00
Dave Abrahams
ef9ae43855 Use exe_suffix for Cygwin
[SVN r16759]
2003-01-05 18:27:05 +00:00
Dave Abrahams
92d224ecf1 Compute exe_suffix for Cygwin
Dump recursive directory on certain failures.
Allow List addition


[SVN r16758]
2003-01-05 18:25:58 +00:00
Dave Abrahams
b28e3ce29e 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
c55ca9170f 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
61e7810ed2 Another bugfix for dependency properties in use requirements.
* new/targets.jam
    (generate-dependencies): New argument 'extra-properties.
        Add it to properties used for building dependencies.
    (basic-target.generate): Use the above change.


[SVN r16611]
2002-12-15 10:14:11 +00:00
Vladimir Prus
9fc710999b Add a script to facilitate creating of tests from directories.
[SVN r16610]
2002-12-15 10:10:10 +00:00
Vladimir Prus
179a8ee298 Implement BB7: now there's "build-dir" project
attribute which controls where generated targets are put,
much in the same was as ALL_LOCATE_TARGET.

* new/virtual-target.jam
    (virtual-target.path): Respect build dir.
    (virtual-target.actualize-location): Don't
       compute path, but call call instead.

* new/project.jam
    (initialize): Set default value for 'build-dir'.
    (project-attributes.set): Handle 'build-dir'.

* new/path.jam
    (relative): New rule.

* test/build_dir.py: New test.


[SVN r16589]
2002-12-11 19:01:50 +00:00
Vladimir Prus
6765a3d478 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
223eabd958 Bugfix: dependency features in use requirements were mishandled.
* new/targets.jam
    (basic-target.generate): Use 'generate-dependencies'
    for use requirements on this target.

* test/use_requirements.py: More tests.


[SVN r16580]
2002-12-10 07:48:56 +00:00
Vladimir Prus
84fa4e2c88 Bugfix: path features in target requirement were
not translated.

* test/path_features.py: Fix a bug in test.

* new/targets.jam
    (main-target-requirements): Bugfix.


[SVN r16579]
2002-12-10 07:15:33 +00:00
Vladimir Prus
19a2c1c584 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
fdc3fa6c54 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
Vladimir Prus
f761d5fee7 Better support project requirements with dependency properties
in it. Don't generate all main target into separate subdirectories
in this case.

* new/targets.jam:
    (project-target.reference-properties): New method
    (generate): Moved from basic-target.generate-source
    (generate-dependencies): New rule.

* test/project_dependencies.py: New test.


[SVN r16453]
2002-11-28 08:18:06 +00:00
Vladimir Prus
0afa3aa911 Improve 'flags' and the gcc toolset.
* gcc.jam: Extend the 'toolset' feature with gcc here.
    Use flags for linking too and eliminate 'link-options'
    rule. Remove empty compile/archive/link/link-dll rules.

* toolset.jam (flags): Document somehow.
     (set-target-variables): Call 'actualize' on values
     of dependency features.


[SVN r16440]
2002-11-27 09:35:53 +00:00
Vladimir Prus
f134aad086 Test for composite properties in target references.
[SVN r16347]
2002-11-20 16:38:53 +00:00
Dave Abrahams
30728fd3cc Tests for v1 testing
[SVN r16345]
2002-11-20 15:51:53 +00:00
Vladimir Prus
ac6efa3dc8 Forgotten change.
[SVN r16248]
2002-11-15 07:15:10 +00:00
Vladimir Prus
4bb9890107 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
b683f1da14 Fix rule echoing.
* jam_src/make1.c (make1c): Output don't output nonqueit when neither
     DEBUG_MAKE nor DEBUG_MAKEQ is set.

   * test/code_d1d2.py: New test.


[SVN r16231]
2002-11-14 07:11:16 +00:00
Vladimir Prus
24d1722d55 First implementation of "stage" and "prebuilt" rule.
* new/common.jam (copy): New rule.

* new/targets.jam (main-target.generate): Use a different
   algorith for selecting subvariant. Favour one with
   the longest intersection of requirements with build
   properties.

* new/virtual-target.jam (virtual-target): Eliminate 'subvariant'
   attribute. Use properties of action to for the same
   purpose. New methods 'set-path' and 'extra-grist'.


[SVN r16129]
2002-11-06 10:26:11 +00:00
Dave Abrahams
172669b521 initial commit
[SVN r16122]
2002-11-05 19:56:18 +00:00
Dave Abrahams
37f30070bb Proof-of-concept for testing
[SVN r16108]
2002-11-04 21:57:50 +00:00
Dave Abrahams
d45cc334b1 Cygwin compatibility
[SVN r16107]
2002-11-04 21:56:41 +00:00
Vladimir Prus
f9bf8ef5e2 Made 'include' adjustment for generated headers work when other
targets are specified as sources, not only as dependency properties.

    * new/virtual-target.jam (subvariant-dg): Note which sources
    are roots of dependency grapgs and record those graphs.


[SVN r16095]
2002-11-04 17:24:41 +00:00
Vladimir Prus
6354355cbe Honour use-requirements for dependency properties.
[SVN r15964]
2002-10-23 10:39:23 +00:00
Vladimir Prus
3be178a1ea Forgotten file.
[SVN r15852]
2002-10-10 12:20:19 +00:00
Vladimir Prus
2e0e73f25f Add more tests.
[SVN r15851]
2002-10-10 12:12:06 +00:00
Vladimir Prus
e44de6f1b0 Implement dependendency features.
[SVN r15850]
2002-10-10 11:58:41 +00:00
Vladimir Prus
ca18960a9e Implement simple form of use requirements.
* new/virtual-target.jam
        (virtual-target.use-requirements): New rule.
        (virtual-target.set-use-requirements): New rule.

    * new/generators.jam (construct): Use 'use-requirements' of sources.

    * new/targets.jam (basic-target.generate): Store use requirements for
             generated targets.
      (main-target-alternative): Process use requirements.

    * new/project.jam: Support 'use-requirements' project attribute.


[SVN r15821]
2002-10-09 11:33:22 +00:00
Vladimir Prus
9e696814a3 Bugfixes.
* new/virtual-targets.jam (virtual-target.root): New rule
        (traverse): Don't traverse past roots.
    * new/targets.jam (main-target): Call 'virtual-target.root' as
        appropriate.


[SVN r15773]
2002-10-07 14:34:43 +00:00
Vladimir Prus
4115276dec Sundry improvements:
Bison and lex support.
    unit-test rule
    --version option
    default build really works

    * new/build-system.jam: Bugfixes. Added "--version" option.

    * new/project.jam: If default-build is not specifies, don't stick "debug".

    * new/property.jam (evaluate-conditionals): New rule.

    * new/targets.jam (basic-target.generate): Evalute conditional properties.

    * test/BoostBuild.py (Tester.maybe_do_diff): New method.
        (Tester.run_build_system): Call the above method when
        appropriate.


[SVN r15771]
2002-10-07 13:34:14 +00:00
Vladimir Prus
4b5d5cc6e4 Allow to specify target ids in command line.
* project.jam (lookup-with-load): New rule.
      (find-target): Try interperting target id as project first.

    * build-request.jam (from-command-line): Don't grab
      unconditionally elements which have slashes -- they may be target
      ids.

    * build-system.jam: Allow target ids is command
      line. Accept --clean option.

    * BoostBuild.py (run_build_system): Call 'ignore_directoies' on diff.

    * tree.py (Trees_different.ignore_directoies): New method.


[SVN r15768]
2002-10-07 13:18:27 +00:00
Vladimir Prus
742e30850e Fix some obscure bugs.
* new/virtual-target.jam (clone-template): Improve interface and logic.

    * new/make.jam (make-target-class.construct): Set type and suffix on
    generated targets.

    * new/generators.jam (construct): Make sure all targets have known
     types.


[SVN r15766]
2002-10-07 13:08:04 +00:00
Vladimir Prus
f7ad708129 Allow directory part in names of source files.
[SVN r15708]
2002-10-04 13:59:25 +00:00
Vladimir Prus
688f31f78c Implement path features.
* property.jam (translate-paths): New rule.

    * targets.jam (main-target-alternative): Translate path
      properties.

    * project.jam (project-attributes.set): Likewise.

    * builtin.jam (variant): Fixes.


[SVN r15707]
2002-10-04 13:48:38 +00:00
Vladimir Prus
2d011cda17 Implement variant declaration.
* builtin.jam (variant): New rule.

    * build-system.jam: Unconditionally add <toolset>gcc to build
        request. Will be fixed when toolset support is ready.

    * feature.jam (extend-feature): Bugfix.


[SVN r15678]
2002-10-03 16:29:21 +00:00
Vladimir Prus
18991908fc Propagate free properties in build request to all directly requested targets.
* targets.jam
        (abstract-target.direct-build-request): New rule.
        (project-target.direct-build-request): New rule.
        (main-target.direct-build-request): New rule.
        (main-target.generate): Use data stored by
        'direct-build-request' to adjust build properties.

    * build-system.jam: Call 'direct-build-request' on project
         target in "."

    * feature.jam (feature): Don't allow propagated free features.


[SVN r15677]
2002-10-03 15:18:59 +00:00
Vladimir Prus
9fa663224f Skip projects when property refinement for them fails.
Skip main targets when no alternative can be build.
Issue error when 'construct' for alternative fails.


[SVN r15676]
2002-10-03 15:01:09 +00:00
Vladimir Prus
da0376118c Cleanups.
[SVN r15651]
2002-10-02 16:13:54 +00:00
Vladimir Prus
4af9e4371f 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
1c8db11b60 Dependency scanning implementation.
* jam_src/builtins.c: New builtin SEARCH_FOR_TARGET.

    * jam_src/rules.c
         (bind_explicitly_located_targets): New function.
         (search_for_target): New function.

    * jam_src/make.c (make): Call 'bind_explicitly_located_targets()'
        immediately on entering.

    * jam_src/search.c (call_bind_rule): No longer 'static'.

    * new/builtin.jam (c-scanner.process): Real implementation.

    * test/dependency_test.py: Really test for dependencies.


[SVN r15646]
2002-10-02 11:56:32 +00:00
Vladimir Prus
f1ae04c4a9 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
616e43dd10 Adjust include paths for compilations, so that generated headers are found.
* virtual-target.jam (traverse): New rule, returns a list of
    targets, given the graph root.
  (subvariant-dg): New class, to keep all targets for a given
    subvariant.
  (virtual-target.dg): New rule to access subvariant-dg.
  (virtual-target.path): New rule

* targets.jam (main-target.generate): Assign subvariant dg to all
  created targets.

* builtin.jam (compile-action.adjust-properties): Use subvariant
  dg to find all targets, their location, and add those location
  to include path.


[SVN r15619]
2002-10-01 17:00:24 +00:00
Vladimir Prus
5369e948b4 Added hooks to allow special property adjustment for generators and actions.
For example, this would allow compilers to add generated headers into include
path.

	* virtual-target.jam (action.adjust-properties): New rule.
	  (clone-action-template): Don't slice cloned object.

	* generators.jam (generator.action-class): New rule, to allow
	  overriding action class on per-generator basis.

	* builtin.jam (compile-action): New class.
	    (C-compiling-generator): New class.

	* gcc.jam: Use C-compiling-generator for gcc. Honor includes.


[SVN r15618]
2002-10-01 16:31:31 +00:00
Vladimir Prus
0ce8654d3a Tweak test system.
[SVN r15611]
2002-10-01 14:55:52 +00:00
Vladimir Prus
4c4567dde5 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
38f178b0d8 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