#
# Copyright 2013 Dominic Spill
#
# This file is part of Ubertooth.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING.  If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
#
#top level cmake project for ubertooth lib + tools

cmake_minimum_required(VERSION 2.8)
project(ubertooth_all)
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules
	CACHE STRING "CMake module path")

set(MAJOR_VERSION 1 CACHE INT "libUbertooth major version number")
set(MINOR_VERSION 0 CACHE INT "libUbertooth minor version number")
set( VERSION ${MAJOR_VERSION}.${MINOR_VERSION} )
add_definitions( -DVERSION="${VERSION}" )

# Comment the following out for releases.
set(CMAKE_C_FLAGS "$ENV{CFLAGS}" CACHE STRING "C Flags")

# Defaults: BUILD_SHARED=ON, BUILD_STATIC=OFF
set(BUILD_SHARED_LIB ON CACHE BOOL "Build shared library")
set(BUILD_STATIC_LIB OFF CACHE BOOL "Build static library")
set(BUILD_STATIC_BINS OFF CACHE BOOL "Build static library")
set(ENABLE_PYTHON ON CACHE BOOL "Build python tools")

# Check that we're building at least one library
if( NOT ${BUILD_SHARED_LIB} AND NOT ${BUILD_STATIC_LIB} )
	message( FATAL_ERROR "Not building static or shared library - at least one must be built")
endif( NOT ${BUILD_SHARED_LIB} AND NOT ${BUILD_STATIC_LIB} )

# Build static bins if we're only building the static lib
if( ${BUILD_STATIC_LIB} AND NOT ${BUILD_SHARED_LIB} )
	set(BUILD_STATIC_BINS ON)
	message(STATUS "Building static executables because only building static library")
endif( ${BUILD_STATIC_LIB} AND NOT ${BUILD_SHARED_LIB} )

# Complain if we're building the shared lib but static bins
if( ${BUILD_STATIC_BINS} AND NOT ${BUILD_STATIC_LIB} )
	message(FATAL "Building static executables not possible with shared library")
endif( ${BUILD_STATIC_BINS} AND NOT ${BUILD_STATIC_LIB} )

add_subdirectory(libubertooth)
add_subdirectory(ubertooth-tools)
add_subdirectory(doc)
add_subdirectory(misc)
if(${ENABLE_PYTHON})
	add_subdirectory(python)
endif()

# Create uninstall target
configure_file(
	${PROJECT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in
	${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
@ONLY)

add_custom_target(uninstall
	${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
)
