From 31ec197811701767b65720ce0655b50b2dbbfb10 Mon Sep 17 00:00:00 2001 From: ArthurSonzogni Date: Sat, 26 Apr 2025 00:44:44 +0200 Subject: [PATCH] Set c++ standard. --- BUILD.bazel | 5 ++++- bazel/ftxui.bzl | 35 +++++++++++++++++++++++++++++------ 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/BUILD.bazel b/BUILD.bazel index df97147a..74d4ae41 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -14,7 +14,9 @@ # - Support WebAssembly 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"]) @@ -241,6 +243,7 @@ cc_test( "include", "src", ], + copts = cpp20(), deps = [ "//:ftxui", "@googletest//:gtest_main", diff --git a/bazel/ftxui.bzl b/bazel/ftxui.bzl index 0a42a7f5..aa0eb775 100644 --- a/bazel/ftxui.bzl +++ b/bazel/ftxui.bzl @@ -2,6 +2,33 @@ 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( name, srcs, @@ -9,11 +36,6 @@ def ftxui_cc_library( linkopts = [], deps = []): - cpp20 = select({ - "@bazel_tools//tools/cpp:msvc": ["/std:c++20"], - "//conditions:default": ["-std=c++20"], - }) - cc_library( name = name, srcs = srcs, @@ -26,7 +48,7 @@ def ftxui_cc_library( "include", "src", ], - copts = cpp20, + copts = cpp17() + utf8(), visibility = ["//visibility:public"], ) @@ -47,4 +69,5 @@ def generate_examples(): name = name, srcs = [src], deps = ["//:component"], + copts = cpp20() + utf8(), )