mirror of
https://github.com/bazel-contrib/rules_foreign_cc
synced 2024-11-28 08:43:26 +00:00
9a261f7993
* 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
24 lines
827 B
C++
24 lines
827 B
C++
// Copyright 2016 The Bazel Authors. All rights reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#include <cmath>
|
|
#include <cstdlib>
|
|
#include <ctime>
|
|
#include <iostream>
|
|
|
|
int main(int argc, char* argv[]) {
|
|
std::cout << "Hello! sqrt(time) = " << std::sqrt(time(NULL)) << std::endl;
|
|
return EXIT_SUCCESS;
|
|
}
|