From 1670f1c5ddf1d9b4fab6b9b6d0e00323af48e967 Mon Sep 17 00:00:00 2001 From: Gil Date: Mon, 20 Nov 2017 14:38:44 -0800 Subject: Initial CMake-based build (#472) Initial CMake-based build This knows how to download and build googletest. --- cmake/external/googletest.cmake | 54 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 cmake/external/googletest.cmake (limited to 'cmake') diff --git a/cmake/external/googletest.cmake b/cmake/external/googletest.cmake new file mode 100644 index 0000000..66b2689 --- /dev/null +++ b/cmake/external/googletest.cmake @@ -0,0 +1,54 @@ +# Copyright 2017 Google +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +include(ExternalProject) +ExternalProject_Add( + googletest_external + PREFIX googletest + URL "https://github.com/google/googletest/archive/release-1.8.0.tar.gz" + URL_HASH "SHA256=58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8" + + CMAKE_ARGS + -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} + -DBUILD_GMOCK:BOOL=OFF + -DBUILD_GTEST:BOOL=ON + + # Cut down on scary log output + LOG_DOWNLOAD ON + LOG_CONFIGURE ON + + INSTALL_COMMAND "" + UPDATE_COMMAND "" + TEST_COMMAND "" +) + +ExternalProject_Get_Property(googletest_external source_dir binary_dir) + +# CMake requires paths in include_directories to exist at configure time +file(MAKE_DIRECTORY ${source_dir}/googletest/include) + +add_library(gtest STATIC IMPORTED GLBOAL) +set_target_properties( + gtest PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES ${source_dir}/googletest/include + IMPORTED_LOCATION ${binary_dir}/googletest/${CMAKE_FIND_LIBRARY_PREFIXES}gtest.a +) +add_dependencies(gtest googletest_external) + +add_library(gtest_main STATIC IMPORTED GLOBAL) +set_target_properties( + gtest_main PROPERTIES + IMPORTED_LOCATION ${binary_dir}/googletest/${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main.a +) +add_dependencies(gtest_main googletest_external) -- cgit v1.2.3