Initial commit of the FlatBuffers code.

Change-Id: I4c9f0f722490b374257adb3fec63e44ae93da920
Tested: using VS2010 / Xcode / gcc on Linux.
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..2fa4160
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,76 @@
+cmake_minimum_required(VERSION 2.8)
+
+project(FlatBuffers)
+
+# NOTE: Code coverage only works on Linux & OSX.
+option(FLATBUFFERS_CODE_COVERAGE "Enable the code coverage build option." OFF)
+
+set(FlatBuffers_Compiler_SRCS
+  include/flatbuffers/flatbuffers.h
+  include/flatbuffers/idl.h
+  include/flatbuffers/util.h
+  src/idl_parser.cpp
+  src/idl_gen_cpp.cpp
+  src/idl_gen_java.cpp
+  src/idl_gen_text.cpp
+  src/flatc.cpp
+)
+
+set(FlatBuffers_Tests_SRCS
+  include/flatbuffers/flatbuffers.h
+  include/flatbuffers/idl.h
+  include/flatbuffers/util.h
+  src/idl_parser.cpp
+  src/idl_gen_text.cpp
+  tests/test.cpp
+  # file generate by running compiler on tests/monster_test.fbs
+  tests/monster_test_generated.h
+)
+
+set(FlatBuffers_Sample_Binary_SRCS
+  include/flatbuffers/flatbuffers.h
+  samples/sample_binary.cpp
+  # file generate by running compiler on samples/monster.fbs
+  samples/monster_generated.h
+)
+
+set(FlatBuffers_Sample_Text_SRCS
+  include/flatbuffers/flatbuffers.h
+  include/flatbuffers/idl.h
+  include/flatbuffers/util.h
+  src/idl_parser.cpp
+  src/idl_gen_text.cpp
+  samples/sample_text.cpp
+  # file generate by running compiler on samples/monster.fbs
+  samples/monster_generated.h
+)
+
+set(CMAKE_BUILD_TYPE Debug)
+
+# source_group(Compiler FILES ${FlatBuffers_Compiler_SRCS})
+# source_group(Tests FILES ${FlatBuffers_Tests_SRCS})
+
+if(CMAKE_COMPILER_IS_GNUCXX)
+  add_definitions("-std=c++0x")
+  add_definitions("-Wall")
+endif()
+if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
+  add_definitions("-std=c++0x")
+endif()
+
+if(FLATBUFFERS_CODE_COVERAGE)
+  add_definitions("-g -fprofile-arcs -ftest-coverage")
+  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")
+endif()
+
+include_directories(include)
+
+add_executable(flatc ${FlatBuffers_Compiler_SRCS})
+add_executable(flattests ${FlatBuffers_Tests_SRCS})
+add_executable(flatsamplebinary ${FlatBuffers_Sample_Binary_SRCS})
+add_executable(flatsampletext ${FlatBuffers_Sample_Text_SRCS})
+
+add_test(NAME flattest
+         CONFIGURATIONS Debug
+         WORKING_DIRECTORY tests
+         COMMAND flattests)