Skip to content

Commit 42c3468

Browse files
Merge pull request #54 from JohanMabille/cmake
use local gtest sources
2 parents 5bdde06 + 27b014c commit 42c3468

File tree

4 files changed

+48
-14
lines changed

4 files changed

+48
-14
lines changed

CMakeLists.txt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ message(STATUS "xtensor-python v${${PROJECT_NAME}_VERSION}")
3131
# Build
3232
# =====
3333

34-
OPTION(BUILD_TESTS "xtensor test suite" ON)
35-
3634
set(XTENSOR_PYTHON_HEADERS
3735
${XTENSOR_PYTHON_INCLUDE_DIR}/xtensor-python/pyarray.hpp
3836
${XTENSOR_PYTHON_INCLUDE_DIR}/xtensor-python/pybuffer_adaptor.hpp
@@ -42,6 +40,13 @@ set(XTENSOR_PYTHON_HEADERS
4240
${XTENSOR_PYTHON_INCLUDE_DIR}/xtensor-python/xtensor_python_config.hpp
4341
)
4442

43+
OPTION(BUILD_TESTS "xtensor test suite" OFF)
44+
OPTION(DOWNLOAD_GTEST "build gtest from downloaded sources" OFF)
45+
46+
if(DOWNLOAD_GTEST OR GTEST_SRC_DIR)
47+
set(BUILD_TESTS ON)
48+
endif()
49+
4550
if(BUILD_TESTS)
4651
include_directories(${XTENSOR_PYTHON_INCLUDE_DIR})
4752
find_package(xtensor REQUIRED)

test/CMakeLists.txt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,14 @@ if(MSVC)
6868
endforeach()
6969
endif()
7070

71-
if (DOWNLOAD_GTEST)
72-
# Download and unpack googletest at configure time
73-
configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt)
71+
if (DOWNLOAD_GTEST OR GTEST_SRC_DIR)
72+
if(DOWNLOAD_GTEST)
73+
# Download and unpack googletest at configure time
74+
configure_file(downloadGTest.cmake.in googletest-download/CMakeLists.txt)
75+
else()
76+
# Copy local source of googletest at configure time
77+
configure_file(copyGTest.cmake.in googletest-download/CMakeLists.txt)
78+
endif()
7479
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
7580
RESULT_VARIABLE result
7681
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download )
@@ -115,7 +120,7 @@ set(XTENSOR_PYTHON_TARGET test_xtensor_python)
115120
add_executable(${XTENSOR_PYTHON_TARGET} ${XTENSOR_PYTHON_TESTS} ${XTENSOR_PYTHON_HEADERS} ${XTENSOR_HEADERS})
116121
target_link_libraries(${XTENSOR_PYTHON_TARGET} ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${PYTHON_LIBRARIES})
117122

118-
if(DOWNLOAD_GTEST)
123+
if(DOWNLOAD_GTEST OR GTEST_SRC_DIR)
119124
add_custom_target(xtest COMMAND ./test_xtensor_python DEPENDS gtest_main ${XTENSOR_PYTHON_TARGET})
120125
else()
121126
add_custom_target(xtest COMMAND ./test_xtensor_python DEPENDS ${XTENSOR_PYTHON_TARGET})
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ project(googletest-download NONE)
1212

1313
include(ExternalProject)
1414
ExternalProject_Add(googletest
15-
GIT_REPOSITORY https://github.com/google/googletest.git
16-
GIT_TAG release-1.8.0
17-
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-src"
18-
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-build"
19-
CONFIGURE_COMMAND ""
20-
BUILD_COMMAND ""
21-
INSTALL_COMMAND ""
22-
TEST_COMMAND ""
15+
URL "${GTEST_SRC_DIR}"
16+
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-src"
17+
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-build"
18+
CONFIGURE_COMMAND ""
19+
BUILD_COMMAND ""
20+
INSTALL_COMMAND ""
21+
TEST_COMMAND ""
2322
)
23+

test/downloadGTest.cmake.in

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
############################################################################
2+
# Copyright (c) 2016, Johan Mabille and Sylvain Corlay #
3+
# #
4+
# Distributed under the terms of the BSD 3-Clause License. #
5+
# #
6+
# The full license is in the file LICENSE, distributed with this software. #
7+
############################################################################
8+
9+
cmake_minimum_required(VERSION 2.8.2)
10+
11+
project(googletest-download NONE)
12+
13+
include(ExternalProject)
14+
ExternalProject_Add(googletest
15+
GIT_REPOSITORY https://github.com/google/googletest.git
16+
GIT_TAG release-1.8.0
17+
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-src"
18+
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-build"
19+
CONFIGURE_COMMAND ""
20+
BUILD_COMMAND ""
21+
INSTALL_COMMAND ""
22+
TEST_COMMAND ""
23+
)
24+

0 commit comments

Comments
 (0)