2
0
Fork 0
mirror of https://github.com/bazel-contrib/rules_foreign_cc synced 2024-11-28 08:43:26 +00:00
Commit graph

503 commits

Author SHA1 Message Date
UebelAndre 66f92457fd
Fixed docs (#828) 2021-12-03 08:21:31 -08: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
Fabian Meumertzheim 1a262c9411
Let make build in BUILD_TMPDIR (#818)
configure_make already used BUILD_TMPDIR whereas make did not.
2021-11-24 23:24:29 +00: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
James Sharpe 1327fa3d4c
CMake 3.21.3, 3.21.4 and 3.22.0 support (#815) 2021-11-19 00:27:40 +00:00
James Sharpe eaf1092368
Explicitly turn off guile support in built version of GNU make (#814) 2021-11-18 23:30:30 +00:00
UebelAndre 83ab86e632
Updated pcre example (#809)
* Updated `pcre` example

* Disable failing Bison test
2021-11-17 09:51:25 -08:00
UebelAndre e97f24e701
Updated bazel_skylib, rules_cc and rules_python (#801) 2021-10-19 16:28:21 +00:00
UebelAndre cbfe9c0600
Update min tested Bazel version to 4.0.0 (#802) 2021-10-19 09:15:00 -07:00
UebelAndre 0ae6a6d75a
Added libgit2 Google mirror (#800) 2021-10-19 08:54:17 -07:00
Daniel Wagner-Hall ec9c9a4612
Expand make variables in env (#788) 2021-10-19 07:51:53 -07:00
UebelAndre 091dc5d381
Updated libgit2 example (#799) 2021-10-18 12:29:00 -07:00
Fabian Meumertzheim d93bd96dc7
Add flags from copts and linkopts attributes (#796) 2021-10-05 07:07:10 -07:00
UebelAndre a7105dafb0
Updated rules_cc and bazel_skylib versions (#795) 2021-09-30 23:34:16 +00:00
Keith Smiley 6c0c2af3d5
Improve failed exports logic (#789) 2021-09-22 00:35:40 +00:00
UebelAndre 7da37f815b
Release 0.6.0 docs (#785)
* Release 0.6.0

* Release 0.6.0 docs
2021-09-13 09:35:46 -07:00
UebelAndre 6e68116ab5
Release 0.6.0 (#784) 2021-09-13 09:21:24 -07:00
Fabian Meumertzheim fde2581fab
Resolve symlinks among output binaries (#781)
Certain (C)Make projects (such as [AFL++](https://github.com/AFLplusplus/AFLplusplus)) emit binaries that are symlinks to other emitted binaries. When built with `rules_foreign_cc`, this can lead to non-deterministic dangling symlink errors since Bazel visits the outputs in an unspecified order. This is fixed by resolving symlinks among the emitted binaries, just like it is already done for libraries.
2021-09-06 15:01:16 +01:00
James Sharpe 8f6fc67384
Add cmake version 3.21.2 (#778) 2021-08-28 21:16:01 +01:00
Keith Smiley da8952e27c
Fix building for iOS (#767) 2021-08-21 08:55:10 +01:00
Keith Smiley 4ee863c1fc
Fix building without sandboxing (#769)
Since 466c32c70f any changes you made
while testing rules_foreign_cc, or changes to those rules, would not
invalidate the CMakeCache.txt and lead to build issues. It wasn't the
case before that because new temp dirs were used each time.
2021-08-20 09:33:10 +01:00
UebelAndre be72696944
Added support for Visual Studio 2022 (#758) 2021-08-18 13:07:49 +00:00
jheaff1 776f199f5d
Add log4cxx example to CI (#762)
Co-authored-by: UebelAndre <github@uebelandre.com>
2021-08-18 06:00:17 -07:00
David Marcin 3f61e246a3
Pass all tags to execution_requirements (#765) 2021-08-18 10:21:17 +01:00
UebelAndre 6d5dbf02f7
Move more example build config into example BUILD files (#763) 2021-08-17 14:05:12 +00:00
UebelAndre 9bfb4d7da6
Added CMake 3.21.1 (#757) 2021-08-17 13:49:18 +00:00
jheaff1 4febcea0b6
add expat dep to apr_util build (#750) (#753)
The build of apr_util would previously fail if expat libs and headers
were not preinstalled in the build environment.
2021-08-17 13:19:51 +00:00
UebelAndre e949e77629
Temporarily disable broken windows targets (#764) 2021-08-17 06:08:28 -07:00
jheaff1 f01fd353ee
Build apr for MSVC on Windows (#743) 2021-08-05 19:40:20 +01:00
jheaff1 3b72ab3468
Re-add setting of PREFIX variable in make invocation (#751) 2021-08-03 06:11:07 -07:00
UebelAndre db153c65c3
Added 0.5.1 docs (#748) 2021-07-30 14:35:21 +00:00
UebelAndre eb56038baa
Release 0.5.1 (#747) 2021-07-30 07:30:59 -07:00
UebelAndre 86979c9ece
Fix missing parameter (#746) 2021-07-30 09:09:06 +01:00
UebelAndre 4b024daf42
Updated 0.5.0 docs (#741) 2021-07-29 14:34:12 +00:00
UebelAndre 5accf6c25d
Release 0.5.0 (#740) 2021-07-29 14:30:52 +00:00
jheaff1 1cc0f074f4
Remove "GNU" prefix to Make (#744) 2021-07-29 06:13:26 -07:00
James Sharpe bad4ab0c3d
Fix quoting for cmake (#703) 2021-07-28 18:12:53 +01:00
UebelAndre 2eb510b5c6
Added <rule>_variant rules to docs (#739) 2021-07-28 09:18:48 -07:00
UebelAndre 3d97bed4a2
Added Google mirrors for new openssl repositories (#738) 2021-07-28 09:00:48 -07:00
UebelAndre bf6d54c470
Updated version of openssl (#737) 2021-07-28 15:46:08 +00:00
jheaff1 5163c3cec8
Build OpenSSL using MSVC toolchain on Windows (#729)
* build OpenSSL using MSVC toolchain on Windows

* Display lib name in progress message

Before this commit, when building OpenSSL using MSVC, the progress
message would display "Building openssl_msvc_".

After this commit, the progess message would display
"Building openssl".

* Add test to verify linkage with OpenSSL libs

* Add test to verify linkage with Curl libs

Note that linker errors occur in applications that link with libssl
and libcrypto if libcrypto comes before libssl on the linker
command-line. Swapping the order of libcrypto and libssl in
BUILD.openssl.bazel resolved the issue.
2021-07-28 08:13:03 -07:00
jheaff1 2e61d9588a
Add <rule>_variant macros (#734)
The macros utilise bazel "transitions" to set the `make` toolchain used
in the configure_make(), cmake() or make() rules to
a given make variant toolchain, e.g. preinstalled_nmake.

Note that the msvc constraint was removed from the
`exec_compatible_with` attribute of `preinstalled_nmake_toolchain` as
the condition is not actually met even when building with msvc. See
https://github.com/bazelbuild/bazel/issues/7730.

This will be tested in PR#729
2021-07-28 15:30:04 +01:00
jheaff1 b51f25ee62
Prepend user-specified PATH to existing PATH (#733)
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.
2021-07-22 20:30:25 +01:00
jheaff1 c7330faee5
Wrap tool paths that contain whitespaces in quotes (#732)
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>
2021-07-20 16:44:33 +00:00
jheaff1 919d65bb06
Convert MSVC flags by replacing slashes with dashes (#731)
* 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>
2021-07-20 16:42:29 +00:00
UebelAndre 41f24f3a2f
Added consistent use of expand_locations to all rules. (#722)
* Added consistent use of `expand_locations` to all rules.

* Use variable expansion syntax from the framework.
2021-07-19 19:44:21 +00:00
UebelAndre 82ec80e810
Updated code owners file (#688)
Co-authored-by: James Sharpe <james.sharpe@zenotech.com>
2021-07-19 18:43:46 +00:00