aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt110
1 files changed, 63 insertions, 47 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8a35d95..8a1a6aa 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,72 +1,88 @@
-project (indicator-display)
-cmake_minimum_required (VERSION 2.8.9)
+project(indicator-display LANGUAGES C CXX)
+cmake_minimum_required(VERSION 2.8.9)
-list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
-set (PROJECT_VERSION "14.10.0")
-set (PACKAGE ${CMAKE_PROJECT_NAME})
-set (GETTEXT_PACKAGE indicator-display)
-add_definitions (-DGETTEXT_PACKAGE="${GETTEXT_PACKAGE}"
- -DGNOMELOCALEDIR="${CMAKE_INSTALL_FULL_LOCALEDIR}")
+set(PACKAGE ${CMAKE_PROJECT_NAME})
+set(GETTEXT_PACKAGE indicator-display)
+add_definitions(
+ -DGETTEXT_PACKAGE="${GETTEXT_PACKAGE}"
+ -DGNOMELOCALEDIR="${CMAKE_INSTALL_FULL_LOCALEDIR}"
+)
-set (SERVICE_LIB ${PACKAGE})
-set (SERVICE_EXEC "${PACKAGE}-service")
+set(SERVICE_LIB ${PACKAGE})
+set(SERVICE_EXEC "${PACKAGE}-service")
-option (enable_tests "Build the package's automatic tests." ON)
-option (enable_lcov "Generate lcov code coverage reports." ON)
+option(enable_tests "Build the package's automatic tests." ON)
+option(enable_coverage "Generate code coverage reports." ON)
##
## GNU standard paths
##
-include (GNUInstallDirs)
-if (EXISTS "/etc/debian_version") # Workaround for libexecdir on debian
- set (CMAKE_INSTALL_LIBEXECDIR "${CMAKE_INSTALL_LIBDIR}")
- set (CMAKE_INSTALL_FULL_LIBEXECDIR "${CMAKE_INSTALL_FULL_LIBDIR}")
-endif ()
-set (CMAKE_INSTALL_PKGLIBEXECDIR "${CMAKE_INSTALL_LIBEXECDIR}/${CMAKE_PROJECT_NAME}")
-set (CMAKE_INSTALL_FULL_PKGLIBEXECDIR "${CMAKE_INSTALL_FULL_LIBEXECDIR}/${CMAKE_PROJECT_NAME}")
+
+include(GNUInstallDirs)
+if(EXISTS "/etc/debian_version") # Workaround for libexecdir on debian
+ set(CMAKE_INSTALL_LIBEXECDIR "${CMAKE_INSTALL_LIBDIR}")
+ set(CMAKE_INSTALL_FULL_LIBEXECDIR "${CMAKE_INSTALL_FULL_LIBDIR}")
+endif()
+set(CMAKE_INSTALL_PKGLIBEXECDIR "${CMAKE_INSTALL_LIBEXECDIR}/${CMAKE_PROJECT_NAME}")
+set(CMAKE_INSTALL_FULL_PKGLIBEXECDIR "${CMAKE_INSTALL_FULL_LIBEXECDIR}/${CMAKE_PROJECT_NAME}")
##
## Check for prerequisites
##
-find_package (PkgConfig REQUIRED)
+# threads...
+set(THREADS_PREFER_PTHREAD_FLAG ON)
+find_package(Threads REQUIRED)
+if(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 3.1)
+ set(THREAD_LINK_LIBRARIES -pthread)
+else()
+ set(THREAD_LINK_LIBRARIES Threads::Threads) # introduced in cmake 3.1
+endif()
+
+find_package(PkgConfig REQUIRED)
-include (FindPkgConfig)
-pkg_check_modules (SERVICE_DEPS REQUIRED
- gio-unix-2.0>=2.36
- glib-2.0>=2.36)
-include_directories (SYSTEM ${SERVICE_DEPS_INCLUDE_DIRS})
+# glib...
+set(GLIB_MINIMUM 2.36)
+pkg_check_modules(SERVICE_DEPS REQUIRED
+ gio-unix-2.0>=${GLIB_MINIMUM}
+ glib-2.0>=${GLIB_MINIMUM}
+ gudev-1.0
+)
+include_directories (SYSTEM
+ ${SERVICE_DEPS_INCLUDE_DIRS}
+)
##
-##
+## Compiler settings
##
-set (CMAKE_INCLUDE_CURRENT_DIR OFF)
-include_directories (${CMAKE_CURRENT_SOURCE_DIR})
+include_directories(${CMAKE_CURRENT_SOURCE_DIR})
# set the compiler warnings
-if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
- set (CXX_WARNING_ARGS "${CXX_WARNING_ARGS} -Weverything -Wno-c++98-compat")
-else()
- set (CXX_WARNING_ARGS "${CXX_WARNING_ARGS} -Wall -Wextra -Wpedantic")
+if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+ list(APPEND CXX_WARNING_ARGS -Weverything -Wno-c++98-compat -Wno-padded)
+elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+ list(APPEND CXX_WARNING_ARGS -Wall -Wextra -Wpedantic)
endif()
-set (CXX_WARNING_ARGS "${CXX_WARNING_ARGS} -Wno-missing-field-initializers") # GActionEntry
-# testing & coverage
-if (${enable_tests})
- set (GTEST_SOURCE_DIR /usr/src/gtest/src)
- set (GTEST_INCLUDE_DIR ${GTEST_SOURCE_DIR}/..)
- set (GTEST_LIBS -lpthread)
- enable_testing ()
- if (${enable_lcov})
- include(GCov)
- endif ()
-endif ()
+add_compile_options(-std=c++14 -fPIC -g)
+
+##
+## Testing & Coverage
+##
+
+if(${enable_tests})
+ enable_testing()
+ if(${enable_coverage})
+ include(EnableCoverageReport)
+ endif()
+endif()
-add_subdirectory (src)
-add_subdirectory (data)
-add_subdirectory (po)
+add_subdirectory(src)
+add_subdirectory(data)
+add_subdirectory(po)
if (${enable_tests})
- add_subdirectory (tests)
+ add_subdirectory(tests)
endif ()