Add a BUILD for gflags.
Change-Id: Id43e22c67645c301989cccab8b9f8043d8030355
diff --git a/build_tests/BUILD b/build_tests/BUILD
new file mode 100644
index 0000000..e11937b
--- /dev/null
+++ b/build_tests/BUILD
@@ -0,0 +1,10 @@
+cc_test(
+ name = 'gflags_build_test',
+ srcs = [
+ 'gflags.cc',
+ ],
+ deps = [
+ '//third_party/gflags',
+ ],
+ size = 'small',
+)
diff --git a/build_tests/gflags.cc b/build_tests/gflags.cc
new file mode 100644
index 0000000..150e330
--- /dev/null
+++ b/build_tests/gflags.cc
@@ -0,0 +1,7 @@
+#include "third_party/gflags/include/gflags/gflags.h"
+
+DEFINE_int32(test_flag, 0, "Test command-line flag");
+
+int main() {
+ return FLAGS_test_flag;
+}
diff --git a/third_party/empty_config_h/README b/third_party/empty_config_h/README
new file mode 100644
index 0000000..6db74f2
--- /dev/null
+++ b/third_party/empty_config_h/README
@@ -0,0 +1,4 @@
+This is a folder with an empty config.h file for external projects to #include.
+We #define everything relevant to each individual project using -D flags for
+each one, but files still want to #include "config.h". To allow that, add
+'-Ithird_party/empty_config_h' to copts.
diff --git a/third_party/empty_config_h/config.h b/third_party/empty_config_h/config.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/third_party/empty_config_h/config.h
diff --git a/third_party/gflags/BUILD b/third_party/gflags/BUILD
new file mode 100644
index 0000000..46118ba
--- /dev/null
+++ b/third_party/gflags/BUILD
@@ -0,0 +1,41 @@
+licenses(['notice'])
+
+common_copts = [
+ '-Ithird_party/gflags/include/gflags',
+ '-Ithird_party/empty_config_h',
+
+ '-DHAVE_STDINT_H=',
+ '-DHAVE_SYS_TYPES_H=',
+ '-DHAVE_INTTYPES_H=',
+ '-DHAVE_SYS_STAT_H=',
+ '-DHAVE_UNISTD_H=',
+ '-DHAVE_FNMATCH_H=',
+ '-DHAVE_STRTOLL=',
+ '-DHAVE_PTHREAD=',
+ '-DHAVE_RWLOCK=',
+ '-D__STDC_FORMAT_MACROS=1',
+ '-DPATH_SEPARATOR=\"\'/\'\"',
+ '-DGFLAGS_IS_A_DLL=0',
+ '-DGFLAGS_DLL_DECL=',
+ '-DGFLAGS_DLL_DEFINE_FLAG=',
+]
+
+cc_library(
+ name = 'gflags',
+ visibility = ['//visibility:public'],
+ srcs = glob([
+ 'src/*.cc',
+ 'src/*.h',
+ ], [
+ 'src/windows_*',
+ ]) + [
+ 'include/gflags/gflags_declare.h',
+ 'include/gflags/gflags_gflags.h',
+ ],
+ hdrs = [
+ 'include/gflags/gflags.h',
+ 'include/gflags/gflags_completions.h',
+ ],
+ copts = common_copts,
+ includes = [ 'include' ],
+)
diff --git a/third_party/gflags/include/gflags/gflags_gflags.h b/third_party/gflags/include/gflags/gflags_gflags.h
new file mode 100644
index 0000000..0c17825
--- /dev/null
+++ b/third_party/gflags/include/gflags/gflags_gflags.h
@@ -0,0 +1,101 @@
+// Copyright (c) 2014, Andreas Schuh
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// -----------------------------------------------------------------------------
+// Imports the gflags library symbols into an alternative/deprecated namespace.
+
+#ifndef GFLAGS_GFLAGS_H_
+# error The internal header gflags_gflags.h may only be included by gflags.h
+#endif
+
+#ifndef GFLAGS_NS_GFLAGS_H_
+#define GFLAGS_NS_GFLAGS_H_
+
+
+namespace gflags {
+
+
+using GFLAGS_NAMESPACE::int32;
+using GFLAGS_NAMESPACE::uint32;
+using GFLAGS_NAMESPACE::int64;
+using GFLAGS_NAMESPACE::uint64;
+
+using GFLAGS_NAMESPACE::RegisterFlagValidator;
+using GFLAGS_NAMESPACE::CommandLineFlagInfo;
+using GFLAGS_NAMESPACE::GetAllFlags;
+using GFLAGS_NAMESPACE::ShowUsageWithFlags;
+using GFLAGS_NAMESPACE::ShowUsageWithFlagsRestrict;
+using GFLAGS_NAMESPACE::DescribeOneFlag;
+using GFLAGS_NAMESPACE::SetArgv;
+using GFLAGS_NAMESPACE::GetArgvs;
+using GFLAGS_NAMESPACE::GetArgv;
+using GFLAGS_NAMESPACE::GetArgv0;
+using GFLAGS_NAMESPACE::GetArgvSum;
+using GFLAGS_NAMESPACE::ProgramInvocationName;
+using GFLAGS_NAMESPACE::ProgramInvocationShortName;
+using GFLAGS_NAMESPACE::ProgramUsage;
+using GFLAGS_NAMESPACE::VersionString;
+using GFLAGS_NAMESPACE::GetCommandLineOption;
+using GFLAGS_NAMESPACE::GetCommandLineFlagInfo;
+using GFLAGS_NAMESPACE::GetCommandLineFlagInfoOrDie;
+using GFLAGS_NAMESPACE::FlagSettingMode;
+using GFLAGS_NAMESPACE::SET_FLAGS_VALUE;
+using GFLAGS_NAMESPACE::SET_FLAG_IF_DEFAULT;
+using GFLAGS_NAMESPACE::SET_FLAGS_DEFAULT;
+using GFLAGS_NAMESPACE::SetCommandLineOption;
+using GFLAGS_NAMESPACE::SetCommandLineOptionWithMode;
+using GFLAGS_NAMESPACE::FlagSaver;
+using GFLAGS_NAMESPACE::CommandlineFlagsIntoString;
+using GFLAGS_NAMESPACE::ReadFlagsFromString;
+using GFLAGS_NAMESPACE::AppendFlagsIntoFile;
+using GFLAGS_NAMESPACE::ReadFromFlagsFile;
+using GFLAGS_NAMESPACE::BoolFromEnv;
+using GFLAGS_NAMESPACE::Int32FromEnv;
+using GFLAGS_NAMESPACE::Int64FromEnv;
+using GFLAGS_NAMESPACE::Uint64FromEnv;
+using GFLAGS_NAMESPACE::DoubleFromEnv;
+using GFLAGS_NAMESPACE::StringFromEnv;
+using GFLAGS_NAMESPACE::SetUsageMessage;
+using GFLAGS_NAMESPACE::SetVersionString;
+using GFLAGS_NAMESPACE::ParseCommandLineNonHelpFlags;
+using GFLAGS_NAMESPACE::HandleCommandLineHelpFlags;
+using GFLAGS_NAMESPACE::AllowCommandLineReparsing;
+using GFLAGS_NAMESPACE::ReparseCommandLineNonHelpFlags;
+using GFLAGS_NAMESPACE::ShutDownCommandLineFlags;
+using GFLAGS_NAMESPACE::FlagRegisterer;
+
+#ifndef SWIG
+using GFLAGS_NAMESPACE::ParseCommandLineFlags;
+#endif
+
+
+} // namespace gflags
+
+
+#endif // GFLAGS_NS_GFLAGS_H_