Fixes for Windows bazel build.

Don't pass -Wno-sign-compare on Windows.
Add a #define HAVE_WINDOWS_H if _WIN32 is defined.
Don't assume sys/uio.h is available on Windows.

PiperOrigin-RevId: 524416809
This commit is contained in:
Richard O'Grady 2023-04-14 16:49:56 -07:00
parent 66a30b803f
commit c9f9edf6d7
3 changed files with 15 additions and 4 deletions

View File

@ -32,6 +32,11 @@ licenses(["notice"])
SNAPPY_VERSION = (1, 1, 10) SNAPPY_VERSION = (1, 1, 10)
config_setting(
name = "windows",
constraint_values = ["@platforms//os:windows"],
)
cc_library( cc_library(
name = "config", name = "config",
hdrs = ["config.h"], hdrs = ["config.h"],
@ -64,9 +69,11 @@ cc_library(
"snappy.h", "snappy.h",
"snappy-sinksource.h", "snappy-sinksource.h",
], ],
copts = [ copts = select({
":windows": [],
"//conditions:default": [
"-Wno-sign-compare", "-Wno-sign-compare",
], ]}),
deps = [ deps = [
":config", ":config",
":snappy-stubs-internal", ":snappy-stubs-internal",
@ -153,6 +160,10 @@ genrule(
# endif # endif
#endif #endif
#if defined(_WIN32) && !defined(HAVE_WINDOWS_H)
#define HAVE_WINDOWS_H 1
#endif
#ifdef __has_include #ifdef __has_include
# if !defined(HAVE_BYTESWAP_H) && __has_include(<byteswap.h>) # if !defined(HAVE_BYTESWAP_H) && __has_include(<byteswap.h>)
# define HAVE_BYTESWAP_H 1 # define HAVE_BYTESWAP_H 1
@ -189,9 +200,9 @@ genrule(
name = "snappy_stubs_public_h", name = "snappy_stubs_public_h",
srcs = ["snappy-stubs-public.h.in"], srcs = ["snappy-stubs-public.h.in"],
outs = ["snappy-stubs-public.h"], outs = ["snappy-stubs-public.h"],
# Define HAVE_SYS_UIO_H_01 to 1; we just assume it's available. # Assume sys/uio.h is available on non-Windows.
# Set the version numbers. # Set the version numbers.
cmd = ("""sed -e 's/$${\\(.*\\)_01}/1/g' \ cmd = ("""sed -e 's/$${HAVE_SYS_UIO_H_01}/!_WIN32/g' \
-e 's/$${PROJECT_VERSION_MAJOR}/%d/g' \ -e 's/$${PROJECT_VERSION_MAJOR}/%d/g' \
-e 's/$${PROJECT_VERSION_MINOR}/%d/g' \ -e 's/$${PROJECT_VERSION_MINOR}/%d/g' \
-e 's/$${PROJECT_VERSION_PATCH}/%d/g' \ -e 's/$${PROJECT_VERSION_PATCH}/%d/g' \