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

4209 Commits

Author SHA1 Message Date
Jurko Gospodnetić
103f8d7893 Updated Boost Jam to know how to report its minimum supported file modification timestamp resolution (currently reported as part of Boost Jam's version information). This allows external tools using Boost Jam to adapt to Boost Jam's potential ignorance of fine file modification timestamp changes.
For example, Boost Build's internal testing framework may use this information to reduce the time it spends doing nothing by sleeping until enough time passes to make newly created or touched files be correctly recognized by Boost Build.

[SVN r79780]
2012-07-28 09:20:29 +00:00
Jurko Gospodnetić
f7316995e6 Boost Jam version information output cleaned up a bit to make it easier to update it with additional information.
[SVN r79779]
2012-07-28 09:04:41 +00:00
Jurko Gospodnetić
b28fc465c3 Boost Jam code cleanup - minor stylistic changes.
[SVN r79778]
2012-07-28 08:58:39 +00:00
Jurko Gospodnetić
53d4c9d5b9 Boost Build cleanup - minor stylistic changes.
[SVN r79734]
2012-07-25 05:36:38 +00:00
Jurko Gospodnetić
dff942e14b Boost Build cleanup - minor stylistic changes & comment updates.
[SVN r79733]
2012-07-25 05:15:42 +00:00
Jurko Gospodnetić
b68013587a Boost Build code cleanup - improved support for initializing toolset & extension modules with more than 8 parameters (current Boost Jam supports up to 19 numbered parameter references) + minor stylistic changes.
[SVN r79720]
2012-07-24 10:33:34 +00:00
Jurko Gospodnetić
a3a1170ec1 Boost Jam cleanup - minor stylistic changes.
[SVN r79693]
2012-07-23 09:02:49 +00:00
Jurko Gospodnetić
f9f7b0204e Updated the Windows Boost Build implementation to use direct Windows APIs instead of the Windows POSIX layer & standard C library functionality for collecting information about files. Now returns file timestamps with much better precision than 1 second.
[SVN r79691]
2012-07-23 07:26:02 +00:00
Jurko Gospodnetić
344d758e94 Boost Jam cleanup - removed internal file size tracking. The data was being collected but never actually used and did not support file sizes larger than can fit in a 32 bit integer.
[SVN r79677]
2012-07-22 16:52:53 +00:00
Jurko Gospodnetić
28200e7f97 Boost Jam cleanup - minor comment corrections.
[SVN r79675]
2012-07-22 16:10:36 +00:00
Jurko Gospodnetić
64494521bf Boost Jam cleanup - removed defective header parsing code seemingly intended for stripping trailing newline characters from read lines. This code has never done anything since it was originally added so there seems no reason to 'fix' it to do what it 'seems to have been intended to do'.
[SVN r79674]
2012-07-22 16:05:58 +00:00
Jurko Gospodnetić
fde452f38f Boost Jam cleanup - minor stylistic changes.
[SVN r79673]
2012-07-22 15:43:04 +00:00
Jurko Gospodnetić
35f4195ec7 Boost Jam cleanup - cleaned up some header includes, minor stylistic changes.
[SVN r79672]
2012-07-22 14:53:50 +00:00
Jurko Gospodnetić
66f0980384 Fixed a Boost Build bug with path feature requirements not getting expanded to a correct relative path depending on where the build was getting run from, if added by an indirect conditional feature rule. Fixes ticket http://svn.boost.org/trac/boost/ticket/7144. Thanks to dimak <dvb.kharkov _at_ gmail _dot_ com> for reporting this and preparing a reproducible test case.
[SVN r79665]
2012-07-22 07:40:52 +00:00
Jurko Gospodnetić
59ccb1f48b Allowed Boost Build option rule to be used in test-config configuration files. Corrected and updated the related end-user error message.
[SVN r79656]
2012-07-22 07:17:43 +00:00
Jurko Gospodnetić
ca0d98cc38 Boots Build cleanup - minor stylistic changes.
[SVN r79650]
2012-07-22 07:01:36 +00:00
Jurko Gospodnetić
1082919fb8 Corrected a Boost Build bug causing it to not report an error if a generator needed to determine its target name itself when a source target passed to it as third or later did not have the same name as the first one. Added a related internal Boost Build unit test.
Caught and reported by Adder <adder.thief _at_ gmail.com>.

[SVN r79629]
2012-07-20 19:12:59 +00:00
Jurko Gospodnetić
3f00e9c0b1 Boost Build code cleanup - minor stylistic changes.
[SVN r79626]
2012-07-20 18:49:07 +00:00
Jurko Gospodnetić
8f72b65456 Boost Build code cleanup - minor stylistic changes.
[SVN r79622]
2012-07-20 14:42:18 +00:00
Jurko Gospodnetić
29d94131ee Fixed minor Boost Build error reporting bugs caused by module rules not being directly available using their full names when imported from inside a class rule - an error about rule errors.error or errors.user-error not being defined was getting reported instead of the desired error. This is due to the fact that rule name resolution does not look in the current module in that case but uses the class module instead.
[SVN r79621]
2012-07-20 14:39:50 +00:00
Jurko Gospodnetić
89f740660f Boost Jam/Build code cleanup - minor stylistic changes.
[SVN r79620]
2012-07-20 14:20:55 +00:00
Jurko Gospodnetić
bae5e920ac Boost Jam code cleanup - removed an old, untested and up to recently definitely non-compiling 'old Borland compiler' code branch in the filent.c module. The compilers in question themselves are Borlands free compiler tools predating the more modern and more standard compliant free 'Visual Studio Express' toolchain so there should be no need for anyone to depend on them any more.
[SVN r79618]
2012-07-20 10:57:31 +00:00
Jurko Gospodnetić
ae0e14f947 Fixed a Boost Build bug causing scanner targets to be rebuilt every time if their base target has already been marked as including another target with a newer timestamp. For example, this occurred every time a single action generated both the scanned and the included target and did so slowly enough that the included target got a newer timestamp. Fix originally prepared by Steven Watanabe.
[SVN r79601]
2012-07-19 14:32:31 +00:00
Jurko Gospodnetić
cc5e96ab49 Boost Build cleanup - minor stylistic change.
[SVN r79598]
2012-07-19 11:37:03 +00:00
Jurko Gospodnetić
2f64a35846 Boost Build code cleanup - minor stylistic changes (trimmed trailing spaces, corrected a typo in the main module comment).
[SVN r79594]
2012-07-19 03:47:31 +00:00
Jurko Gospodnetić
4e711ebd44 Minor stylistic change.
[SVN r79593]
2012-07-19 02:58:55 +00:00
Jurko Gospodnetić
681b6609af Boost Jam code cleanup - minor stylistic changes (added missing spaces around some parameters inside brackets in C code).
[SVN r79587]
2012-07-18 15:06:44 +00:00
Jurko Gospodnetić
cbb48b5d01 Updated Boost Jam implementation comment related to it adding internal fake INCLUDES relationships between targets built by a single action in order to make sure none of them may get used until their action had successfully completed its work.
[SVN r79586]
2012-07-18 14:50:53 +00:00
Jurko Gospodnetić
35883dacc0 Boost Build build bug corrected when compiling using old Borland compilers. This has been in for a long time and has been noticed only as part of a quick code review. It could be there is no need to support this 'old Borland compilers' code branch.
[SVN r79585]
2012-07-18 14:27:22 +00:00
Jurko Gospodnetić
58beabb9dc Boost Jam code cleanup - moved code for creating new internal include targets into a single location (rules.c module) instead of having it done in two (rules.c & builtins.c modules).
[SVN r79584]
2012-07-18 14:24:19 +00:00
Jurko Gospodnetić
1961065003 Boost Build no longer needs to add a fake INCLUDES relationship between targets generated by a single Boost Build action (reapplying revision [79571]). This is already done by Boost Jam internally for a single Boost Jam action and in case when the Boost Build action is actually a rule registering multiple actions - this was not causing any desirable behaviour.
[SVN r79583]
2012-07-18 14:08:35 +00:00
Jurko Gospodnetić
ca78bc40b2 Minor stylistic changes made to the Python Boost Build comment updated in the previous commit.
[SVN r79582]
2012-07-18 13:26:02 +00:00
Jurko Gospodnetić
714ed09cf4 Updated Boost Build implementation note comment related to why it adds an INCLUDES relation between all sources registered for a single Boost Build action.
[SVN r79581]
2012-07-18 13:24:40 +00:00
Jurko Gospodnetić
1b98bbbf74 Boost Build comment cleanup.
[SVN r79580]
2012-07-18 12:42:17 +00:00
Jurko Gospodnetić
ddbdcd0c04 Reverting revision [79571] since it broke the generators_test.py Boost Build test. It seems Boost Jam might not have the complete fix implemented to allow us to avoid this Boost Build code.
[SVN r79573]
2012-07-17 09:29:02 +00:00
Jurko Gospodnetić
ef8a393163 Boost Build code cleanup - Boost Build no longer needs to add a fake INCLUDES relationship between targets generated by a single action as this is already done by Boost Jam internally.
[SVN r79571]
2012-07-17 09:08:10 +00:00
Jurko Gospodnetić
21e5ae661a Boost Build code cleanup - scanner.install no longer taking an extra & never used vtarget parameter.
NOTE: Defective - breaks the generators_test.py Boost Build test.

[SVN r79570]
2012-07-17 09:03:38 +00:00
Jurko Gospodnetić
c16ae1c68a Boost Jam/Build cleanup - minor stylistic changes (comment updates; line wrapping; removed some dead/unused function declarations, parameters & code; declared variables as const; reordered some #include directives alphabetically, removed some unnecessary ones and added several missing ones discovered by the reordering).
[SVN r79569]
2012-07-17 08:56:49 +00:00
Jurko Gospodnetić
145ce56f80 Windows Boost Jam implementation now uses finer resolution than 1 second when creating timestamps based on the current system time. Since these are never (and should never be!) compared to file system timestamps - this causes no conflicts with file system timestamps still using 1 second resolution at best.
Related stylistic changes:
  - filetime_to_timestamp() function renamed to timestamp_from_filetime() and moved to the timestamp.c module.
  - filetime_to_seconds() function moved back to the execnt.c module as a static function as it only used from there after the timestamp_from_filetime() reimplementation in revision [79494].
  - filent.h header now empty and removed.

[SVN r79511]
2012-07-14 18:55:06 +00:00
Jurko Gospodnetić
c2858c8b5d Boost Jam code cleanup - extracted code for getting a timestamp for the current system time to timestamp_current().
[SVN r79507]
2012-07-14 17:28:50 +00:00
Jurko Gospodnetić
e548f836d9 Boost Jam's internal timestamp data structure now holds a member for nanosecond information. This information is still always set to 0 but, if set, is used when needed. Updated Boost Jam's header cache file format to hold the new extended timestamp information (bumped format version up to 5).
[SVN r79506]
2012-07-14 17:17:09 +00:00
Jurko Gospodnetić
f18abd8674 Boost Jam now reports its timestamps using a bit more complete format (still ISO-8601 compliant) to include nanosecond information. The new format is 'YYYY-MM-DD HH:MM:SS.ZZZZZZZZZ +0000'. Currently the nanosecond part value is always 0.
[SVN r79502]
2012-07-14 16:36:56 +00:00
Jurko Gospodnetić
3736a64fd6 Boost Jam code cleanup - wrapped up timestamp values inside a timstamp structure instead of using a raw time_t value as another preparation step towards implementing support for timestamps with resolution finer than 1 second. All timestamp manipulation now done using the new timestamp_XXX() API.
File timestamps displayed with -d+3 debug output now presented in UTC (+0000) timezone.

Other related minor stylistic changes:
  - timestamp_from_target() renamed to timestamp_from_path()
  - timestamp_from_target() parameter order switched
  - comment updates
  - added some const function parameter modifiers
  - some header #include directives reordered alphabetically

[SVN r79501]
2012-07-14 16:11:16 +00:00
Jurko Gospodnetić
8202d97670 Boost Jam code cleanup - extracted Windows specific FILETIME structure conversion functions from execnt.c to a lowel level filent.c Windows specific module so they may be reused in both. Renamed the functions to make their purpose clearer.
[SVN r79497]
2012-07-14 13:23:45 +00:00
Jurko Gospodnetić
eb8c859a26 Boost Jam execnt.c module code cleanup. No longer attempts to perform some operations like closing alert windows or reading their output (before the code depended on some operations not doing anything if given invalid handles or process ids). No longer needs to find out the process id from a process handle (since it actually already had these process ids all along), thus avoiding hacks needed to support this on Windows versions prior to Windows XP SP1 (where there was no GetProcessId() Windows API). Minor stylistic changes.
[SVN r79496]
2012-07-14 13:10:00 +00:00
Jurko Gospodnetić
fe47abe424 Boost Jam code cleanup - removed a redundant #include directive.
[SVN r79495]
2012-07-14 11:49:52 +00:00
Jurko Gospodnetić
8e716991c8 Corrected Boost Jam's Windows FILETIME to POSIX time_t conversion. New implementation lifted shamelessly from the CPython implementation. The old implementation did not work correctly in all cases depending on the user's regional (timezone & daylight saving time) settings as well as the TZ environment variable (affects some C runtime library routines). It also used the double type to represent some interim values during its calculation - sometimes causing off-by-one rounding errors.
[SVN r79494]
2012-07-14 11:42:58 +00:00
Jurko Gospodnetić
743cc7ed4b Boost Jam code cleanup - minor stylistic code changes & comment updates.
[SVN r79493]
2012-07-14 11:35:29 +00:00
Jurko Gospodnetić
0a656de095 Boost Jam code cleanup - cleaned up the timestamp.c module identifiers and better commented its functions.
[SVN r79489]
2012-07-13 23:14:40 +00:00
Jurko Gospodnetić
fb8fb8317e Boost Jam code cleanup - minor stylistic code changes & comment updates.
[SVN r79488]
2012-07-13 23:11:45 +00:00