cmake_minimum_required(VERSION 2.8)

#project name
PROJECT(gt)

include(GNUInstallDirs)

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/base/include)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/settings/include)

SET(CONFDIR "${CMAKE_INSTALL_FULL_SYSCONFDIR}/gt")
SET(CONFFILE "gt.conf")
SET(CONFPATH "${CONFDIR}/${CONFFILE}")
ADD_DEFINITIONS("-DGT_SETTING_PATH=\"${CONFPATH}\"")

SET(PKG_MODULES
        libusbgx>=0.2.0
	libconfig
)

IF (DEFINED CMAKE_WITH_GADGETD)
	ADD_DEFINITIONS("-DWITH_GADGETD=1")
	LIST(APPEND PKG_MODULES
		glib-2.0
		gio-2.0
	)
ENDIF ()

INCLUDE(FindPkgConfig)
pkg_check_modules(pkgs REQUIRED ${PKG_MODULES})

FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
ENDFOREACH(flag)

SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -g -Wall")

ADD_SUBDIRECTORY(config)
ADD_SUBDIRECTORY(function)
ADD_SUBDIRECTORY(gadget)
ADD_SUBDIRECTORY(settings)
ADD_SUBDIRECTORY(udc)
ADD_SUBDIRECTORY(base)
ADD_SUBDIRECTORY(manpages)

ADD_EXECUTABLE(gt main.c)

TARGET_LINK_LIBRARIES(gt
	base
	udc
	config
	function
	gadget
	settings
	${pkgs_LDFLAGS}
)

INSTALL(FILES ${CONFFILE} DESTINATION ${CONFDIR})

IF(NOT BASH_COMPLETION_COMPLETIONSDIR)
	find_package(bash-completion)
ENDIF()
IF(NOT BASH_COMPLETION_COMPLETIONSDIR)
	SET (BASH_COMPLETION_COMPLETIONSDIR "${CMAKE_INSTALL_DATAROOTDIR}/bash-completion/completions")
ENDIF()
INSTALL(FILES completions/gt DESTINATION ${BASH_COMPLETION_COMPLETIONSDIR})

INSTALL(TARGETS gt RUNTIME)

add_custom_command(
	TARGET gt POST_BUILD
	COMMAND ln -sf gt gt-parse-test)
