1# Copyright (c) Benjamin Kietzman (github.com/bkietz) 2# 3# Distributed under the Boost Software License, Version 1.0. (See accompanying 4# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 6set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) 7 8############### 9# CMake options 10cmake_minimum_required(VERSION 2.8) 11 12set(CMAKE_CXX_STANDARD 14) 13set(CMAKE_CXX_STANDARD_REQUIRED ON) 14 15 16#SET(HUNTER_STATUS_DEBUG ON) 17option(HUNTER_ENABLED "Enable hunter package pulling" OFF) 18 19include("cmake/HunterGate.cmake") 20HunterGate( 21 URL "https://github.com/ruslo/hunter/archive/v0.18.64.tar.gz" 22 SHA1 "baf9c8cc4f65306f0e442b5419967b4c4c04589a" 23) 24 25project(boost-dbus CXX) 26 27############### 28# C++ options 29set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")#-std=c++0x") 30include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) 31include_directories(${CMAKE_CURRENT_SOURCE_DIR}/test) 32 33############### 34# import Boost 35add_definitions(-DBOOST_ERROR_CODE_HEADER_ONLY) 36add_definitions(-DBOOST_SYSTEM_NO_DEPRECATED) 37add_definitions(-DBOOST_ALL_NO_LIB) 38add_definitions(-DBOOST_NO_RTTI) 39add_definitions(-DBOOST_NO_TYPEID) 40hunter_add_package(Boost) 41find_package(Boost REQUIRED) 42 43include_directories(${Boost_INCLUDE_DIRS}) 44link_directories(${Boost_LIBRARY_DIRS}) 45 46############### 47# import D-Bus 48hunter_add_package(dbus) 49find_package(dbus REQUIRED) # Include functions provided by PkgConfig module. 50include_directories(${DBUS_INCLUDE_DIRS}) 51 52 53hunter_add_package(pthread-stubs) 54find_package (Threads) 55 56############## 57# import GTest 58hunter_add_package(GTest) 59find_package(GTest REQUIRED) 60include_directories(${GTEST_INCLUDE_DIRS}) 61 62 63 64############## 65# Tests 66enable_testing() 67 68 69add_executable(dbustests "test/avahi.cpp" "test/message.cpp" "test/error.cpp" "test/dbusPropertiesServer.cpp") 70target_link_libraries(dbustests ${Boost_LIBRARIES}) 71target_link_libraries(dbustests ${DBUS_LIBRARIES}) 72 73if (${HUNTER_ENABLED}) 74 find_package(GMock CONFIG REQUIRED) 75 target_link_libraries(dbustests GMock::main) 76else() 77 find_package(GMock REQUIRED) 78 target_link_libraries(dbustests ${GTEST_BOTH_LIBRARIES} gmock) 79endif() 80target_link_libraries(dbustests ${CMAKE_THREAD_LIBS_INIT}) 81add_test(dbustests dbustests "--gtest_output=xml:${test_name}.xml") 82 83############## 84# Install 85Add_library(boost-dbus INTERFACE) 86target_include_directories(boost-dbus INTERFACE include/) 87install(DIRECTORY include/ DESTINATION include) 88 89