This is an automated email from the ASF dual-hosted git repository.

twice pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-fury.git


The following commit(s) were added to refs/heads/main by this push:
     new 9e878517 [C++] Windows build support (#1294)
9e878517 is described below

commit 9e8785178523840d652d64123baa5eeb421b1347
Author: LiangliangSui <[email protected]>
AuthorDate: Wed Jan 3 22:51:47 2024 +0800

    [C++] Windows build support (#1294)
    
    When compiled using Windows bazel, the following error occurs:
    
    ```
    cl: 命令行 warning D9002 :忽略未知选项“-pthread”
    cl: 命令行 warning D9002 :忽略未知选项“-std=c++17”
    time_util.cc
    src/fury/util/time_util.cc(43): warning C4477: “snprintf”: 
格式字符串“%03ld”需要类型“long”的参数,但可变参数 1 拥有了类型“_Rep”        with
            [
                _Rep=__int64
            ]
    src/fury/util/time_util.cc(43): note: 请考虑在格式字符串中使用“%lld”
    src/fury/util/time_util.cc(43): note: 请考虑在格式字符串中使用“%Id”
    src/fury/util/time_util.cc(43): note: 请考虑在格式字符串中使用“%I64d”
    INFO: From Compiling absl/debugging/failure_signal_handler.cc:
    failure_signal_handler.cc
    INFO: From Compiling absl/strings/str_replace.cc:
    str_replace.cc
    INFO: From Compiling absl/strings/match.cc:
    match.cc
    INFO: From Compiling absl/strings/internal/stringify_sink.cc:
    stringify_sink.cc
    ERROR: C:/users/sui/desktop/incubator-fury/src/fury/util/BUILD:5:11: 
Compiling src/fury/util/buffer.cc failed: (Exit 2): cl.exe failed: error 
executing CppCompile command (from target //src/fury/util:fury_util) C:\Program 
Files (x86)\Microsoft Visual
    Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\bin\HostX64\x64\cl.exe 
@bazel-out/x64_windows-opt/bin/src/fury/util/_objs/fury_util/buffer.obj.params
    cl: 命令行 warning D9002 :忽略未知选项“-pthread”
    cl: 命令行 warning D9002 :忽略未知选项“-std=c++17”
    buffer.cc
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(31):
 error C7525: 内联变量至少
    需要 "/std:c++17"
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(50):
 error C3533: 参数不能为包
    含“auto”的类型
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(50):
 note: 非类型模板参数中的“auto”至少需要“/std:c++17”
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(50):
 error C3533: 参数不能为包
    含“auto”的类型
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(50):
 note: 非类型模板参数中的“auto”至少需要“/std:c++17”
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(51):
 error C7525: 内联变量至少
    需要 "/std:c++17"
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(55):
 error C3533: 参数不能为包
    含“auto”的类型
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(55):
 note: 非类型模板参数中的“auto”至少需要“/std:c++17”
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(55):
 error C3533: 参数不能为包
    含“auto”的类型
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(55):
 note: 非类型模板参数中的“auto”至少需要“/std:c++17”
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(56):
 error C7525: 内联变量至少
    需要 "/std:c++17"
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(59):
 error C3533: 参数不能为包
    含“auto”的类型
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(59):
 note: 非类型模板参数中的“auto”至少需要“/std:c++17”
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(61):
 error C3533: 参数不能为包
    含“auto”的类型
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(61):
 note: 非类型模板参数中的“auto”至少需要“/std:c++17”
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(61):
 error C3533: 参数不能为包
    含“auto”的类型
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(61):
 note: 非类型模板参数中的“auto”至少需要“/std:c++17”
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(66):
 error C3533: 参数不能为包
    含“auto”的类型
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(66):
 note: 非类型模板参数中的“auto”至少需要“/std:c++17”
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(97):
 error C7525: 内联变量至少
    需要 "/std:c++17"
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(105):
 error C7525: 内联变量至少
    需要 "/std:c++17"
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(108):
 error C7525: 内联变量至少
    需要 "/std:c++17"
    
bazel-out/x64_windows-opt/bin/src/fury/meta/_virtual_includes/fury_meta\fury/meta/type_traits.h(120):
 error C7525: 内联变量至少
    需要 "/std:c++17"
    Target //src/fury/util:fury_util failed to build
    Use --verbose_failures to see the command lines of failed build steps.
    INFO: Elapsed time: 13.649s, Critical Path: 2.07s
    INFO: 42 processes: 6 internal, 36 local.
    ERROR: Build did NOT complete successfully
    ```
    
    
    The root cause is that in Windows, specifying C++17 requires the use of
    `/std:c++17`, while in unix/linux systems, use `-std=c++17`.
    Since the operating system name cannot be determined in fury.bzl to
    dynamically set COPTS, so I moved them to .bazelrc.
    
    Later, I will solve the warnings generated by compiling in windows, for
    example `src/fury/util/time_util.cc(43): note: 请考虑在格式字符串中使用“%lld”`.
    
    Signed-off-by: LiangliangSui <[email protected]>
    Co-authored-by: Twice <[email protected]>
---
 .bazelrc                  | 5 +++--
 BUILD                     | 5 -----
 bazel/fury.bzl            | 1 -
 src/fury/BUILD            | 2 --
 src/fury/columnar/BUILD   | 4 ----
 src/fury/encoder/BUILD    | 3 ---
 src/fury/meta/BUILD       | 5 -----
 src/fury/row/BUILD        | 3 ---
 src/fury/thirdparty/BUILD | 2 --
 src/fury/util/BUILD       | 6 ------
 10 files changed, 3 insertions(+), 33 deletions(-)

diff --git a/.bazelrc b/.bazelrc
index 377c4787..d7099e0a 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -18,6 +18,7 @@ test --build_tests_only
 test --cache_test_results=no
 test --test_output=all
 
-build:linux --cxxopt="-std=c++17"
-build:macos --cxxopt="-std=c++17"
+build:linux --cxxopt="-std=c++17" --linkopt="-pthread"
+build:macos --cxxopt="-std=c++17" --linkopt="-pthread"
 build:clang-cl --cxxopt="-std=c++17"
+build:windows --cxxopt="/std:c++17"
diff --git a/BUILD b/BUILD
index 64066de3..25fb842e 100644
--- a/BUILD
+++ b/BUILD
@@ -1,6 +1,5 @@
 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
 load("@com_github_grpc_grpc//bazel:cython_library.bzl", "pyx_library")
-load("//bazel:fury.bzl", "COPTS")
 
 
 pyx_library(
@@ -12,7 +11,6 @@ pyx_library(
         "python/pyfury/__init__.py",
     ]),
     cc_kwargs = dict(
-        copts = COPTS,
         linkstatic = 1,
     ),
     deps = [
@@ -28,7 +26,6 @@ pyx_library(
         "python/pyfury/lib/mmh3/__init__.py",
     ]),
     cc_kwargs = dict(
-        copts = COPTS,
         linkstatic = 1,
     ),
     deps = [
@@ -45,7 +42,6 @@ pyx_library(
         "python/pyfury/__init__.py",
     ]),
     cc_kwargs = dict(
-        copts = COPTS,
         linkstatic = 1,
     ),
     deps = [
@@ -66,7 +62,6 @@ pyx_library(
         "python/pyfury/format/*.pxi",
     ]),
     cc_kwargs = dict(
-        copts = COPTS,
         linkstatic = 1,
     ),
     deps = [
diff --git a/bazel/fury.bzl b/bazel/fury.bzl
deleted file mode 100644
index bd8eb8a0..00000000
--- a/bazel/fury.bzl
+++ /dev/null
@@ -1 +0,0 @@
-COPTS = ["-pthread","-std=c++17"]
diff --git a/src/fury/BUILD b/src/fury/BUILD
index 768846eb..91e05bc5 100644
--- a/src/fury/BUILD
+++ b/src/fury/BUILD
@@ -1,9 +1,7 @@
 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
-load("//bazel:fury.bzl", "COPTS")
 
 cc_library(
     name = "fury",
-    copts = COPTS,
     deps = [
       "@local_config_pyarrow//:arrow",
       "//src/fury/row:fury_row_format",
diff --git a/src/fury/columnar/BUILD b/src/fury/columnar/BUILD
index ba2abb57..489e3c74 100644
--- a/src/fury/columnar/BUILD
+++ b/src/fury/columnar/BUILD
@@ -1,12 +1,10 @@
 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
-load("//bazel:fury.bzl", "COPTS")
 
 cc_library(
     name = "fury_columnar_format",
     srcs = ["arrow_writer.cc"],
     hdrs = ["arrow_writer.h"],
     strip_include_prefix = "/src",
-    copts = COPTS,
     deps = [
       "@local_config_pyarrow//:arrow", "//src/fury/util:fury_util", 
"//src/fury/row:fury_row_format"
     ],
@@ -18,7 +16,6 @@ cc_test(
     srcs = [
         "arrow_writer_test.cc",
     ],
-    copts = COPTS,
     deps = [
         ":fury_columnar_format",
         "@com_google_googletest//:gtest",
@@ -30,7 +27,6 @@ cc_test(
     srcs = [
         "convert_test.cc",
     ],
-    copts = COPTS,
     deps = [
         ":fury_columnar_format",
         "@com_google_googletest//:gtest",
diff --git a/src/fury/encoder/BUILD b/src/fury/encoder/BUILD
index e6b3b26f..adf927e9 100644
--- a/src/fury/encoder/BUILD
+++ b/src/fury/encoder/BUILD
@@ -1,5 +1,4 @@
 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
-load("//bazel:fury.bzl", "COPTS")
 
 cc_library(
     name = "fury_encoder",
@@ -11,14 +10,12 @@ cc_library(
       "//src/fury/row:fury_row_format",
       "//src/fury/meta:fury_meta"
     ],
-    copts = COPTS,
     visibility = ["//visibility:public"],
 )
 
 cc_test(
     name = "row_encoder_test",
     srcs = glob(["*_test.cc"]),
-    copts = COPTS,
     deps = [
         ":fury_encoder",
         "@com_google_googletest//:gtest",
diff --git a/src/fury/meta/BUILD b/src/fury/meta/BUILD
index 81b8b414..fead5549 100644
--- a/src/fury/meta/BUILD
+++ b/src/fury/meta/BUILD
@@ -1,19 +1,16 @@
 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
-load("//bazel:fury.bzl", "COPTS")
 
 cc_library(
     name = "fury_meta",
     srcs = glob(["*.cc"], exclude=["*test.cc"]),
     hdrs = glob(["*.h"]),
     strip_include_prefix = "/src",
-    copts = COPTS,
     visibility = ["//visibility:public"],
 )
 
 cc_test(
     name = "preprocessor_test",
     srcs = ["preprocessor_test.cc"],
-    copts = COPTS,
     deps = [
         ":fury_meta",
         "@com_google_googletest//:gtest",
@@ -23,7 +20,6 @@ cc_test(
 cc_test(
     name = "field_info_test",
     srcs = ["field_info_test.cc"],
-    copts = COPTS,
     deps = [
         ":fury_meta",
         "@com_google_googletest//:gtest",
@@ -33,7 +29,6 @@ cc_test(
 cc_test(
     name = "type_traits_test",
     srcs = ["type_traits_test.cc"],
-    copts = COPTS,
     deps = [
         ":fury_meta",
         "@com_google_googletest//:gtest",
diff --git a/src/fury/row/BUILD b/src/fury/row/BUILD
index d5eb1e2a..3ff956ef 100644
--- a/src/fury/row/BUILD
+++ b/src/fury/row/BUILD
@@ -1,5 +1,4 @@
 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
-load("//bazel:fury.bzl", "COPTS")
 
 cc_library(
     name = "fury_row_format",
@@ -9,14 +8,12 @@ cc_library(
     deps = [
       "@local_config_pyarrow//:arrow", "//src/fury/util:fury_util"
     ],
-    copts = COPTS,
     visibility = ["//visibility:public"],
 )
 
 cc_test(
     name = "row_test",
     srcs = ["row_test.cc"],
-    copts = COPTS,
     deps = [
         ":fury_row_format",
         "@com_google_googletest//:gtest",
diff --git a/src/fury/thirdparty/BUILD b/src/fury/thirdparty/BUILD
index 4fb525db..6c0742e2 100644
--- a/src/fury/thirdparty/BUILD
+++ b/src/fury/thirdparty/BUILD
@@ -1,12 +1,10 @@
 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
-load("//bazel:fury.bzl", "COPTS")
 
 cc_library(
     name = "libmmh3",
     srcs = ["MurmurHash3.cc"],
     hdrs = ["MurmurHash3.h"],
     strip_include_prefix = "/src",
-    copts = COPTS,
     alwayslink=True,
     linkstatic=True,
     visibility = ["//visibility:public"],
diff --git a/src/fury/util/BUILD b/src/fury/util/BUILD
index cac9e120..78cbb2b0 100644
--- a/src/fury/util/BUILD
+++ b/src/fury/util/BUILD
@@ -1,13 +1,11 @@
 
 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
-load("//bazel:fury.bzl", "COPTS")
 
 cc_library(
     name = "fury_util",
     srcs = glob(["*.cc"], exclude=["*test.cc"]),
     hdrs = glob(["*.h"]),
     strip_include_prefix = "/src",
-    copts = COPTS,
     alwayslink=True,
     linkstatic=True,
     deps = [
@@ -23,7 +21,6 @@ cc_library(
 cc_test(
     name = "time_util_test",
     srcs = ["time_util_test.cc"],
-    copts = COPTS,
     deps = [
         ":fury_util",
         "@com_google_googletest//:gtest",
@@ -33,7 +30,6 @@ cc_test(
 cc_test(
     name = "logging_test",
     srcs = ["logging_test.cc"],
-    copts = COPTS,
     deps = [
         ":fury_util",
         "@com_google_googletest//:gtest",
@@ -43,7 +39,6 @@ cc_test(
 cc_test(
     name = "status_test",
     srcs = ["status_test.cc"],
-    copts = COPTS,
     deps = [
         ":fury_util",
         "@com_google_googletest//:gtest",
@@ -53,7 +48,6 @@ cc_test(
 cc_test(
     name = "buffer_test",
     srcs = ["buffer_test.cc"],
-    copts = COPTS,
     deps = [
         ":fury_util",
         "@com_google_googletest//:gtest",


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to