Initial commit

Change-Id: I6a4444e3c193dae437cd7929f4c39aba7b749efa
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..d41c645
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,112 @@
+# This file is the source for generating the Makefile for the project, using cmake tool (cmake.org)
+
+# Name of the project
+PROJECT("freeDiameter")
+
+# Informations to display in daemon's help
+SET(FD_PROJECT_NAME freeDiameter)
+SET(FD_PROJECT_BINARY freeDiameterd)
+SET(FD_PROJECT_COPYRIGHT "Copyright (c) 2008-2015, WIDE Project (www.wide.ad.jp) and NICT (www.nict.go.jp)")
+
+# Version of the source code
+SET(FD_PROJECT_VERSION_MAJOR 1)
+SET(FD_PROJECT_VERSION_MINOR 2)
+SET(FD_PROJECT_VERSION_REV 1)
+
+# Version of the API with the library
+SET(FD_PROJECT_VERSION_API 6)
+
+# The test framework, using CTest and CDash.
+INCLUDE(CTest)
+
+# CMake version
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+
+# Location of additional CMake modules
+SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
+
+# The default directories
+SET(DEFAULT_CONF_PATH ${CMAKE_INSTALL_PREFIX}/etc/freeDiameter CACHE PATH "Default location of freeDiameter configuration files")
+
+IF (NOT DEFINED LIB_INSTALL_DIR)
+SET(LIB_INSTALL_DIR lib CACHE PATH "Default library path name on the system, to accomodate RPM-based systems that use lib64")
+ENDIF (NOT DEFINED LIB_INSTALL_DIR)
+
+SET(INSTALL_HEADERS_SUFFIX 		include/freeDiameter 	CACHE PATH "Directory where the headers are installed (relative to CMAKE_INSTALL_PREFIX).")
+SET(INSTALL_DAEMON_SUFFIX 		bin 			CACHE PATH "Directory where the daemon binary is installed (relative to CMAKE_INSTALL_PREFIX).")
+SET(INSTALL_LIBRARY_SUFFIX 		${LIB_INSTALL_DIR} 			CACHE PATH "Directory where the freeDiameter libraries are installed (relative to CMAKE_INSTALL_PREFIX).")
+SET(INSTALL_EXTENSIONS_SUFFIX 	${LIB_INSTALL_DIR}/freeDiameter	CACHE PATH "Directory where the extensions are installed / searched (relative to CMAKE_INSTALL_PREFIX).")
+
+# All source code should be POSIX 200112L compatible, but some other extensions might be used, so:
+ADD_DEFINITIONS(-D_GNU_SOURCE)
+
+# Set a default build type if none was specified
+if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+  message(STATUS "Setting build type to 'Debug' as none was specified.")
+  set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build." FORCE)
+  # Set the possible values of build type for cmake-gui
+  set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release"
+    "MinSizeRel" "RelWithDebInfo" "Profiling" "MaxPerformance" "DebianPackage" "DebugValgrind")
+endif()
+
+# Add a "Profiling" build type
+# SET(CMAKE_BUILD_TYPE Profiling)
+SET(CMAKE_C_FLAGS_PROFILING "-fprofile-arcs -ftest-coverage -fstack-protector -g -Wall")
+
+# Add a "MaxPerformance" build type -- this is very silent...
+# SET(CMAKE_BUILD_TYPE MaxPerformance)
+SET(CMAKE_C_FLAGS_MAXPERFORMANCE "${CMAKE_C_FLAGS_RELEASE} -DSTRIP_DEBUG_CODE")
+
+# Add a "DebianPackage" build type used when creating the Debian packages
+SET(CMAKE_C_FLAGS_DEBIANPACKAGE "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
+
+# Set the "Debug" flags
+SET(CMAKE_C_FLAGS_DEBUG "-Wall -g -O0")
+
+# Add a "DebugValgrind" build type used for checking execution with Valgrind tool
+SET(CMAKE_C_FLAGS_DEBUGVALGRIND "-Wall -g -O0")
+
+# Set the DEBUG flag for Debug and Profiling builds
+IF (CMAKE_BUILD_TYPE MATCHES "Debug|Profiling|DebugValgrind")
+  SET(DEBUG 1)
+ENDIF (CMAKE_BUILD_TYPE MATCHES "Debug|Profiling|DebugValgrind")
+
+# some subfolders use yacc and lex parsers
+SET(BISON_GENERATE_DEFINES TRUE)
+SET(BISON_PREFIX_OUTPUTS TRUE)
+INCLUDE(CMakeUserUseBison)
+SET(FLEX_PREFIX_OUTPUTS TRUE)
+INCLUDE(CMakeUserUseFlex)
+IF( NOT BISON_EXECUTABLE OR NOT FLEX_EXECUTABLE )
+  MESSAGE( SEND_ERROR "Bison and Flex are required" )
+ENDIF( NOT BISON_EXECUTABLE OR NOT FLEX_EXECUTABLE )
+# Check that flex is at least 2.5.20 to support bison-bridge
+# how to do the check with cmake???
+
+# Add this to workaround an apparent bug in FreeBSD cmake (already defined in Linux)
+SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-rdynamic")
+
+# For Darwin systems
+IF(APPLE)
+   SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -flat_namespace -undefined dynamic_lookup")
+   SET(CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS "${CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS} -flat_namespace -undefined dynamic_lookup")
+ENDIF(APPLE) 
+
+# Location for the include files
+INCLUDE_DIRECTORIES(include)
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/include)
+SUBDIRS(include/freeDiameter)
+
+# Location for the source code
+SUBDIRS(libfdproto)
+SUBDIRS(libfdcore)
+SUBDIRS(freeDiameterd)
+
+# Extensions (there is no use of freeDiameter without any extension)
+SUBDIRS(extensions)
+
+# The unary tests directory
+IF ( BUILD_TESTING )
+	SUBDIRS(tests)
+ENDIF ( BUILD_TESTING )
+