aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/cpp/option_processor.cc
Commit message (Collapse)AuthorAge
* Windows: ignore envvars with degenerate namesGravatar Laszlo Csomor2017-05-31
| | | | | | | Fixes https://github.com/bazelbuild/bazel/issues/3077 Change-Id: I5f29fdec1f69bdda51fa62be695b8791a45240e9 PiperOrigin-RevId: 157559455
* Exclude the user-provided blazerc from the deduplication process.Gravatar lpino2017-05-09
| | | | PiperOrigin-RevId: 155491277
* Fix possible parsing of same rc file multiple times.Gravatar lpino2017-04-07
| | | | | | | Write a new function that dedupes a set of paths using its canonical form and use it to remove possible duplicates in the set of rc files that will be parsed. PiperOrigin-RevId: 152489149
* Bazel client, Windows: implement GetHomeDir Gravatar László Csomor2017-03-23
| | | | | | | | | | | | | Create a method in blaze_util_<platform> to retrieve the path to the home dir ($HOME on Linux/macOS, %USERPROFILE% on Windows), where we look for the user's bazelrc file (".bazelrc"). -- Change-Id: I86be1dbe1f992ad55eb09b496024754099d54912 Reviewed-on: https://cr.bazel.build/9513 PiperOrigin-RevId: 151004759 MOS_MIGRATED_REVID=151004759
* Uppercase some hand-selected environment variable names on Windows/MSVC.Gravatar Dmitry Lomov2017-03-08
| | | | | | | | -- Change-Id: Ie1f3be6258f024d352ff4571a5355660f409f70d Reviewed-on: https://cr.bazel.build/9291 PiperOrigin-RevId: 149470780 MOS_MIGRATED_REVID=149470780
* Env.vars: server won't ignore the client envGravatar Dmitry Lomov2017-03-08
| | | | | | | | | | | | | | | | | | Make the --ignore_client_env flag a no-op. The client will pass --client_env flags to the server even in --batch mode. This simplifies the code as well as ensuring that the server always uses the up-do-date client environment. We'll gradually get rid of all System.getenv calls in the server, because the server should always respect the client env. Roll forward of 149403129 with fixes. -- PiperOrigin-RevId: 149435060 MOS_MIGRATED_REVID=149435060
* Rollback of commit 94d8f4e9c8c8757aa7ab7c1a7c3e9afb34039127.Gravatar Klaus Aehlig2017-03-07
| | | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** broke //src/test/shell/bazel:bazel_bootstrap_distfile_test *** Original change description *** Env.vars: server won't ignore the client env Make the --ignore_client_env flag a no-op. The client will pass --client_env flags to the server even in --batch mode. This simplifies the code as well as ensuring that the server always uses the up-do-date client environment. We'll gradually get rid of all System.getenv calls in the server, because the server should always respect the client env. -- PiperOrigin-RevId: 149416602 MOS_MIGRATED_REVID=149416602
* Env.vars: server won't ignore the client envGravatar Laszlo Csomor2017-03-07
| | | | | | | | | | | | | | | | Make the --ignore_client_env flag a no-op. The client will pass --client_env flags to the server even in --batch mode. This simplifies the code as well as ensuring that the server always uses the up-do-date client environment. We'll gradually get rid of all System.getenv calls in the server, because the server should always respect the client env. -- PiperOrigin-RevId: 149403129 MOS_MIGRATED_REVID=149403129
* Bazel client: simplify {Read,Write}File semanticsGravatar Laszlo Csomor2017-03-01
| | | | | | | | | | | | | | | | Introduce a platform-specific file handle type (HANDLE on Windows, int on Linux/Darwin/FreeBSD) so we can get rid of the read_func and write_func functions, since they are always the same everywhere. Also include file_platform.h in file.h, since they are logically the same file (file_platform.h is just the platform-specific part of file.h). -- PiperOrigin-RevId: 148892736 MOS_MIGRATED_REVID=148892736
* Give users a hint at what could be wrong when an imported blazerc cannot be ↵Gravatar Googler2017-02-22
| | | | | | | | found. -- PiperOrigin-RevId: 148199034 MOS_MIGRATED_REVID=148199034
* Determine the .bazelrc's name based on the product name.Gravatar Julio Merino2017-01-20
| | | | | | | | | | | | | When looking up the .bazelrc file in the workspace or the home directory, construct its name using the built-in product name instead of hardcoding the name in the WorkspaceLayout class. This removes an additional hardcoded value and changes the code to do the right thing based on the product name. -- PiperOrigin-RevId: 145077783 MOS_MIGRATED_REVID=145077783
* Bazel client: split CanAccess to specific methodsGravatar Laszlo Csomor2017-01-11
| | | | | | | | | | | | | | The new methods (CanReadFile, CanExecuteFile, CanAccessDirectory) are a lot easier to implement on Windows than a generic CanAccess. On POSIX these methods are just a wrapper around the now static-visible CanAccess(). See https://github.com/bazelbuild/bazel/issues/2107 -- PiperOrigin-RevId: 144176710 MOS_MIGRATED_REVID=144176710
* Description redacted.Gravatar Julio Merino2016-12-09
| | | | | | -- PiperOrigin-RevId: 141483567 MOS_MIGRATED_REVID=141483567
* Add SearchUnaryOptions and SearchNullaryOptions to improve the parsingGravatar Luis Fernando Pino Duque2016-12-09
| | | | | | | | | | | | of the startup options. This allows us to do the following: - Avoid using the product name when reporting startup option parsing errors. - Passing --bazelrc as a command argument throws an error (fix for issue #1659). -- PiperOrigin-RevId: 141445030 MOS_MIGRATED_REVID=141445030
* Bazel client: platform-specific {Read,Write}FileGravatar Laszlo Csomor2016-11-28
| | | | | | | | | | | | | | | | Move blaze::ReadFile and blaze::WriteFile to file.h and file_platform.h (thus into the blaze_util namespace), and update references. This allows us to implement these methods in a platform-specific way. Also move UnlinkPath. See https://github.com/bazelbuild/bazel/issues/2107 -- MOS_MIGRATED_REVID=140328273
* Adds logging functionality to the bazel client, which will be activated in a ↵Gravatar Chloe Calvarin2016-11-23
| | | | | | | later change. -- MOS_MIGRATED_REVID=139951184
* Bazel client: reduce dependency on POSIX APIGravatar Laszlo Csomor2016-11-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can now compile blaze_util_windows.cc with MSVC, yay! (when building //src:bazel --cpu=x64_windows_msvc -k). There are a lot of #ifdef's and TODOs so this is a modest victory for now. In this change: - change blaze::MakeDirectories to return bool instead of int, since that's how it was used anyway, and to expect the permission mask as unsigned int instead of mode_t, since the former is good enough and compatible with mode_t on POSIX while mode_t is not defined on Windows - move blaze::MakeDirectories into blaze_util_<platform> - implement envvar-handling in blaze_util_<platform> and use it everywhere See https://github.com/bazelbuild/bazel/issues/2107 -- MOS_MIGRATED_REVID=139887503
* Provide a SplitCommandLine method in the option processorGravatar Luis Fernando Pino Duque2016-11-21
| | | | | | | | | | | | | that takes a given command line args and splits it into the corresponding {binary, startup_args, command, command_args}. The purpose of this function is to help split the responsibilities of the ParseOptions function by processing the startup options independently (i.e. rc files detection and processing) from the command options. This will be combined with ParseOptions in a subsequent CL. -- MOS_MIGRATED_REVID=139773786
* Bazel client: wrap some POSIX functionsGravatar Laszlo Csomor2016-11-10
| | | | | | | | | | | | | | This change: - starts using blaze_util::CanAccess and blaze_util::PathExists instead of access(2) - implements and starts using blaze_util::GetCwd instead of getcwd(2) - implements and starts using blaze_util::ChangeDirectory instead of chdir(2) - adds tests for the new wrapper methods -- MOS_MIGRATED_REVID=138750297
* cpp: header hygienizationGravatar Thiago Farina2016-10-18
| | | | | | | | | | | * remove "using std::" declarations from header files * add missing "std::" to some string declarations at some header files * add "using std::string;" to some source files where necessary -- Change-Id: Ib64f62b5add499d6171fa922227194ac992fa542 Reviewed-on: https://bazel-review.googlesource.com/#/c/6630/ MOS_MIGRATED_REVID=136355671
* Roll-forward of the startup options refactoring.Gravatar Julio Merino2016-09-15
| | | | | | | | | | | | | | | This CL is a verbatim reproduction of the following CLs, modulo adjustments to cope with changes at HEAD: * commit 4a45d92130a6b1306a3840d006df165b8040a6cf: Use inheritance to support site-specific options. * commit dfb2c73eda3d2dd8787ea9b2d0a03b49dfa2acc5: Inject the product name via the per-product main.cc files. * unknown commit: Remove the internal/external startup_options duality. The cause that triggered the rollbacks was fixed separately in commit 69a8d7205287bedf3a6140ec9327e2fad1758c22 as prepartory work for this roll-forward, so things should work now. -- MOS_MIGRATED_REVID=133139218
* Rollback of startup options changes.Gravatar Greg Estren2016-09-13
| | | | | -- MOS_MIGRATED_REVID=132940326
* Use inheritance to support site-specific options.Gravatar Julio Merino2016-09-09
| | | | | | | | | | | | | | | | | | Rename BlazeStartupOptions to StartupOptions and turn the latter into a class that can be subclassed to implement site-specific options behavior. This lends itself to easier customization for the site-specific versions, especially if there is more than one, and gets rid of the strange build-time parameterization of the old blaze_startup_options*.cc files. Note that this change introduces various TODOs. This is intentional. This change is quite complex as it is and I want to focus it on reshuffling the class structure without actually touching the internals. The latter can be done in subsequent, more targetted changes that are easier to review and understand. -- MOS_MIGRATED_REVID=132555032
* Update bazel's emacs check for 25.1's INSIDE_EMACS move.Gravatar Googler2016-09-01
| | | | | | | | | | History in https://github.com/emacs-mirror/emacs/blo[]f125aa3de06fa0180a83ec7b5a26970309eeeb6/etc/NEWS#L1769-L1773 RELNOTES: Emacs' [C-x `], a.k.a. next-error, works again in emacsen >= 25.1 -- MOS_MIGRATED_REVID=131851164
* Move the workspace-related functions out of blaze_startup_options.Gravatar Julio Merino2016-08-29
| | | | | | | | | | This change introduces a new workspace_layout module that collects all the static methods previously contained in the BlazeStartupOptions class. These methods are not part of the options so it doesn't make sense for them to be there. -- MOS_MIGRATED_REVID=131576959
* option_processor: fix bad TMP parsing on Windows/MSYS.Gravatar Laszlo Csomor2016-08-26
| | | | | | | | See GitHub issue #1684: https://github.com/bazelbuild/bazel/issues/1684#issuecomment-242401560 -- MOS_MIGRATED_REVID=131368104
* --Gravatar Luis Fernando Pino Duque2016-08-19
| | | | MOS_MIGRATED_REVID=130747105
* --Gravatar Luis Fernando Pino Duque2016-07-25
| | | | MOS_MIGRATED_REVID=128348972
* Fixed repository.which() on WindowsGravatar Yun Peng2016-07-15
| | | | | | | | | Also removed previous workaround in cc_configure.bzl -- Change-Id: I6dcd039fc5e18af8f2d21969641d6bbd05c8badc Reviewed-on: https://bazel-review.googlesource.com/#/c/4034 MOS_MIGRATED_REVID=127518922
* Make client-provided options an rc sourceGravatar Klaus Aehlig2016-04-21
| | | | | | | | | | | | | | | The client provides information about whether the terminal is a tty, and which width the output should be formatted for. Passing this information as explicit command-line arguments has the disadvantage that it overrides any setting in configuration files. While usually there is no one-size-fits-all value for terminal width, it doesn't make sense either to have an option where the user cannot set a default. Fix this by providing the client options as least imported rc-source. This is a roll-forward of commit 044adedc70de040475443e52eb1a3c692159790e -- MOS_MIGRATED_REVID=120338148
* Rollback of commit 044adedc70de040475443e52eb1a3c692159790eGravatar Googler2016-03-31
| | | | | -- MOS_MIGRATED_REVID=118605600
* Make client-provided options an rc sourceGravatar Klaus Aehlig2016-03-23
| | | | | | | | | | | | | | | The client provides information about whether the terminal is a tty, and which width the output should be formatted for. Passing this information as explicit command-line arguments has the disadvantage that it overrides any setting in configuration files. While usually there is no one-size-fits-all value for terminal width, it doesn't make sense either to have an option where the user cannot set a default. Fix this by providing the client options as least imported rc-source. -- Change-Id: Iad9eddbb3ff1777f4b423053e21aeac9fd7c466f Reviewed-on: https://bazel-review.googlesource.com/#/c/3092 MOS_MIGRATED_REVID=117833645
* cpp: fix the path to BlazeServerStartupOptions file in a commentGravatar Thiago Farina2016-03-21
| | | | | | | | | | While at it, fix a "the the" typo in another comment at option_processor.cc. -- Change-Id: I0ce6b320f3d3a50d53c8671d1b9dc80d5a2ace06 Reviewed-on: https://bazel-review.googlesource.com/#/c/3100/1 MOS_MIGRATED_REVID=117693263
* Don't parse the same .bazelrc file more than once. The old behavior is ↵Gravatar Nathan Harmata2015-12-21
| | | | | | | problematic if a .bazelrc file specifies an option that is allowed to be repeated, duplicates of that option are problematic (one example is http://bazel.io/docs/bazel-user-manual.html#flag--per_file_copt). -- MOS_MIGRATED_REVID=110689696
* Allow workspace-relative imports in .bazelrcGravatar Googler2015-12-03
| | | | | | | RELNOTES[NEW]: .bazelrc allows workspace-relative imports as "import %workspace%/path/to/rcfile" -- MOS_MIGRATED_REVID=109237460
* Rationalize copyright headersGravatar Damien Martin-Guillerez2015-09-25
| | | | | | | | | | | The headers were modified with `find . -type f -exec 'sed' '-Ei' 's|Copyright 201([45]) Google|Copyright 201\1 The Bazel Authors|' '{}' ';'` And manual edit for not Google owned copyright. Because of the nature of ijar, I did not modified the header of file owned by Alan Donovan. The list of authors were extracted from the git log. It is missing older Google contributors that can be added on-demand. -- MOS_MIGRATED_REVID=103938715
* Avoid command line argument mangling on Windows.Gravatar Dmitry Lomov2015-08-12
| | | | | | | | | | | | | | exec(3) under mingw converts every command line argument that looks like Unix path into Windows path when executing non-mingw images (criteria for non-mingw image is that the image does not depend on msys-<version>.dll). This affects bazel labels (`//foo:bar` becomes `/foo:bar` for example). This CL: 1) Replaces usage of execv(3) with Windows-native CreateProcess. 2) Converts all command line arguments that are indeed paths into Windows paths. -- MOS_MIGRATED_REVID=100386350
* Use custom util instead of std::to_string.Gravatar Googler2015-07-23
| | | | | | | std::to_string is not avcaliable on mingw. -- MOS_MIGRATED_REVID=98923935
* Support the --[no]master_bazelrc flagGravatar Damien Martin-Guillerez2015-06-25
| | | | | | | And get rid of usage of "blazerc" flags in our scripts. -- MOS_MIGRATED_REVID=96776423
* Added /etc/bazel.bazelrc as a global Bazel's master rc.Gravatar Damien Martin-Guillerez2015-06-15
| | | | | | | | | | This will allow system-wide configuration for system-wide installation of Bazel. -- Change-Id: I71b7232e648f2690766c3b9184f863dc888524c0 Reviewed-on: https://bazel-review.googlesource.com/#/c/1540/ MOS_MIGRATED_REVID=95994630
* Cleanup: Initialize field members through ctor initializer list.Gravatar Thiago Farina2015-06-12
| | | | | | | | | | | | | This seems to be a win as it avoids re-initialing the fields that have a default constructor (non-POD), besides being the best and idiomatic practice. More details in http://stackoverflow.com/a/9903927 -- Change-Id: I6c184e8a53b385756938084ec60aebc8184243a0 Reviewed-on: https://bazel-review.googlesource.com/#/c/1513/3 MOS_MIGRATED_REVID=95815524
* Support --bazelrc= syntax to specify rcfileGravatar Damien Martin-Guillerez2015-06-05
| | | | | | | | | | We still support the --blazerc syntax and don't use the product name for legacy reasons. Bazel should only refer to --bazelrc now. Fixes #229 -- MOS_MIGRATED_REVID=95282659
* Store RcFile pointers, rather than inline objects.Gravatar Han-Wen Nienhuys2015-05-22
| | | | | | | | | | | | | Since RcFile hands out pointers to its string members, modifying vector<RcFile> may cause reallocation, which invalidates handed out pointers. Fixes #205. -- Change-Id: Id4eb0a4e8a52373130140f1de5697f4e4f4a6f95 Reviewed-on: https://bazel-review.googlesource.com/#/c/1360/ MOS_MIGRATED_REVID=94276823
* Cleanup: Pass std::string arguments by reference (this avoids makingGravatar Thiago Farina2015-05-18
| | | | | | | | | | | | | unnecessary copies) and label them const, per the Google style guide. Tested: $ ./bootstrap_test.sh all -- Change-Id: I17636703cf43283f71b9b913c130a51065bd896b Reviewed-on: https://bazel-review.googlesource.com/1350 MOS_MIGRATED_REVID=93876332
* Remove hack for OSX javabaseGravatar Damien Martin-Guillerez2015-05-18
| | | | | | | Fixes #102 -- MOS_MIGRATED_REVID=93705078
* Header cleanups.Gravatar Han-Wen Nienhuys2015-04-22
| | | | | -- MOS_MIGRATED_REVID=91681168
* Update from Google.Gravatar Han-Wen Nienhuys2015-02-25
-- MOE_MIGRATED_REVID=85702957