CMake: Support building HarfBuzz-GObject

This adds support to the CMake build files to support building
HarfBuzz-GObject, which is actually a little bit complicated,
as we need to:

-Run glib-mkenums, which is a Python (for newer GLib/GObject) or PERL
 (for older, pre 2.53.4, GLib/GObject) script.  This matters more for
 Visual Studio builds as shebang lines are not supported, so we need to
 test-run it with PERL or Python to determine which is the correct
 interpretor to use.

-Next, we need to replace strings in the sources that we obtain from
 running glib-mkenums.  So, the solution here is to use a small utility
 CMake script for our purposes here, to maintain maximum compatibility.

-Ensure that things do work in the Visual Studio IDE builds.
diff --git a/replace-enum-strings.cmake b/replace-enum-strings.cmake
new file mode 100644
index 0000000..42fdbff
--- /dev/null
+++ b/replace-enum-strings.cmake
@@ -0,0 +1,21 @@
+# CMake script to replace items

+# in sources generated by glib-mkenums

+

+FILE(READ ${ENUM_INPUT_SRC} enum_in)

+

+STRING(REPLACE

+  "_t_get_type"

+  "_get_type"

+  enum_out_tmp

+  "${enum_in}"

+  )

+

+STRING(REPLACE

+  "_T ("

+  " ("

+  enum_out

+  "${enum_out_tmp}"

+  )

+

+FILE(WRITE ${ENUM_OUTPUT_SRC} "${enum_out}")

+FILE(REMOVE ${ENUM_INPUT_SRC})
\ No newline at end of file