2
0
Fork 0
mirror of https://github.com/bazel-contrib/rules_foreign_cc synced 2024-12-04 08:02:31 +00:00
rules_foreign_cc/examples/cmake_crosstool
irengrig 9a261f7993
Crosstool example + fixes (#174)
* Add crosstool example; does not work with cmake rule yet

the code is taken from Bazel test data (bazel_toolchain_test_data)

* Make crosstool compilation of cmake_external + cc_binary work

To build example, cd examples/cmake_crosstool bazel build //:libhello_test

Changes:
1) Initially suggested in #124: put $EXT_BUILD_ROOT on path, so that relative paths can be resolved by CMake
2) Toolchain tools are references as relative paths, and they themselves refer to external repository with external/ prefix.
This will not work with CMake, as CMake also perform compiler tests and the build is performed in some temp directory.
We need to convert to absolute paths.
I did a trick with checking of $EXT_BUILD_ROOT is defined and then using it as a prefix.
3) I had to change the visibility of the cc-compiler-k8 toolchain to public
4) For CMake crosstool file, CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, CMAKE_AR need to be absolute, so in cases when they are relative and not under external directory, force paths conversion
2018-12-06 18:14:00 +01:00
..
compilers Crosstool example + fixes (#174) 2018-12-06 18:14:00 +01:00
static Crosstool example + fixes (#174) 2018-12-06 18:14:00 +01:00
tools/arm_compiler Crosstool example + fixes (#174) 2018-12-06 18:14:00 +01:00
.bazelrc Crosstool example + fixes (#174) 2018-12-06 18:14:00 +01:00
BUILD Crosstool example + fixes (#174) 2018-12-06 18:14:00 +01:00
hello.cc Crosstool example + fixes (#174) 2018-12-06 18:14:00 +01:00
WORKSPACE Crosstool example + fixes (#174) 2018-12-06 18:14:00 +01:00