From 9f96225dc93a97467f1e2107e23b79cb10744917 Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Fri, 5 Feb 2021 14:09:34 +0100 Subject: Add CMakeLists.txt files. --- CMakeLists.txt | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 CMakeLists.txt (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..7fee81b --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,58 @@ +cmake_minimum_required(VERSION 3.16) +project(ayatana-ido C CXX) + +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}") + +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + SET(CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "..." FORCE) +endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + +option(MAINTAINER_MODE "Enable all tests and checks" OFF) + +# Check for prerequisites + +set(DEPS glib-2.0>=2.64 gtk+-3.0>=3.24) + +if(MAINTAINER_MODE) + # We also need gcovr and lcov + set(DEPS ${DEPS} gtest>=1.10) + set(CMAKE_BUILD_TYPE "Coverage") +else() + set(CMAKE_BUILD_TYPE "Release") +endif() + +find_package (PkgConfig REQUIRED) +pkg_check_modules(PROJECT_DEPS REQUIRED ${DEPS}) + +# Set global variables + +include(GNUInstallDirs) +set(PROJECT_VERSION "0.8.2") + +if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + + set(COMPILE_FLAGS "${COMPILE_FLAGS} -Weverything") + set(COMPILE_FLAGS "${COMPILE_FLAGS} -Wno-c++98-compat -Wno-padded") + set(COMPILE_FLAGS "${COMPILE_FLAGS} -Wno-documentation") + +else() + + set(COMPILE_FLAGS "${COMPILE_FLAGS} -Wall") + +endif() + +# Make everything + +add_subdirectory(src) +add_subdirectory(data) + +if(MAINTAINER_MODE) + enable_testing() + add_subdirectory(example) + add_subdirectory(tests) +endif() + +# Display config info + +message(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}") +message(STATUS "Maintainer mode: ${MAINTAINER_MODE}") -- cgit v1.2.3 From ab041b778f0a559e75f6d9a8b10ba899e7576616 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 20 Apr 2021 14:48:00 +0200 Subject: CMakeLists.txt: Don't use variable name MAINTAINER_MODE (it is misleading), use ENABLE_TESTS and ENABLE_COVERAGE as options instead. --- CMakeLists.txt | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 7fee81b..cb0cce1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,18 +7,15 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) SET(CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "..." FORCE) endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) -option(MAINTAINER_MODE "Enable all tests and checks" OFF) +option(ENABLE_TESTS "Enable all tests and checks" OFF) # Check for prerequisites set(DEPS glib-2.0>=2.64 gtk+-3.0>=3.24) -if(MAINTAINER_MODE) +if(NOT DISABLE_TESTS) # We also need gcovr and lcov set(DEPS ${DEPS} gtest>=1.10) - set(CMAKE_BUILD_TYPE "Coverage") -else() - set(CMAKE_BUILD_TYPE "Release") endif() find_package (PkgConfig REQUIRED) @@ -46,13 +43,22 @@ endif() add_subdirectory(src) add_subdirectory(data) -if(MAINTAINER_MODE) +if (NOT ENABLE_TESTS) + message(STATUS "Unit tests disabled") +else() + message(STATUS "Unit tests enabled") + include(CTest) enable_testing() add_subdirectory(example) add_subdirectory(tests) + ENABLE_COVERAGE_REPORT( + TARGETS ${COVERAGE_TARGETS} + TESTS ${COVERAGE_TEST_TARGETS} + FILTER /usr/include ${CMAKE_BINARY_DIR}/* + ) endif() # Display config info message(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}") -message(STATUS "Maintainer mode: ${MAINTAINER_MODE}") +message(STATUS "Unit tests:: ${ENABLE_TESTS}") -- cgit v1.2.3 From 0573203124f66f826a0f6b06262f7610b00f0fb6 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Wed, 21 Apr 2021 20:52:10 +0200 Subject: {tests/,}CMakeLists.txt: Add ENABLE_COVERAGE build option. --- CMakeLists.txt | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index cb0cce1..7d2726b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,14 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) option(ENABLE_TESTS "Enable all tests and checks" OFF) +option(ENABLE_COVERAGE "Enable coverage reports (includes enabling all tests and checks)" OFF) + +if(ENABLE_COVERAGE) + set(ENABLE_TESTS ON) + set(CMAKE_BUILD_TYPE "Coverage") +else() + set(CMAKE_BUILD_TYPE "Release") +endif() # Check for prerequisites -- cgit v1.2.3 From f308bf10515467a754d592c7b497f8fd0fd2d656 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 20 Apr 2021 21:18:23 +0200 Subject: CMakeLists.txt: Let's tolerate CMake minimum version 3.13 (to support building against Debian 10). --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d2726b..459746c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.16) +cmake_minimum_required(VERSION 3.13) project(ayatana-ido C CXX) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}") -- cgit v1.2.3 From bbe290180e77c44819d9cb711e573ce344e34f30 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 20 Apr 2021 21:27:05 +0200 Subject: CMakeLists.txt: Tolerate older versions of GLib-2.0 and GoogleTest. Support building on Debian 10. --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 459746c..9520765 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,11 +19,11 @@ endif() # Check for prerequisites -set(DEPS glib-2.0>=2.64 gtk+-3.0>=3.24) +set(DEPS glib-2.0>=2.58 gtk+-3.0>=3.24) if(NOT DISABLE_TESTS) # We also need gcovr and lcov - set(DEPS ${DEPS} gtest>=1.10) + set(DEPS ${DEPS} gtest>=1.8.1) endif() find_package (PkgConfig REQUIRED) -- cgit v1.2.3 From 38e4b9017a32ff80d433611ebf69dffd41c1e0ff Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 20 Apr 2021 21:45:39 +0200 Subject: CMakeLists.txt: Leave finding gtest.pc to GMock cmake module. --- CMakeLists.txt | 5 ----- 1 file changed, 5 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 9520765..165f2ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,11 +21,6 @@ endif() set(DEPS glib-2.0>=2.58 gtk+-3.0>=3.24) -if(NOT DISABLE_TESTS) - # We also need gcovr and lcov - set(DEPS ${DEPS} gtest>=1.8.1) -endif() - find_package (PkgConfig REQUIRED) pkg_check_modules(PROJECT_DEPS REQUIRED ${DEPS}) -- cgit v1.2.3 From 65f7c219078ecf708d52c813b37fc537490c872a Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 20 Apr 2021 22:23:03 +0200 Subject: CMakeLists.txt: Drop duplicate ENABLE_COVERAGE_REPORT() macro call. --- CMakeLists.txt | 5 ----- 1 file changed, 5 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 165f2ea..c791df3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,11 +54,6 @@ else() enable_testing() add_subdirectory(example) add_subdirectory(tests) - ENABLE_COVERAGE_REPORT( - TARGETS ${COVERAGE_TARGETS} - TESTS ${COVERAGE_TEST_TARGETS} - FILTER /usr/include ${CMAKE_BINARY_DIR}/* - ) endif() # Display config info -- cgit v1.2.3 From c75d5b57ac727a6380f7444323fadc3e50641e20 Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Wed, 21 Apr 2021 21:56:44 +0200 Subject: CMakeLists.txt: Fix typo --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index c791df3..e6cc77f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,4 +59,4 @@ endif() # Display config info message(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}") -message(STATUS "Unit tests:: ${ENABLE_TESTS}") +message(STATUS "Unit tests: ${ENABLE_TESTS}") -- cgit v1.2.3 From 3adf9ec33ba1e5b6516dfb31f943da67926e86c7 Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Wed, 21 Apr 2021 21:58:50 +0200 Subject: CMakeLists.txt: Drop duplicate status messages --- CMakeLists.txt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index e6cc77f..b039352 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,10 +46,7 @@ endif() add_subdirectory(src) add_subdirectory(data) -if (NOT ENABLE_TESTS) - message(STATUS "Unit tests disabled") -else() - message(STATUS "Unit tests enabled") +if (ENABLE_TESTS) include(CTest) enable_testing() add_subdirectory(example) -- cgit v1.2.3