If a user specifies a PATH value as part of an `env` attribute, the
value will be prepended to the existing PATH.
An example requirement for this change is that the MSVC build of
OpenSSL requires that the Netwide Assembler (NASM) must be on the
PATH.
This change is required when using the MSVC toolchain on Windows,
as paths for tools such as the compiler contain whitespaces (e.g.
C:\Program Files\...)
Co-authored-by: UebelAndre <github@uebelandre.com>
* Convert MSVC flags by replacing slashes with dashes
This overcomes bugs in MSYS2 where leading slashes are converted to
paths, e.g. "/nologo" is converted to "C:\msys64\nologo".
This commit would modify the flag to become "-nologo". MSVC supports
both slashes and dashes for flags.
* Update foreign_cc/private/cc_toolchain_util.bzl
Co-authored-by: UebelAndre <github@uebelandre.com>
* Enable examples tests on windows
* Fixed windows absolute paths being treated as relative.
* Escape windows backslashes for sed replacement
* Improve `//cmake_hello_world_lib/static:libhello` example
* Refactor _env_prelude method to be public (589)
In an upcoming commit, the method will be used to set the PATH,
INCLUDE and LIB environment variables in Windows when building GNU
Make from source
* Build make from source on Windows (#589)
The built_tools_framework.bzl file was modified so that the PATH,
INCLUDE and LIB environment variables are set from the C++ toolchain,
e.g. MSVC.
The PATH environment variable is prepended with the path to the
toolchain's linker, otherwise the MSYS2 linker would be used instead
of MSVC (as they are both named link.exe).
* Fix tool_prefix for CMake.
Set the prefix before the first CMake invocation (where all the extra
flags are passed), and don't set the prefix for the `--build` and
`--install` invocations of CMake.
Fixes #685.
* Update test/cmake_text_tests.bzl
Co-authored-by: UebelAndre <github@uebelandre.com>
* Reduce the use of `use_default_shell_env` to windows
* Added helper macro for setting up the framework environment
* Apply suggestions from code review
Co-authored-by: James Sharpe <james.sharpe@zenotech.com>
* Allow action_env to take precedence over cc env
Co-authored-by: James Sharpe <james.sharpe@zenotech.com>
* Add config for building with spawn_strategy=standalone
* Always build RELEASE configuration to avoid having to select for the output due to change in artifact names for debug builds
* Fix for copy_contents_to_dir and symlink_contents_to_dir on macOS as per #512
* Update name of test files
* Added a new `platform_info` target to the foreign_cc framework
* Update foreign_cc/private/framework/platform.bzl
Co-authored-by: James Sharpe <james.sharpe@zenotech.com>
Co-authored-by: James Sharpe <james.sharpe@zenotech.com>
* Fix string escaping for cmake and configure/make
Use raw strings where possible to make readability slightly less maddening.
* Example usage of __TIME__
* Allow expansion of environment variables in HEREDOC for cmake crosstool
* Add compile check that __TIME__ is correctly redacted
* Ran buildifier
* Remove comment that is now invalid
Co-authored-by: James Sharpe <james.sharpe@zenotech.com>
* Enable more tests for RBE
* Turn off gn build for RBE
* Fix to make_simple example
* Turn off configure_with_bazel_transitive due to an issue with toolchain configuration
* Add CMAKE_MAKE_PROGRAM to generate_args
* Set CMP0074 policy for cmake to use the ZLIB_ROOT entry
* Disable libpng build on rbe
* Disable bison build on RBE
* Disable cmake_android example on RBE
* Fix typo in ZLIB_ROOT
* Reenable libpng build
* Address review comments
* Added `targets` API to all existing build rules
* Updated examples
* Restore making the make toolchain always available.
* Add support for generator cmake parsing and setting CMAKE_MAKE_PROGRAM
* Cleaned up duplicate generator arguments
* Fixed cmake tests
* Updated docs
* Addressed PR feedback
* Fixed missing and incorrect generators
* Fixed `generate_args` name