cmake_minimum_required(VERSION 3.10) project(cmake-gtest-example VERSION 0.0.1 DESCRIPTION "CMake gtest example") option(THREADS_PREFER_PTHREAD_FLAG "If the use of the -pthread compiler and linker flag is prefered then the caller can set" ON) option(POSITION_INDEPENDENT_CODE "This variable is used to initialize the POSITION_INDEPENDENT_CODE property on all the targets" ON) find_package(PkgConfig REQUIRED) find_package(Threads REQUIRED) pkg_check_modules(GTEST gtest_main gtest) include(CTest) include(GoogleTest) add_executable(alltests test_stringcompare.cpp ) target_include_directories(alltests PUBLIC ${GTEST_INCLUDE_DIRS}) target_compile_options(alltests PUBLIC -Wall -Wextra ${GTEST_CFLAGS}) target_link_libraries(alltests PUBLIC Threads::Threads ${GTEST_LIBRARIES} gtest_main) enable_testing() gtest_discover_tests(alltests TEST_PREFIX alltests:) add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}) add_dependencies(check alltests) add_custom_target(memcheck COMMAND ${CMAKE_CTEST_COMMAND} -T memcheck) add_dependencies(memcheck alltests)