Commit Graph

12124 Commits

Author SHA1 Message Date
Jurko Gospodnetić
d4201e6f4e Fixed a bug in Boost Jam's UPDATE_NOW builtin rule causing it to disable the -q option when requested to disable the -n option. This was also causing the -q option to be permanently disabled when requested to disable both -q & -n options.
[SVN r79084]
2012-06-25 15:34:17 +00:00
Jurko Gospodnetić
85219521b8 Boost Jam code cleanup - minor stylistic builtins.c module changes.
[SVN r79083]
2012-06-25 15:27:38 +00:00
Jurko Gospodnetić
6e9d78cdda Boost Jam code cleanup - minor stylistic builtins.c module changes.
[SVN r79083]
2012-06-25 15:27:38 +00:00
Jurko Gospodnetić
6d042d6039 Boost Jam code cleanup - added support for exec*.c modules deciding that there is really no purpose in running the given 'do-nothing' command on their platform and simply telling the main build state machine to consider that command successfully executed. This is a preparation step for implementing a better 'raw command execution' criteria on Windows where attempting to execute an empty raw command would issue an error.
[SVN r79082]
2012-06-25 14:54:18 +00:00
Jurko Gospodnetić
e04c4eba68 Boost Jam code cleanup - added support for exec*.c modules deciding that there is really no purpose in running the given 'do-nothing' command on their platform and simply telling the main build state machine to consider that command successfully executed. This is a preparation step for implementing a better 'raw command execution' criteria on Windows where attempting to execute an empty raw command would issue an error.
[SVN r79082]
2012-06-25 14:54:18 +00:00
Jurko Gospodnetić
cce2a98e9b Made Boost Jam preserve trailing whitespace when executing its raw commands on Windows same as it does for other OSs (just the leading whitespace and trailing all-whitespace lines get trimmed). Command files used with external shells now also again get the complete action content without any whitespace trimming. This partially reverts a recent change from revision 78997 and also fixes the module_actions.py Boost Build test broken by that revision.
[SVN r79081]
2012-06-25 14:34:33 +00:00
Jurko Gospodnetić
268ad706d5 Made Boost Jam preserve trailing whitespace when executing its raw commands on Windows same as it does for other OSs (just the leading whitespace and trailing all-whitespace lines get trimmed). Command files used with external shells now also again get the complete action content without any whitespace trimming. This partially reverts a recent change from revision 78997 and also fixes the module_actions.py Boost Build test broken by that revision.
[SVN r79081]
2012-06-25 14:34:33 +00:00
Jurko Gospodnetić
411315fef4 Boost Jam code cleanup - minor stylistic execnt.c module change.
[SVN r79080]
2012-06-25 14:10:56 +00:00
Jurko Gospodnetić
46076765ed Boost Jam code cleanup - minor stylistic execnt.c module change.
[SVN r79080]
2012-06-25 14:10:56 +00:00
Jurko Gospodnetić
52e55fd455 Boost Jam code cleanup - minor stylistic execnt.c module changes.
[SVN r79079]
2012-06-25 14:06:35 +00:00
Jurko Gospodnetić
97ce67e09c Boost Jam code cleanup - minor stylistic execnt.c module changes.
[SVN r79079]
2012-06-25 14:06:35 +00:00
Jurko Gospodnetić
d23202eeff Boost Jam code cleanup - added a new exec_check() exec*.c module platform specific functions and moved all command validation into them. MAXLINE macro is no longer needed globally for all platforms, and those platforms that do not have a fixed constant for their maximum command line length (e.g. Windows) may now hold that knowledge inside their exec*.c modules and not export it in any way. Windows execnt.c implementation still does some extra command-trimming that needs to be cleaned up.
[SVN r79078]
2012-06-25 13:42:00 +00:00
Jurko Gospodnetić
fad63f7d5a Boost Jam code cleanup - added a new exec_check() exec*.c module platform specific functions and moved all command validation into them. MAXLINE macro is no longer needed globally for all platforms, and those platforms that do not have a fixed constant for their maximum command line length (e.g. Windows) may now hold that knowledge inside their exec*.c modules and not export it in any way. Windows execnt.c implementation still does some extra command-trimming that needs to be cleaned up.
[SVN r79078]
2012-06-25 13:42:00 +00:00
Jurko Gospodnetić
16b3c77d72 Boost Jam code cleanup - cmd_new() no longer does command string line length checking, removed duplicate cmd_new() invocation when a command was found to contain a too long line, corrected reusing targets & shell lists when constructing commands after rejecting a previously constructed one.
[SVN r79077]
2012-06-25 11:46:06 +00:00
Jurko Gospodnetić
a07f8fb37f Boost Jam code cleanup - cmd_new() no longer does command string line length checking, removed duplicate cmd_new() invocation when a command was found to contain a too long line, corrected reusing targets & shell lists when constructing commands after rejecting a previously constructed one.
[SVN r79077]
2012-06-25 11:46:06 +00:00
Jurko Gospodnetić
a1d76d06a2 Boost Jam now first tries alternate command-file names before waiting for 250ms when it fails to open its intended command-file for writing (most likely due so some anti-virus software still holding it open). This speeds up command running in such 'overly eager anti-virus software' scenarios.
[SVN r79076]
2012-06-25 09:39:46 +00:00
Jurko Gospodnetić
b45c35b956 Boost Jam now first tries alternate command-file names before waiting for 250ms when it fails to open its intended command-file for writing (most likely due so some anti-virus software still holding it open). This speeds up command running in such 'overly eager anti-virus software' scenarios.
[SVN r79076]
2012-06-25 09:39:46 +00:00
Jurko Gospodnetić
b1579a0ffe Boost Jam code cleanup - extracted running command counting out of platform specific exec*.c modules and moved it to the central make1.c module. Simplified upper running command count checking since with the new '-j' command-line parameter and the PARALLELISM built-in variable value checking we now know that globs.jobs is always in the [1, MAXJOBS] range.
[SVN r79075]
2012-06-25 09:25:59 +00:00
Jurko Gospodnetić
e413acfebb Boost Jam code cleanup - extracted running command counting out of platform specific exec*.c modules and moved it to the central make1.c module. Simplified upper running command count checking since with the new '-j' command-line parameter and the PARALLELISM built-in variable value checking we now know that globs.jobs is always in the [1, MAXJOBS] range.
[SVN r79075]
2012-06-25 09:25:59 +00:00
Jurko Gospodnetić
783dfad810 Boost Jam code cleanup - ExecCmdCallback timing_info * parameter marked as pointer to const.
[SVN r79074]
2012-06-25 08:09:07 +00:00
Jurko Gospodnetić
4070a6957f Boost Jam code cleanup - ExecCmdCallback timing_info * parameter marked as pointer to const.
[SVN r79074]
2012-06-25 08:09:07 +00:00
Jurko Gospodnetić
7bc3bed307 Boost Jam code cleanup - execnt.c module no longer outputs its 'argv' related -d+4 debug output since its argv structure is just an intermediate structure contructed while preparing the final command string for passing to the CreateProcessA() Windows API. Actual final constructed command string still does get displayed as -d+4 debug output.
[SVN r79073]
2012-06-25 01:45:14 +00:00
Jurko Gospodnetić
a06d5ddb4c Boost Jam code cleanup - execnt.c module no longer outputs its 'argv' related -d+4 debug output since its argv structure is just an intermediate structure contructed while preparing the final command string for passing to the CreateProcessA() Windows API. Actual final constructed command string still does get displayed as -d+4 debug output.
[SVN r79073]
2012-06-25 01:45:14 +00:00
Jurko Gospodnetić
69245164b9 Boost Jam code cleanup - more standardized 'default shell' implementation in both execnt.c & execunix.c modules. This removes the knowledge duplication in code about what default shell we are using as well as allows us to process default & non-default shells equally.
[SVN r79072]
2012-06-25 01:32:02 +00:00
Jurko Gospodnetić
4a96c4dd2c Boost Jam code cleanup - more standardized 'default shell' implementation in both execnt.c & execunix.c modules. This removes the knowledge duplication in code about what default shell we are using as well as allows us to process default & non-default shells equally.
[SVN r79072]
2012-06-25 01:32:02 +00:00
Jurko Gospodnetić
f79fe7fd34 Boost Jam code cleanup - removed a no longer useful constant_percent constant. Its one usage has been inlined, and even that is planned to be removed.
[SVN r79071]
2012-06-25 01:10:27 +00:00
Jurko Gospodnetić
ca60f1b981 Boost Jam code cleanup - removed a no longer useful constant_percent constant. Its one usage has been inlined, and even that is planned to be removed.
[SVN r79071]
2012-06-25 01:10:27 +00:00
Jurko Gospodnetić
2541eb4cff Boost Jam code cleanup - updated Python related implementation to use the more efficient PyString_AS_STRING() API instead of PyString_AsString() when we already know we are passing it a valid Python string object.
[SVN r79070]
2012-06-25 00:59:47 +00:00
Jurko Gospodnetić
7979cd5012 Boost Jam code cleanup - updated Python related implementation to use the more efficient PyString_AS_STRING() API instead of PyString_AsString() when we already know we are passing it a valid Python string object.
[SVN r79070]
2012-06-25 00:59:47 +00:00
Jurko Gospodnetić
fe6d47c464 Updated Boost Jam's Cygwin-to-Windows path conversion implementation to use the new cygwin_conv_path() API introduced in Cygwin 1.7 when building using a new enough Cygwin version headers. This avoids depreciation warnings about the old cygwin_conv_to_win32_path() API being used when building with newer Cygwin versions. The new API seems to support paths longer than MAX_PATH and allows for much better error handling.
[SVN r79069]
2012-06-25 00:57:40 +00:00
Jurko Gospodnetić
d4e6d5a5a0 Updated Boost Jam's Cygwin-to-Windows path conversion implementation to use the new cygwin_conv_path() API introduced in Cygwin 1.7 when building using a new enough Cygwin version headers. This avoids depreciation warnings about the old cygwin_conv_to_win32_path() API being used when building with newer Cygwin versions. The new API seems to support paths longer than MAX_PATH and allows for much better error handling.
[SVN r79069]
2012-06-25 00:57:40 +00:00
Jurko Gospodnetić
605bc82e86 Boost Jam code cleanup - updated path_tmpdir() to return a string object instead of a raw C char pointer.
[SVN r79068]
2012-06-25 00:41:37 +00:00
Jurko Gospodnetić
7f30ec0101 Boost Jam code cleanup - updated path_tmpdir() to return a string object instead of a raw C char pointer.
[SVN r79068]
2012-06-25 00:41:37 +00:00
Jurko Gospodnetić
58fb165500 Boost Jam code cleanup - minor stylistic changes.
[SVN r79067]
2012-06-25 00:33:54 +00:00
Jurko Gospodnetić
2984c9dee7 Boost Jam code cleanup - minor stylistic changes.
[SVN r79067]
2012-06-25 00:33:54 +00:00
Jurko Gospodnetić
bc8c2abb37 Boost Jam code cleanup - minor stylistic changes.
[SVN r79066]
2012-06-24 21:42:48 +00:00
Jurko Gospodnetić
55efe7798d Boost Jam code cleanup - minor stylistic changes.
[SVN r79066]
2012-06-24 21:42:48 +00:00
Jurko Gospodnetić
d34ffa9d42 Boost Jam code cleanup - refactored code in exec*.c module for executing child processes to reduce duplication and function size. The only externally visible change is in several debug (-d+4) messages.
[SVN r79065]
2012-06-24 16:10:58 +00:00
Jurko Gospodnetić
5fe0d49e68 Boost Jam code cleanup - refactored code in exec*.c module for executing child processes to reduce duplication and function size. The only externally visible change is in several debug (-d+4) messages.
[SVN r79065]
2012-06-24 16:10:58 +00:00
Jurko Gospodnetić
e56812f2f7 Boost Jam code cleanup - extracted code making the actual CreateProcessA() call in the execnt.c module into a separate invoke_cmd() function.
[SVN r79063]
2012-06-24 14:57:41 +00:00
Jurko Gospodnetić
34e522ed74 Boost Jam code cleanup - extracted code making the actual CreateProcessA() call in the execnt.c module into a separate invoke_cmd() function.
[SVN r79063]
2012-06-24 14:57:41 +00:00
Jurko Gospodnetić
d8dac3dbe7 Boost Jam now correctly reports an end-user error message when its pipe() system call fails on unix. Previously it just did a silent exit.
[SVN r79062]
2012-06-24 14:24:40 +00:00
Jurko Gospodnetić
3f8d389814 Boost Jam now correctly reports an end-user error message when its pipe() system call fails on unix. Previously it just did a silent exit.
[SVN r79062]
2012-06-24 14:24:40 +00:00
Jurko Gospodnetić
d2146b0e4c Boost Jam code cleanup - minor stylistic change - pipes used to communicate with child processes no longer have their parent side descriptors inherited by the child process instead of being explicitly closed in the child process.
[SVN r79061]
2012-06-24 14:22:38 +00:00
Jurko Gospodnetić
c417befae9 Boost Jam code cleanup - minor stylistic change - pipes used to communicate with child processes no longer have their parent side descriptors inherited by the child process instead of being explicitly closed in the child process.
[SVN r79061]
2012-06-24 14:22:38 +00:00
Jurko Gospodnetić
fd5a2cbc5d Boost Jam code cleanup - minor stylistic changes.
[SVN r79060]
2012-06-24 14:19:54 +00:00
Jurko Gospodnetić
6276126884 Boost Jam code cleanup - minor stylistic changes.
[SVN r79060]
2012-06-24 14:19:54 +00:00
Jurko Gospodnetić
8481d42296 Boost Jam code cleanup - minor stylistic change - added a const variable specifier.
[SVN r79059]
2012-06-24 13:30:08 +00:00
Jurko Gospodnetić
48148fe6a9 Boost Jam code cleanup - minor stylistic change - added a const variable specifier.
[SVN r79059]
2012-06-24 13:30:08 +00:00
Jurko Gospodnetić
e18ae50fb5 Boost Jam code cleanup - minor stylistic changes in the make1.c module.
[SVN r79058]
2012-06-24 13:23:29 +00:00