Add some shared utility methods to the utils project.

BUG=angle:730

Change-Id: I268c7f76ee9a14ab82f646ae8ebf4eed100bf86d
Reviewed-on: https://chromium-review.googlesource.com/213509
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/projects/samples/sample_util.vcxproj b/projects/samples/sample_util.vcxproj
index 437aa60..bb2fbf9 100644
--- a/projects/samples/sample_util.vcxproj
+++ b/projects/samples/sample_util.vcxproj
@@ -201,9 +201,8 @@
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\samples\angle\sample_util\Vector.h"/>
-    <ClInclude Include="..\..\samples\angle\sample_util\Matrix.h"/>
-    <ClInclude Include="..\..\samples\angle\sample_util\shader_utils.h"/>
     <ClInclude Include="..\..\samples\angle\sample_util\geometry_utils.h"/>
+    <ClInclude Include="..\..\samples\angle\sample_util\Matrix.h"/>
     <ClInclude Include="..\..\samples\angle\sample_util\random_utils.h"/>
     <ClInclude Include="..\..\samples\angle\sample_util\tga_utils.h"/>
     <ClInclude Include="..\..\samples\angle\sample_util\SampleApplication.h"/>
@@ -211,11 +210,10 @@
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\samples\angle\sample_util\texture_utils.cpp"/>
-    <ClCompile Include="..\..\samples\angle\sample_util\tga_utils.cpp"/>
-    <ClCompile Include="..\..\samples\angle\sample_util\shader_utils.cpp"/>
     <ClCompile Include="..\..\samples\angle\sample_util\SampleApplication.cpp"/>
     <ClCompile Include="..\..\samples\angle\sample_util\geometry_utils.cpp"/>
     <ClCompile Include="..\..\samples\angle\sample_util\Vector.cpp"/>
+    <ClCompile Include="..\..\samples\angle\sample_util\tga_utils.cpp"/>
     <ClCompile Include="..\..\samples\angle\sample_util\random_utils.cpp"/>
     <ClCompile Include="..\..\samples\angle\sample_util\Matrix.cpp"/>
   </ItemGroup>
diff --git a/projects/samples/sample_util.vcxproj.filters b/projects/samples/sample_util.vcxproj.filters
index 3795216..7ac54a3 100644
--- a/projects/samples/sample_util.vcxproj.filters
+++ b/projects/samples/sample_util.vcxproj.filters
@@ -13,36 +13,30 @@
     <ClInclude Include="..\..\samples\angle\sample_util\Vector.h">
       <Filter>angle\sample_util</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\samples\angle\sample_util\geometry_utils.h">
+      <Filter>angle\sample_util</Filter>
+    </ClInclude>
     <ClCompile Include="..\..\samples\angle\sample_util\texture_utils.cpp">
       <Filter>angle\sample_util</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\samples\angle\sample_util\SampleApplication.cpp">
+      <Filter>angle\sample_util</Filter>
+    </ClCompile>
     <ClInclude Include="..\..\samples\angle\sample_util\Matrix.h">
       <Filter>angle\sample_util</Filter>
     </ClInclude>
-    <ClCompile Include="..\..\samples\angle\sample_util\tga_utils.cpp">
-      <Filter>angle\sample_util</Filter>
-    </ClCompile>
-    <ClInclude Include="..\..\samples\angle\sample_util\shader_utils.h">
-      <Filter>angle\sample_util</Filter>
-    </ClInclude>
-    <ClCompile Include="..\..\samples\angle\sample_util\shader_utils.cpp">
-      <Filter>angle\sample_util</Filter>
-    </ClCompile>
-    <ClInclude Include="..\..\samples\angle\sample_util\geometry_utils.h">
-      <Filter>angle\sample_util</Filter>
-    </ClInclude>
-    <ClCompile Include="..\..\samples\angle\sample_util\SampleApplication.cpp">
-      <Filter>angle\sample_util</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\samples\angle\sample_util\geometry_utils.cpp">
-      <Filter>angle\sample_util</Filter>
-    </ClCompile>
     <ClInclude Include="..\..\samples\angle\sample_util\random_utils.h">
       <Filter>angle\sample_util</Filter>
     </ClInclude>
+    <ClCompile Include="..\..\samples\angle\sample_util\geometry_utils.cpp">
+      <Filter>angle\sample_util</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\samples\angle\sample_util\Vector.cpp">
       <Filter>angle\sample_util</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\samples\angle\sample_util\tga_utils.cpp">
+      <Filter>angle\sample_util</Filter>
+    </ClCompile>
     <ClInclude Include="..\..\samples\angle\sample_util\tga_utils.h">
       <Filter>angle\sample_util</Filter>
     </ClInclude>
diff --git a/projects/util/angle_util.vcxproj b/projects/util/angle_util.vcxproj
index 164424c..0dbe897 100644
--- a/projects/util/angle_util.vcxproj
+++ b/projects/util/angle_util.vcxproj
@@ -201,16 +201,19 @@
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\util\mouse.h"/>
+    <ClInclude Include="..\..\util\shared_utils.h"/>
     <ClInclude Include="..\..\util\Timer.h"/>
     <ClInclude Include="..\..\util\EGLWindow.h"/>
-    <ClInclude Include="..\..\util\OSWindow.h"/>
-    <ClInclude Include="..\..\util\Event.h"/>
     <ClInclude Include="..\..\util\path_utils.h"/>
+    <ClInclude Include="..\..\util\shader_utils.h"/>
+    <ClInclude Include="..\..\util\OSWindow.h"/>
     <ClInclude Include="..\..\util\keyboard.h"/>
