diff --git a/.bazelversion b/.bazelversion
new file mode 100644
index 0000000..47b322c
--- /dev/null
+++ b/.bazelversion
@@ -0,0 +1 @@
+3.4.1
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a6ef824
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/bazel-*
diff --git a/base/BUILD b/base/BUILD
index 74b721d..00c6c91 100644
--- a/base/BUILD
+++ b/base/BUILD
@@ -2,6 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 load("//build_config:build_config.bzl", "build_config")
+load("@rules_cc//cc:defs.bzl", "cc_library")
 
 cc_library(
     name = "base",
diff --git a/base/strings/BUILD b/base/strings/BUILD
index 604cc81..c76b35a 100644
--- a/base/strings/BUILD
+++ b/base/strings/BUILD
@@ -2,17 +2,17 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 load("//build_config:build_config.bzl", "build_config")
+load("@rules_cc//cc:defs.bzl", "cc_library")
 
 cc_library(
     name = "strings",
     srcs = [
-        "string16.cc",
         "string_piece.cc",
         "string_util.cc",
         "string_util_constants.cc",
         "utf_string_conversion_utils.cc",
         "utf_string_conversions.cc",
-    ],
+    ] + build_config.strings_srcs,
     hdrs = [
         "char_traits.h",
         "string16.h",
@@ -20,10 +20,9 @@
         "string_piece_forward.h",
         "string_util.h",
         "string_util_internal.h",
-        "string_util_posix.h",
         "utf_string_conversion_utils.h",
         "utf_string_conversions.h",
-    ],
+    ] + build_config.strings_hdrs,
     copts = build_config.default_copts,
     visibility = ["//visibility:public"],
     deps = [
diff --git a/build/BUILD b/build/BUILD
index db115d4..79fa1dd 100644
--- a/build/BUILD
+++ b/build/BUILD
@@ -2,6 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 load("//build_config:build_config.bzl", "build_config")
+load("@rules_cc//cc:defs.bzl", "cc_library")
 
 cc_library(
     name = "build_config",
diff --git a/build_config/BUILD b/build_config/BUILD
index 9ce06a8..78ac01d 100644
--- a/build_config/BUILD
+++ b/build_config/BUILD
@@ -1 +1,20 @@
-# dummy
+load("//build_config:common_settings.bzl", "bool_flag")
+
+licenses(["notice"])
+
+config_setting(
+    name = "windows_x86_64",
+    values = {"cpu": "x64_windows"},
+)
+
+bool_flag(
+    name = "system_icu",
+    build_setting_default = True,
+)
+
+config_setting(
+    name = "with_system_icu",
+    flag_values = {
+        ":system_icu": "True",
+    },
+)
diff --git a/build_config/build_config.bzl b/build_config/build_config.bzl
index d5fca65..9357584 100644
--- a/build_config/build_config.bzl
+++ b/build_config/build_config.bzl
@@ -1,8 +1,41 @@
-_default_copts = [
-    "-std=c++14",
-    "-fno-strict-aliasing",
-]
+"""This module provides common build config options"""
+
+_default_copts = select({
+    "//build_config:windows_x86_64": [
+        "/std:c++17",
+    ],
+    "//conditions:default": [
+        "-std=c++17",
+        "-fno-strict-aliasing",
+    ],
+})
+
+_strings_srcs = select({
+    "//build_config:windows_x86_64": [],
+    "//conditions:default": ["string16.cc"],
+})
+
+_strings_hdrs = select({
+    "//build_config:windows_x86_64": ["string_util_win.h"],
+    "//conditions:default": ["string_util_posix.h"],
+})
+
+_url_linkopts = select({
+    "//build_config:with_system_icu": ["-licuuc"],
+    "//conditions:default": [],
+})
+
+_icuuc_deps = select({
+    "//build_config:with_system_icu": [],
+
+    # If we don't link against system ICU library, we must provide "@org_unicode_icuuc//:common".
+    "//conditions:default": ["@org_unicode_icuuc//:common"],
+})
 
 build_config = struct(
     default_copts = _default_copts,
+    url_linkopts = _url_linkopts,
+    strings_srcs = _strings_srcs,
+    strings_hdrs = _strings_hdrs,
+    icuuc_deps = _icuuc_deps,
 )
diff --git a/build_config/common_settings.bzl b/build_config/common_settings.bzl
new file mode 100644
index 0000000..adbee68
--- /dev/null
+++ b/build_config/common_settings.bzl
@@ -0,0 +1,26 @@
+# Copyright 2019 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""This is a modified version of
+https://github.com/bazelbuild/bazel-skylib/blob/2b38b2f8bd4b8603d610cfc651fcbb299498147f/rules/common_settings.bzl"""
+
+BuildSettingInfo = provider(fields = ["value"])
+
+def _impl(ctx):
+    return BuildSettingInfo(value = ctx.build_setting_value)
+
+bool_flag = rule(
+    implementation = _impl,
+    build_setting = config.bool(flag = True),
+)
diff --git a/test/BUILD b/test/BUILD
index 59210a8..16b1a42 100644
--- a/test/BUILD
+++ b/test/BUILD
@@ -2,6 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 load("//build_config:build_config.bzl", "build_config")
+load("@rules_cc//cc:defs.bzl", "cc_test")
 
 cc_test(
     name = "basic_test",
diff --git a/url/BUILD b/url/BUILD
index e9081d9..f2ec8da 100644
--- a/url/BUILD
+++ b/url/BUILD
@@ -2,6 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 load("//build_config:build_config.bzl", "build_config")
+load("@rules_cc//cc:defs.bzl", "cc_library")
 
 cc_library(
     name = "url",
@@ -43,11 +44,11 @@
         "url_util.h",
     ],
     copts = build_config.default_copts,
-    linkopts = ["-licuuc"],
+    linkopts = build_config.url_linkopts,
     visibility = ["//visibility:public"],
     deps = [
         "//base",
         "//base/strings",
         "//polyfills",
-    ],
+    ] + build_config.icuuc_deps,
 )
