INCLUDE(CheckIncludeFiles)
INCLUDE(CheckFunctionExists)

SET(GLIB_DIR "/usr/" CACHE PATH "glib-dir")
SET(MYSQL_DIR "/usr/" CACHE PATH "mysql-dir")
SET(LUA_DIR "/usr/" CACHE PATH "lua-dir")
SET(EVENT_DIR "/usr/" CACHE PATH "event-dir")

INCLUDE_DIRECTORIES(${GLIB_DIR}/lib/glib-2.0/include ${GLIB_DIR}/include/glib-2.0/)
LINK_DIRECTORIES(${GLIB_DIR}/lib)

INCLUDE_DIRECTORIES(${MYSQL_DIR}/include)

INCLUDE_DIRECTORIES(${LUA_DIR}/include)
LINK_DIRECTORIES(${LUA_DIR}/lib)

INCLUDE_DIRECTORIES(${EVENT_DIR}/include)
LINK_DIRECTORIES(${EVENT_DIR}/lib)

SET(CMAKE_REQUIRED_INCLUDES 
	${EVENT_DIR}/include 
	${LUA_DIR}/include 
	${MYSQL_DIR}/include 
	${GLIB_DIR}/lib/glib-2.0/include 
	${GLIB_DIR}/include/glib-2.0/)

CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES_H)
IF (HAVE_INTTYPES_H) 
  ADD_DEFINITIONS(-DHAVE_INTTYPES_H) 
ENDIF(HAVE_INTTYPES_H)

CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H)
IF (HAVE_UNISTD_H) 
  ADD_DEFINITIONS(-DHAVE_UNISTD_H) 
ENDIF(HAVE_UNISTD_H)

CHECK_INCLUDE_FILES(sys/time.h HAVE_SYS_TIME_H)
IF (HAVE_SYS_TIME_H) 
  ADD_DEFINITIONS(-DHAVE_SYS_TIME_H) 
ENDIF(HAVE_SYS_TIME_H)

CHECK_INCLUDE_FILES(sys/filio.h HAVE_SYS_FILIO_H)
IF (HAVE_SYS_FILIO_H) 
  ADD_DEFINITIONS(-DHAVE_SYS_FILIO_H) 
ENDIF(HAVE_SYS_FILIO_H)

CHECK_INCLUDE_FILES(sys/socket.h HAVE_SYS_SOCKET_H)
IF (HAVE_SYS_SOCKET_H) 
  ADD_DEFINITIONS(-DHAVE_SYS_SOCKET_H) 
ENDIF(HAVE_SYS_SOCKET_H)

CHECK_INCLUDE_FILES(stdlib.h HAVE_STDLIB_H)
IF (HAVE_STDLIB_H) 
  ADD_DEFINITIONS(-DHAVE_STDLIB_H) 
ENDIF(HAVE_STDLIB_H)

CHECK_INCLUDE_FILES(netinet/in.h HAVE_NETINET_IN_H)
IF (HAVE_NETINET_IN_H) 
  ADD_DEFINITIONS(-DHAVE_NETINET_IN_H) 
ENDIF(HAVE_NETINET_IN_H)

CHECK_FUNCTION_EXISTS(signal HAVE_SIGNAL)
IF (HAVE_SIGNAL) 
  ADD_DEFINITIONS(-DHAVE_SIGNAL) 
ENDIF(HAVE_SIGNAL)

SET(LUALIBS )
CHECK_INCLUDE_FILES(lua.h HAVE_LUA_H)
ADD_DEFINITIONS(-DHAVE_LUA_H) 
SET(LUALIBS lua m)

SET(EVENTLIBS )
CHECK_INCLUDE_FILES(event.h HAVE_EVENT_H)
ADD_DEFINITIONS(-DHAVE_EVENT_H) 
SET(EVENTLIBS event)

CHECK_INCLUDE_FILES(mysql.h HAVE_MYSQL_H)
CHECK_INCLUDE_FILES(glib.h HAVE_GLIB_H)

IF(WIN32) 
  ADD_DEFINITIONS(-DWIN32_LEAN_AND_MEAN)
  SET(LUALIBS lua ws2_32)
ENDIF(WIN32)
  
ADD_DEFINITIONS(-DPACKAGE_VERSION_ID=0x601 -DPACKAGE_STRING="\"mysql-proxy\"")

SET(proxy_sources 
	network-mysqld.c 
	network-mysqld-proto.c 
	network-mysqld-proxy.c 
	network-mysqld-server.c 
	network-mysqld-table.c 
	network-conn-pool.c  
	network-socket.c
	sql-tokenizer.c
	glib-ext.c
      )

ADD_EXECUTABLE(mysql-proxy mysql-proxy.c ${proxy_sources})
TARGET_LINK_LIBRARIES(mysql-proxy glib-2.0 ${LUALIBS} ${EVENTLIBS})

