mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
This PR fixes issue #298. I am attempting to build Carbon using Bazel on Windows, without the need to go through WSL. This is still a work in progress, below is a list of issues I have discovered and my fixes for them. - Windows does not support Homebrew; however, I was able to properly install all of the required packages through [Chocolatey](https://chocolatey.org/). This was my first time using the Chocolatey package manager, yet it was fairly easy to use. I believe there are other options as well for Windows. - As is mentioned in issue #298, your Windows installation must be running in [Developer Mode](https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development). This will allow unprivileged users to create symlinks during the build process. - As it currently stands in trunk, clang_configuration.bzl will fail when attempting to run the method `_compute_clang_cpp_include_search_paths` on Windows. I have discovered that this is because Clang++.exe fails to execute if you provide it with an input file that does not exist. Thus, I have the build script generate an empty temp file in the Bazel repo for Clang to use when running the above method. - A cc toolchain specifically for Windows was created in clang_toolchain.BUILD. I simply mimicked what was done for other platforms, I apologize if this is incorrect since I am fairly new to Bazel. As I understand it, the next step is to configure clang_cc_toolchain_config.bzl to support the new Windows toolchain. I intend to continue working on this, however as I stated I am quite new so help is seriously appreciated! Co-authored-by: Jon Ross-Perkins <jperkins@google.com>
109 lines
2.6 KiB
INI
109 lines
2.6 KiB
INI
# Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
# Exceptions. See /LICENSE for license information.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
# This file is symlinked into a configured Clang toolchain repository as the
|
|
# root `BUILD` file for that repository.
|
|
|
|
load("@rules_cc//cc:defs.bzl", "cc_library", "cc_toolchain", "cc_toolchain_suite")
|
|
load(":cc_toolchain_config.bzl", "cc_toolchain_config")
|
|
|
|
cc_library(
|
|
name = "malloc",
|
|
)
|
|
|
|
filegroup(
|
|
name = "empty",
|
|
srcs = [],
|
|
)
|
|
|
|
cc_toolchain_suite(
|
|
name = "bazel_cc_toolchain",
|
|
toolchains = {
|
|
"darwin": ":cc-compiler-darwin",
|
|
"darwin_arm64": ":cc-compiler-darwin-arm64",
|
|
"k8": ":cc-compiler-k8",
|
|
"x64_windows": ":cc-compiler-x64-windows",
|
|
},
|
|
)
|
|
|
|
cc_toolchain(
|
|
name = "cc-compiler-k8",
|
|
all_files = ":empty",
|
|
ar_files = ":empty",
|
|
as_files = ":empty",
|
|
compiler_files = ":empty",
|
|
dwp_files = ":empty",
|
|
linker_files = ":empty",
|
|
objcopy_files = ":empty",
|
|
strip_files = ":empty",
|
|
supports_param_files = 1,
|
|
toolchain_config = ":local-k8",
|
|
toolchain_identifier = "local-k8",
|
|
)
|
|
|
|
cc_toolchain_config(
|
|
name = "local-k8",
|
|
target_cpu = "k8",
|
|
)
|
|
|
|
cc_toolchain(
|
|
name = "cc-compiler-darwin",
|
|
all_files = ":empty",
|
|
ar_files = ":empty",
|
|
as_files = ":empty",
|
|
compiler_files = ":empty",
|
|
dwp_files = ":empty",
|
|
linker_files = ":empty",
|
|
objcopy_files = ":empty",
|
|
strip_files = ":empty",
|
|
supports_param_files = 1,
|
|
toolchain_config = ":local-darwin",
|
|
toolchain_identifier = "local-darwin",
|
|
)
|
|
|
|
cc_toolchain_config(
|
|
name = "local-darwin",
|
|
target_cpu = "darwin",
|
|
)
|
|
|
|
cc_toolchain(
|
|
name = "cc-compiler-darwin-arm64",
|
|
all_files = ":empty",
|
|
ar_files = ":empty",
|
|
as_files = ":empty",
|
|
compiler_files = ":empty",
|
|
dwp_files = ":empty",
|
|
linker_files = ":empty",
|
|
objcopy_files = ":empty",
|
|
strip_files = ":empty",
|
|
supports_param_files = 1,
|
|
toolchain_config = ":local-darwin-arm64",
|
|
toolchain_identifier = "local-darwin-arm64",
|
|
)
|
|
|
|
cc_toolchain_config(
|
|
name = "local-darwin-arm64",
|
|
target_cpu = "darwin_arm64",
|
|
)
|
|
|
|
cc_toolchain(
|
|
name = "cc-compiler-x64-windows",
|
|
all_files = ":empty",
|
|
ar_files = ":empty",
|
|
as_files = ":empty",
|
|
compiler_files = ":empty",
|
|
dwp_files = ":empty",
|
|
linker_files = ":empty",
|
|
objcopy_files = ":empty",
|
|
strip_files = ":empty",
|
|
supports_param_files = 1,
|
|
toolchain_config = ":local-x64-windows",
|
|
toolchain_identifier = "local-x64-windows",
|
|
)
|
|
|
|
cc_toolchain_config(
|
|
name = "local-x64-windows",
|
|
target_cpu = "x64_windows",
|
|
)
|