Commit Graph

111 Commits

Author SHA1 Message Date
Donald Stufft c62e551f9f
Set the LD environment variable (#1068)
Co-authored-by: James Sharpe <james.sharpe@zenotech.com>
2023-10-14 14:38:09 +00:00
James Sharpe 26c7700830
Create hub repo for shell framework toolchains (#1066)
This simplifies the registration of the shell framework toolchains in
bzlmod.
2023-06-28 09:20:01 +00:00
Isaac Torres ea7ed42949
fix linux cross compiling on macos (#1062)
Fixes cross-compiling from macos to linux.

see #997 for background.

I had to make a couple of extra changes to support this:

Setting CMAKE_SYSTEM_NAME manually causes CMAKE_SYSTEM_PROCESSOR to not be set. This breaks some builds that expect this variable to be set like libjpeg-turbo.
I made it so that the above variables are only set when cross-compilation is detected so that rules_foreign_cc only takes on responsibility of setting them when necessary.
2023-06-27 23:16:22 +01:00
Filip Filmar d74623f0ad
Adds some documentation specific to the `make` rule. (#1050) 2023-06-13 22:22:52 +00:00
DolceTriade 4f0b6b8159
Allow selecting individual outputs from a rule (#1056)
Co-authored-by: James Sharpe <james.sharpe@zenotech.com>
2023-06-13 23:00:52 +01:00
jheaff1 3cbd0a9938
Add meson support (#986)
* Add meson support

* Modify zlib to be detected via pkgconfig in dependent rules

* Modify zlib and expat to be linked to shared libs in dependent rules

* Add example usage of Meson rule

This commit adds the glib library to the "examples" build. glib requires
pcre2, so pcre and libgit2 (a dependent of pcre) have been
updated/modified

* Add example usage of meson_with_requirements macro

This commit adds mesa to the "examples" build.

This commit also changes the "examples" build to use the hermetic python
toolchain provided by rules_foreign_cc. As such, the python toolchain
built by rules_foreign_cc is no longer used, as it cannot be used in
workspace rules, .e.g pip_parse(). As such, the python2 build has been
removed from the examples as python2 is end-of-life.

Until Bazel 4.2.0, the built-in android toolchain required Python 2. As
such the minimum supported version has been upversioned to 4.2.0.

Note that the BAZEL_VC env var was removed from CI as mesa requires MSVC
2019.

* Set visibility for each target in foreign_cc_rule_variant

* Apply formatting changes

* Get meson examples working with bzlmod

Note that a newer version of pkgconfig than that installed in ubuntu 20
must be used to build libxau, therefore the built_pkgconfig_toolchain is
now registered
2023-06-09 11:29:12 +01:00
Gary Miguel 12ecb0419a
Specify path to sed on MacOS and FreeBSD (#961)
Co-authored-by: James Sharpe <james.sharpe@zenotech.com>
2023-05-10 19:37:44 +00:00
Jeremy Volkman 020854719e
Pass must_keep_debug = False to cc_common.create_link_variables (#1046) 2023-04-26 09:27:11 +01:00
lifengxiang1025 c327fbfdab
installdir_copy seems meaningless as output (#1038)
Co-authored-by: James Sharpe <james.sharpe@zenotech.com>
2023-04-23 19:19:20 +00:00
Wangchong Zhou 1023d7ed6b
Use python3 instead of python2 in macos commands (#1037) 2023-04-11 14:14:24 +01:00
Zhongpeng Lin 798242e04d
Disable coverage when a C library is not instrumented (#1021) 2023-02-28 23:26:33 +00:00
Keith Smiley b7074f111e
Fix cross compiling for android on macOS (#997) 2023-02-22 22:01:22 +00:00
James Sharpe 7914d08e12
Add dependency shared libs to sandbox (#990)
Co-authored-by: jheaff1 <jheaff1@outlook.com>
2023-02-21 14:23:17 +00:00
James Sharpe 4d4a678974
Fix pkgconfig built by MSVC on Windows (#992)
Co-authored-by: jheaff1 <jheaff1@outlook.com>
2023-02-21 11:43:07 +00:00
Richard O'Grady 1e66c02ea8
Disable fdo features. (#1002) 2023-01-25 21:40:30 +00:00
Keith Smiley 9acbb35691
Update buildifier (#998) 2023-01-06 19:56:01 +00:00
James Sharpe 15ef44c443
Add runfiles of dependency tools to the build (#994)
Co-authored-by: jheaff1 <jheaff1@outlook.com>
2023-01-03 16:07:20 +00:00
James Sharpe 2094b4ab82
Rename make_variant to foreign_cc_rule_variant (#993)
Co-authored-by: jheaff1 <jheaff1@outlook.com>
2023-01-03 11:50:47 +00:00
James Sharpe 41c937a7a9
Fix runnable_binary_wrapper when used as a tool in a dependant rule (#991)
Co-authored-by: jheaff1 <jheaff1@outlook.com>
2023-01-03 11:26:05 +00:00
jheaff1 0ed27c13b1
Add toolchain executables to the PATH (#987) 2022-12-10 20:16:40 +00:00
jheaff1 2c6262f8f4
Hermetic pkg config (#979) 2022-11-09 11:54:39 +00:00
jheaff1 6425a21252
Reduce build times (especially on windows) by symlinking directories (#983) 2022-11-09 00:14:43 +00:00
jheaff1 dd1e2850bd
Add macro that faciliates "bazel run" of binary generated by rules_foreign_cc (#971)
Co-authored-by: James Sharpe <james.sharpe@zenotech.com>
2022-11-03 21:24:31 +00:00
cmburn eb83556a59
Add prefix flag config option to make_configure (#973) 2022-11-03 21:17:01 +00:00
jheaff1 cfe19aae68
Add ability to specify DLL dir (#939) 2022-07-27 16:46:15 +00:00
jheaff1 21b0c40493
Add tool runfiles to action (#942) 2022-07-26 09:47:53 +01:00
Randolf J 5a0f5739f7
Fix `RANLIB` for `configure_make` (#928) 2022-06-23 04:15:53 +00:00
george-enf b1e65fec98
fix replace_in_files for file names with spaces (#923) 2022-06-19 13:59:50 +00:00
graywolf-at-work 5d391cfe9d
Make tests pass on busybox (#912)
-t option to ln is not defined under POSIX and (at least) busybox does
not implement it. Rewrite the code to use only POSIX options to ln.
2022-05-26 22:24:17 +00:00
Keith Smiley e0590b50e4
Set CMAKE_OSX_ARCHITECTURES to target architecture (#891) 2022-04-16 17:19:01 +01:00
James Sharpe 4aa243d4db
Fixups to use of Labels to support bzlmod (#872) 2022-04-07 16:44:38 +01:00
James Sharpe f54068e889
Add 3.22.2 and 3.21.5 (#875) 2022-02-20 17:06:56 -08:00
jheaff1 33bce66655
Absolutise path to cmake crosstool file (#870) 2022-02-09 23:15:54 +00:00
Fabian Meumertzheim 26eadbcd0d
Replace `escape_locations` with `escape_locations_and_make_variables` everywhere (#861)
Co-authored-by: James Sharpe <james.sharpe@zenotech.com>
2022-02-09 22:34:12 +00:00
Fabian Meumertzheim f0047ba2f5
Do not set user defined env variables twice for (c)make (#860) 2022-02-08 23:05:33 +00:00
Fabian Meumertzheim 50ee9979e6
Remove arbitrary limits in Starlark "while" loops (#862) 2022-01-21 21:05:18 +00:00
James Sharpe e24d9cecfe
Allow all source files to be modified in configure_make when using configure_in_place = True (#856) 2022-01-10 09:48:37 +00:00
James Sharpe ae4ff42901
More quoting fixes for handling paths with spaces (#850) 2022-01-02 16:42:56 +00:00
James Sharpe 3c14ef4a73
Initial bzlmod support (#839) 2022-01-01 21:07:29 +00:00
James Sharpe 818cdb197e
Fix quoting to support spaces in paths with files that need replacements (#842) 2022-01-01 20:48:37 +00:00
James Sharpe 029314b890
Fix typo in comment (#840) 2021-12-18 19:43:32 +00:00
Eric Astor ebfeaa08f8
Support propagation of `includes` (#826) 2021-12-04 21:29:47 +00:00
Fabian Meumertzheim 0cf751c053
Bootstrap make reproducibly (#817)
* Make cc_toolchain_utils.bzl more reusable

By using getattr, the helper functions in this file can be reused in
rules that do not define all of the framework attributes, e.g. bootstrap
rules.

* Bootstrap make reproducibly on Linux and macOS

Uses the Bazel C/C++ toolchain to bootstrap make and ensure that the
resulting binary contains no absolute and thus non-hermetic paths.

Building make reproducibly helps with remote caching and removes the
dependency on a C compiler installed on the host.
2021-11-30 15:58:53 +00:00
Yesudeep Mangalapilly a2f1e5d8c3
Adds toolchain for freebsd. (#794)
* Adds toolchain for freebsd.

* Address buildifier lint warnings.

* Use /usr/bin/env bash

* Leave the Linux-specific shebang alone.

* Adds note about Bazel CI issue requesting for FreeBSD support and experimental status.

* Fix typo.

* Clean up trailing whitespace.

* Updates bazel-skylib version for tests to pass on FreeBSD.

* Update foreign_cc/repositories.bzl

Co-authored-by: UebelAndre <github@uebelandre.com>
2021-11-29 10:54:06 +00:00
Fabian Meumertzheim f61ce5d10b
Pass toolchain and user env variables to make invocation (#777)
* Pass toolchain and user env variables to make invocation

* Rename configure --> make

* Add integration test coverage for make flag passing

This requires making the make_simple Makefile more realistic by

* using CXX and forwarding it to the wrapper;
* using CXXFLAGS instead of CXX_FLAGS and not overwriting its contents.
2021-11-27 07:52:54 -08:00
jheaff1 7205619704
Ensure Windows paths used by CMake contain forward slashes only (#807) 2021-11-22 19:53:28 +00:00
James Sharpe 7baefc1a8c
Autotools examples (#754)
* Build files for autotools tools
* m4 1.4.19
2021-11-19 00:56:08 +00:00
Daniel Wagner-Hall ec9c9a4612
Expand make variables in env (#788) 2021-10-19 07:51:53 -07:00
Fabian Meumertzheim d93bd96dc7
Add flags from copts and linkopts attributes (#796) 2021-10-05 07:07:10 -07:00
Keith Smiley 6c0c2af3d5
Improve failed exports logic (#789) 2021-09-22 00:35:40 +00:00