-    <ClInclude Include="..\..\util\win32\Win32Timer.h"/>
+    <ClInclude Include="..\..\util\Event.h"/>
     <ClInclude Include="..\..\util\win32\Win32Window.h"/>
+    <ClInclude Include="..\..\util\win32\Win32Timer.h"/>
   </ItemGroup>
   <ItemGroup>
+    <ClCompile Include="..\..\util\shader_utils.cpp"/>
     <ClCompile Include="..\..\util\OSWindow.cpp"/>
     <ClCompile Include="..\..\util\EGLWindow.cpp"/>
     <ClCompile Include="..\..\util\win32\Win32_path_utils.cpp"/>
diff --git a/projects/util/angle_util.vcxproj.filters b/projects/util/angle_util.vcxproj.filters
index 5a08b15..f32e6de 100644
--- a/projects/util/angle_util.vcxproj.filters
+++ b/projects/util/angle_util.vcxproj.filters
@@ -7,21 +7,21 @@
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\util\mouse.h"/>
+    <ClInclude Include="..\..\util\shared_utils.h"/>
     <ClInclude Include="..\..\util\Timer.h"/>
-    <None Include="..\..\util\util.gyp"/>
     <ClInclude Include="..\..\util\EGLWindow.h"/>
+    <ClInclude Include="..\..\util\path_utils.h"/>
+    <None Include="..\..\util\util.gyp"/>
+    <ClInclude Include="..\..\util\shader_utils.h"/>
+    <ClCompile Include="..\..\util\shader_utils.cpp"/>
     <ClInclude Include="..\..\util\OSWindow.h"/>
     <ClCompile Include="..\..\util\OSWindow.cpp"/>
-    <ClInclude Include="..\..\util\Event.h"/>
-    <ClInclude Include="..\..\util\path_utils.h"/>
     <ClInclude Include="..\..\util\keyboard.h"/>
     <ClCompile Include="..\..\util\EGLWindow.cpp"/>
+    <ClInclude Include="..\..\util\Event.h"/>
     <ClCompile Include="..\..\util\win32\Win32_path_utils.cpp">
       <Filter>win32</Filter>
     </ClCompile>
-    <ClInclude Include="..\..\util\win32\Win32Timer.h">
-      <Filter>win32</Filter>
-    </ClInclude>
     <ClCompile Include="..\..\util\win32\Win32Window.cpp">
       <Filter>win32</Filter>
     </ClCompile>
@@ -31,5 +31,8 @@
     <ClInclude Include="..\..\util\win32\Win32Window.h">
       <Filter>win32</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\util\win32\Win32Timer.h">
+      <Filter>win32</Filter>
+    </ClInclude>
   </ItemGroup>
 </Project>
diff --git a/tests/angle_tests/ANGLETest.h b/tests/angle_tests/ANGLETest.h
index 809640b..08bf5cd 100644
--- a/tests/angle_tests/ANGLETest.h
+++ b/tests/angle_tests/ANGLETest.h
@@ -14,6 +14,8 @@
 #include "angle_gl.h"
 #include <algorithm>
 
+#include "shared_utils.h"
+
 #define EXPECT_GL_ERROR(err) EXPECT_EQ((err), glGetError())
 #define EXPECT_GL_NO_ERROR() EXPECT_GL_ERROR(GL_NO_ERROR)
 
@@ -31,8 +33,6 @@
     EXPECT_EQ((a), pixel[3]); \
 }
 
-#define SHADER_SOURCE(...) #__VA_ARGS__
-
 class EGLWindow;
 class OSWindow;
 
diff --git a/util/EGLWindow.h b/util/EGLWindow.h
index 076bc16..e97522e 100644
--- a/util/EGLWindow.h
+++ b/util/EGLWindow.h
@@ -21,11 +21,7 @@
 #include <cstdint>
 #include <memory>
 
-// A macro to disallow the copy constructor and operator= functions
-// This must be used in the private: declarations for a class
-#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
-    TypeName(const TypeName&);               \
-    void operator=(const TypeName&)
+#include "shared_utils.h"
 
 class OSWindow;
 
diff --git a/samples/angle/sample_util/shader_utils.cpp b/util/shader_utils.cpp
similarity index 100%
rename from samples/angle/sample_util/shader_utils.cpp
rename to util/shader_utils.cpp
diff --git a/samples/angle/sample_util/shader_utils.h b/util/shader_utils.h
similarity index 100%
rename from samples/angle/sample_util/shader_utils.h
rename to util/shader_utils.h
diff --git a/util/shared_utils.h b/util/shared_utils.h
new file mode 100644
index 0000000..9a23048
--- /dev/null
+++ b/util/shared_utils.h
@@ -0,0 +1,18 @@
+//
+// Copyright (c) 2014 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+#ifndef UTIL_SHARED_UTILS_H
+#define UTIL_SHARED_UTILS_H
+
+#define SHADER_SOURCE(...) #__VA_ARGS__
+
+// A macro to disallow the copy constructor and operator= functions
+// This must be used in the private: declarations for a class
+#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
+    TypeName(const TypeName&);             \
+    void operator=(const TypeName&)
+
+#endif // UTIL_SHARED_UTILS_H
diff --git a/util/util.gyp b/util/util.gyp
index fdb43e0..1bd29ff 100644
--- a/util/util.gyp
+++ b/util/util.gyp
@@ -28,6 +28,9 @@
                         'keyboard.h',
                         'mouse.h',
                         'path_utils.h',
+                        'shader_utils.cpp',
+                        'shader_utils.h',
+                        'shared_utils.h',
                         'EGLWindow.cpp',
                         'EGLWindow.h',
                         'Event.h',