xref: /libbtbb/CMakeLists.txt (revision 7469b4d151d90e9053add0650f258acd6b481f45)
1e25b118aSDominic Spill#
2e25b118aSDominic Spill# Copyright 2013 Dominic Spill
3e25b118aSDominic Spill#
4e25b118aSDominic Spill# This file is part of Libbtbb.
5e25b118aSDominic Spill#
6e25b118aSDominic Spill# This program is free software; you can redistribute it and/or modify
7e25b118aSDominic Spill# it under the terms of the GNU General Public License as published by
8e25b118aSDominic Spill# the Free Software Foundation; either version 2, or (at your option)
9e25b118aSDominic Spill# any later version.
10e25b118aSDominic Spill#
11e25b118aSDominic Spill# This program is distributed in the hope that it will be useful,
12e25b118aSDominic Spill# but WITHOUT ANY WARRANTY; without even the implied warranty of
13e25b118aSDominic Spill# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14e25b118aSDominic Spill# GNU General Public License for more details.
15e25b118aSDominic Spill#
16e25b118aSDominic Spill# You should have received a copy of the GNU General Public License
17e25b118aSDominic Spill# along with this program; see the file COPYING.  If not, write to
18e25b118aSDominic Spill# the Free Software Foundation, Inc., 51 Franklin Street,
19e25b118aSDominic Spill# Boston, MA 02110-1301, USA.
20e25b118aSDominic Spill#
21e25b118aSDominic Spill#top level cmake project for libbtbb lib + tools
22e25b118aSDominic Spill
23e25b118aSDominic Spillcmake_minimum_required(VERSION 2.8)
24e25b118aSDominic Spillset(MAJOR_VERSION 0)
258f3e7eeaSChristopher Kilgourset(MINOR_VERSION 3)
26e25b118aSDominic Spillproject(libbtbb_all)
27e25b118aSDominic Spillset(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules)
28e25b118aSDominic Spill
29e25b118aSDominic Spillset(INSTALL_DEFAULT_BINDIR "bin" CACHE STRING "Appended to CMAKE_INSTALL_PREFIX")
30e25b118aSDominic Spill
31b858c0c0SDominic Spill## Instruct user to remove previous versions, unless using a package manager
32b858c0c0SDominic Spill#if(NOT PACKAGE_MANAGER)
33b858c0c0SDominic Spill#  # Unset variables to force the recheck next time
34b858c0c0SDominic Spill#  # (there has to be a better way to do it than this)
35b858c0c0SDominic Spill#  UNSET(LIBBTBB_FOUND CACHE)
36b858c0c0SDominic Spill#  UNSET(LIBBTBB_INCLUDE_DIR CACHE)
37b858c0c0SDominic Spill#  UNSET(LIBBTBB_LIBRARIES CACHE)
38b858c0c0SDominic Spill#
39b858c0c0SDominic Spill#  find_package(BTBB)
40b858c0c0SDominic Spill#  if(LIBBTBB_FOUND)
41b858c0c0SDominic Spill#    message( FATAL_ERROR
42b858c0c0SDominic Spill#      "An existing installation of libbtbb is already present on this system. Please remove it, and any depending applications before building. A helper script is provided, run\n$ sudo ../cmake/cleanup.sh -d\nto find and remove libbtbb and libubertooth and the ubertooth tools")
43b858c0c0SDominic Spill#  endif()
44b858c0c0SDominic Spill#endif()
45a04ed95dSDominic Spill
46*7469b4d1SDominic Spill# automatic git version when working out of git
47*7469b4d1SDominic Spillexecute_process(COMMAND git log --pretty=format:%h -n 1
48*7469b4d1SDominic Spill                OUTPUT_VARIABLE GIT_VERSION)
49*7469b4d1SDominic Spill
50*7469b4d1SDominic SpillMESSAGE(STATUS "Git version set to ${GIT_VERSION}")
51*7469b4d1SDominic Spill
52*7469b4d1SDominic Spillexecute_process(COMMAND git status -s --untracked-files=no | grep modified
53*7469b4d1SDominic Spill                RESULT_VARIABLE DIRTY)
54*7469b4d1SDominic Spill
55*7469b4d1SDominic Spillif( ${DIRTY} EQUAL "0" )
56*7469b4d1SDominic Spill	MESSAGE(STATUS "Modifications found since last commit")
57*7469b4d1SDominic Spill	set(DIRTY_FLAG "*")
58*7469b4d1SDominic Spillendif( ${DIRTY} EQUAL "0" )
59*7469b4d1SDominic Spill
60*7469b4d1SDominic Spillset( VERSION ${MAJOR_VERSION}.${MINOR_VERSION} )
61*7469b4d1SDominic Spillset( RELEASE git-${GIT_VERSION}${DIRTY_FLAG} )
62*7469b4d1SDominic Spill
63*7469b4d1SDominic Spilladd_definitions( -DVERSION="${VERSION}" )
64*7469b4d1SDominic Spilladd_definitions( -DRELEASE="${RELEASE}" )
65*7469b4d1SDominic Spill
66*7469b4d1SDominic Spill# Comment the following out for releases.
67*7469b4d1SDominic Spillset(CMAKE_C_FLAGS "$ENV{CFLAGS}")
68*7469b4d1SDominic Spill
69e25b118aSDominic Spilladd_subdirectory(lib)
70aff807a7SDominic Spillif(NOT DISABLE_PYTHON)
71e25b118aSDominic Spill	add_subdirectory(python)
72aff807a7SDominic Spillendif()
73e25b118aSDominic Spill
74e25b118aSDominic Spill# Create uninstall target
75e25b118aSDominic Spillconfigure_file(
76e25b118aSDominic Spill    ${PROJECT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in
77e25b118aSDominic Spill    ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
78e25b118aSDominic Spill@ONLY)
79e25b118aSDominic Spill
80e25b118aSDominic Spilladd_custom_target(uninstall
81e25b118aSDominic Spill    ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
82e25b118aSDominic Spill)
83