load( "@nix_config//:config.bzl", "CLANG", "CLANG_LIB", "CLANG_LIB_VERSION", "LLVM", "SDK_X86_64_PC_WINDOWS_MSVC", ) load("@rules_cc//cc:defs.bzl", "cc_toolchain") load("//bazel/toolchain_rules:llvm_cc_toolchain_config.bzl", "llvm_cc_toolchain_config") llvm_cc_toolchain_config( name = "cc_toolchain_config", archive_flags = [], builtin_executable_objects = [], builtin_include_directories = [ "{}/lib/clang/{}/include".format(CLANG_LIB, CLANG_LIB_VERSION), "{}/crt/include".format(SDK_X86_64_PC_WINDOWS_MSVC), "{}/sdk/include/ucrt".format(SDK_X86_64_PC_WINDOWS_MSVC), "{}/sdk/include/shared".format(SDK_X86_64_PC_WINDOWS_MSVC), "{}/sdk/include/um".format(SDK_X86_64_PC_WINDOWS_MSVC), "{}/sdk/include/winrt".format(SDK_X86_64_PC_WINDOWS_MSVC), ], builtin_libraries = [ "advapi32.lib", "bcrypt.lib", "kernel32.lib", "libcmt.lib", "libcpmt.lib", "libucrt.lib", "libvcruntime.lib", "ntdll.lib", "userenv.lib", "uuid.lib", "ws2_32.lib", ], builtin_library_directories = [ "{}/crt/lib/x86_64".format(SDK_X86_64_PC_WINDOWS_MSVC), "{}/sdk/lib/um/x86_64".format(SDK_X86_64_PC_WINDOWS_MSVC), "{}/sdk/lib/ucrt/x86_64".format(SDK_X86_64_PC_WINDOWS_MSVC), ], clang = CLANG, compile_flags = [ "-fno-exceptions", "-Werror", "-Wall", "-Wthread-safety", "-Wself-assign", ], dbg_compile_flags = [], dbg_link_flags = [], fastbuild_compile_flags = [], fastbuild_link_flags = [], link_flags = [ "/wx", # Treat warnings as errors ], llvm = LLVM, opt_compile_flags = [], opt_link_flags = [ "/opt:icf,ref", ], tags = ["manual"], target = "x86_64-pc-windows-msvc", ) cc_toolchain( name = "cc_toolchain", all_files = "@nix_config//:config.bzl", ar_files = "@nix_config//:config.bzl", as_files = "@nix_config//:config.bzl", compiler_files = "@nix_config//:config.bzl", coverage_files = "@nix_config//:config.bzl", dwp_files = "@nix_config//:config.bzl", linker_files = "@nix_config//:config.bzl", objcopy_files = "@nix_config//:config.bzl", strip_files = "@nix_config//:config.bzl", tags = ["manual"], toolchain_config = "cc_toolchain_config", ) toolchain( name = "toolchain", exec_compatible_with = [ "@platforms//cpu:x86_64", "@platforms//os:nixos", ], target_compatible_with = [ "@platforms//cpu:x86_64", "@platforms//os:windows", ], toolchain = ":cc_toolchain", toolchain_type = "@bazel_tools//tools/cpp:toolchain_type", )