Set c++ standard.

This commit is contained in:
ArthurSonzogni 2025-04-26 00:44:44 +02:00
parent 3184033f4d
commit 31ec197811
No known key found for this signature in database
GPG Key ID: 41D98248C074CD6C
2 changed files with 33 additions and 7 deletions

View File

@ -14,7 +14,9 @@
# - Support WebAssembly # - Support WebAssembly
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test") load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
load(":bazel/ftxui.bzl", "ftxui_cc_library", "generate_examples") load(":bazel/ftxui.bzl", "ftxui_cc_library")
load(":bazel/ftxui.bzl", "generate_examples")
load(":bazel/ftxui.bzl", "cpp20")
package(default_visibility = ["//visibility:public"]) package(default_visibility = ["//visibility:public"])
@ -241,6 +243,7 @@ cc_test(
"include", "include",
"src", "src",
], ],
copts = cpp20(),
deps = [ deps = [
"//:ftxui", "//:ftxui",
"@googletest//:gtest_main", "@googletest//:gtest_main",

View File

@ -2,6 +2,33 @@
load("@rules_cc//cc:defs.bzl", "cc_library") load("@rules_cc//cc:defs.bzl", "cc_library")
def cpp17():
return select({
"@rules_cc//cc/compiler:msvc-cl": ["/std:c++17"],
"@rules_cc//cc/compiler:clang-cl": ["/std:c++17"],
"@rules_cc//cc/compiler:clang": ["-std=c++17"],
"@rules_cc//cc/compiler:gcc": ["-std=c++17"],
"//conditions:default": ["-std=c++17"],
})
def cpp20():
return select({
"@rules_cc//cc/compiler:msvc-cl": ["/std:c++20"],
"@rules_cc//cc/compiler:clang-cl": ["/std:c++20"],
"@rules_cc//cc/compiler:clang": ["-std=c++20"],
"@rules_cc//cc/compiler:gcc": ["-std=c++20"],
"//conditions:default": ["-std=c++20"],
})
def utf8():
return select({
"@rules_cc//cc/compiler:msvc-cl": ["/utf-8"],
"@rules_cc//cc/compiler:clang-cl": ["/utf-8"],
"@rules_cc//cc/compiler:clang": ["-finput-charset=UTF-8"],
"@rules_cc//cc/compiler:gcc": ["-finput-charset=UTF-8"],
"//conditions:default": ["-finput-charset=UTF-8"],
})
def ftxui_cc_library( def ftxui_cc_library(
name, name,
srcs, srcs,
@ -9,11 +36,6 @@ def ftxui_cc_library(
linkopts = [], linkopts = [],
deps = []): deps = []):
cpp20 = select({
"@bazel_tools//tools/cpp:msvc": ["/std:c++20"],
"//conditions:default": ["-std=c++20"],
})
cc_library( cc_library(
name = name, name = name,
srcs = srcs, srcs = srcs,
@ -26,7 +48,7 @@ def ftxui_cc_library(
"include", "include",
"src", "src",
], ],
copts = cpp20, copts = cpp17() + utf8(),
visibility = ["//visibility:public"], visibility = ["//visibility:public"],
) )
@ -47,4 +69,5 @@ def generate_examples():
name = name, name = name,
srcs = [src], srcs = [src],
deps = ["//:component"], deps = ["//:component"],
copts = cpp20() + utf8(),
) )