cmake_minimum_required(VERSION 3.9) project(gtest_builder C CXX) include(ExternalProject) set(GTEST_FORCE_SHARED_CRT ON) set(GTEST_DISABLE_PTHREADS OFF) if(MINGW) set(GTEST_DISABLE_PTHREADS ON) endif() ExternalProject_Add(googletest GIT_REPOSITORY https://github.com/google/googletest.git GIT_TAG 07d45437f288e25db9f7c78ecbc4df8b5b81a47b CMAKE_ARGS -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=DebugLibs -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=ReleaseLibs -DCMAKE_CXX_FLAGS=${MSVC_COMPILER_DEFS} -Dgtest_force_shared_crt=${GTEST_FORCE_SHARED_CRT} -Dgtest_disable_pthreads=${GTEST_DISABLE_PTHREADS} -DBUILD_GTEST=ON PREFIX "${CMAKE_CURRENT_BINARY_DIR}" # Disable install step INSTALL_COMMAND "" ) # Specify include dir ExternalProject_Get_Property(googletest source_dir) set(GTEST_INCLUDE_DIRS ${source_dir}/googletest/include PARENT_SCOPE) # Specify MainTest's link libraries ExternalProject_Get_Property(googletest binary_dir) set(GTEST_LIBS_DIR ${binary_dir}/googlemock/gtest PARENT_SCOPE)