Skip to content

Commit

Permalink
Merge pull request #104 from ament/googletest
Browse files Browse the repository at this point in the history
update to googletest 1.8
  • Loading branch information
dirk-thomas committed Aug 9, 2017
2 parents ce013d2 + fdd3563 commit e70b1cf
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 95 deletions.
27 changes: 8 additions & 19 deletions ament_cmake_gmock/ament_cmake_gmock-extras.cmake
Expand Up @@ -38,10 +38,10 @@ macro(_ament_cmake_gmock_find_gmock)
set(_search_path_include "/usr/include/gmock")
set(_search_path_src "/usr/src/gmock/src")

# check gmock_vendor path
# check gmock_vendor path, prefer this version over a system installed
if(gmock_vendor_FOUND AND gmock_vendor_BASE_DIR)
list(APPEND _search_path_include "${gmock_vendor_BASE_DIR}/include/gmock")
list(APPEND _search_path_src "${gmock_vendor_BASE_DIR}/src")
list(INSERT _search_path_include 0 "${gmock_vendor_BASE_DIR}/include/gmock")
list(INSERT _search_path_src 0 "${gmock_vendor_BASE_DIR}/src")
endif()

find_file(_gmock_header_file "gmock.h"
Expand All @@ -50,7 +50,7 @@ macro(_ament_cmake_gmock_find_gmock)
)
find_file(_gmock_src_file
"gmock.cc"
"gmock-gtest-all.cc" # alternative when using "fused" sources
"gmock-all.cc"
PATHS ${_search_path_src}
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
)
Expand Down Expand Up @@ -107,17 +107,10 @@ macro(_ament_cmake_gmock_find_gmock)
set(GMOCK_MAIN_LIBRARIES ${GMOCK_FROM_SOURCE_MAIN_LIBRARIES})

if(GMOCK_FROM_SOURCE_BASE_DIR STREQUAL gmock_vendor_BASE_DIR)
# if gmock_vendor is being used it should not be used for gtests
# instead gtest_vendor should be used directly
else()
set(_gtest_base_dir "${GMOCK_FROM_SOURCE_BASE_DIR}/gtest")
# set from-source variables for embedded gtest
set(GTEST_FROM_SOURCE_FOUND TRUE CACHE INTERNAL "")
set(GTEST_FROM_SOURCE_BASE_DIR "${_gtest_base_dir}" CACHE INTERNAL "")
set(GTEST_FROM_SOURCE_INCLUDE_DIRS "${_gtest_base_dir}/include" CACHE INTERNAL "")
set(GTEST_FROM_SOURCE_LIBRARY_DIRS "${_gmock_binary_dir}/gtest" CACHE INTERNAL "")
set(GTEST_FROM_SOURCE_LIBRARIES "gtest" CACHE INTERNAL "")
set(GTEST_FROM_SOURCE_MAIN_LIBRARIES "gtest_main" CACHE INTERNAL "")
# the GMock headers require the GTest headers
find_package(ament_cmake_gtest REQUIRED)
ament_find_gtest()
list(APPEND GMOCK_INCLUDE_DIRS ${GTEST_INCLUDE_DIRS})
endif()
endif()

Expand All @@ -133,7 +126,3 @@ endmacro()

include("${ament_cmake_gmock_DIR}/ament_add_gmock.cmake")
include("${ament_cmake_gmock_DIR}/ament_find_gmock.cmake")

find_package(ament_cmake_core QUIET REQUIRED)
ament_register_extension("ament_cmake_gtest_find_gtest" "ament_cmake_gmock"
"ament_cmake_gmock_find_gtest_hook.cmake")
2 changes: 1 addition & 1 deletion ament_cmake_gmock/cmake/ament_add_gmock.cmake
Expand Up @@ -64,10 +64,10 @@ function(_ament_add_gmock target)
# to add this target as a dependency to the "test" target
add_executable("${target}" ${ARG_UNPARSED_ARGUMENTS})
target_include_directories("${target}" PUBLIC "${GMOCK_INCLUDE_DIRS}")
target_link_libraries("${target}" ${GMOCK_LIBRARIES})
if(NOT ARG_SKIP_LINKING_MAIN_LIBRARIES)
target_link_libraries("${target}" ${GMOCK_MAIN_LIBRARIES})
endif()
target_link_libraries("${target}" ${GMOCK_LIBRARIES})

set(executable "$<TARGET_FILE:${target}>")
set(result_file "${AMENT_TEST_RESULTS_DIR}/${PROJECT_NAME}/${target}.gtest.xml")
Expand Down
15 changes: 0 additions & 15 deletions ament_cmake_gmock/cmake/ament_cmake_gmock_find_gtest_hook.cmake

This file was deleted.

1 change: 1 addition & 0 deletions ament_cmake_gmock/package.xml
Expand Up @@ -9,6 +9,7 @@

<buildtool_depend>ament_cmake_core</buildtool_depend>

<buildtool_export_depend>ament_cmake_gtest</buildtool_export_depend>
<buildtool_export_depend>ament_cmake_test</buildtool_export_depend>
<buildtool_export_depend>gmock_vendor</buildtool_export_depend>
<buildtool_export_depend>google-mock</buildtool_export_depend>
Expand Down
105 changes: 48 additions & 57 deletions ament_cmake_gtest/ament_cmake_gtest-extras.cmake
Expand Up @@ -21,65 +21,56 @@ macro(_ament_cmake_gtest_find_gtest)

find_package(ament_cmake_test QUIET REQUIRED)

# allow other packages to find gtest instead
ament_execute_extensions(ament_cmake_gtest_find_gtest)

# if gtest sources were not found in a previous run
if(NOT GTEST_FROM_SOURCE_FOUND)
# try to find built versions of gtest
find_package(GTest QUIET)

# otherwise search for sources
if(NOT GTEST_FOUND)
# search path for gtest includes and sources
set(_search_path_include "")
set(_search_path_src "")

# option() consider environment variable to find gtest
if(NOT $ENV{GTEST_DIR} STREQUAL "")
list(APPEND _search_path_include "$ENV{GTEST_DIR}/include/gtest")
list(APPEND _search_path_src "$ENV{GTEST_DIR}/src")
endif()

# check to system installed path (i.e. on Ubuntu)
set(_search_path_include "/usr/include/gtest")
set(_search_path_src "/usr/src/gtest/src")

# check gtest_vendor path
find_package(gtest_vendor QUIET)
if(gtest_vendor_FOUND AND gtest_vendor_BASE_DIR)
list(APPEND _search_path_include "${gtest_vendor_BASE_DIR}/include/gtest")
list(APPEND _search_path_src "${gtest_vendor_BASE_DIR}/src")
endif()

find_file(_gtest_header_file "gtest.h"
PATHS ${_search_path_include}
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
)
find_file(_gtest_src_file
"gtest.cc"
"gtest-all.cc" # alternative when using "fused" sources
PATHS ${_search_path_src}
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
)

if(_gtest_header_file AND _gtest_src_file)
# set from-source variables
set(GTEST_FROM_SOURCE_FOUND TRUE CACHE INTERNAL "")

get_filename_component(_gtest_base_dir "${_gtest_src_file}" PATH)
get_filename_component(_gtest_base_dir "${_gtest_base_dir}" PATH)
set(GTEST_FROM_SOURCE_BASE_DIR "${_gtest_base_dir}" CACHE INTERNAL "")

get_filename_component(_gtest_include_dir "${_gtest_header_file}" PATH)
get_filename_component(_gtest_include_dir ${_gtest_include_dir} PATH)
set(GTEST_FROM_SOURCE_INCLUDE_DIRS "${_gtest_include_dir}" CACHE INTERNAL "")

set(GTEST_FROM_SOURCE_LIBRARY_DIRS "${CMAKE_BINARY_DIR}/gtest" CACHE INTERNAL "")

set(GTEST_FROM_SOURCE_LIBRARIES "gtest" CACHE INTERNAL "")
set(GTEST_FROM_SOURCE_MAIN_LIBRARIES "gtest_main" CACHE INTERNAL "")
endif()
# search path for gtest includes and sources
set(_search_path_include "")
set(_search_path_src "")

# option() consider environment variable to find gtest
if(NOT $ENV{GTEST_DIR} STREQUAL "")
list(APPEND _search_path_include "$ENV{GTEST_DIR}/include/gtest")
list(APPEND _search_path_src "$ENV{GTEST_DIR}/src")
endif()

# check to system installed path (i.e. on Ubuntu)
set(_search_path_include "/usr/include/gtest")
set(_search_path_src "/usr/src/gtest/src")

# check gtest_vendor path, prefer this version over a system installed
find_package(gtest_vendor QUIET)
if(gtest_vendor_FOUND AND gtest_vendor_BASE_DIR)
list(INSERT _search_path_include 0 "${gtest_vendor_BASE_DIR}/include/gtest")
list(INSERT _search_path_src 0 "${gtest_vendor_BASE_DIR}/src")
endif()

find_file(_gtest_header_file "gtest.h"
PATHS ${_search_path_include}
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
)
find_file(_gtest_src_file
"gtest.cc"
"gtest-all.cc"
PATHS ${_search_path_src}
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
)

if(_gtest_header_file AND _gtest_src_file)
# set from-source variables
set(GTEST_FROM_SOURCE_FOUND TRUE CACHE INTERNAL "")

get_filename_component(_gtest_base_dir "${_gtest_src_file}" PATH)
get_filename_component(_gtest_base_dir "${_gtest_base_dir}" PATH)
set(GTEST_FROM_SOURCE_BASE_DIR "${_gtest_base_dir}" CACHE INTERNAL "")

get_filename_component(_gtest_include_dir "${_gtest_header_file}" PATH)
get_filename_component(_gtest_include_dir ${_gtest_include_dir} PATH)
set(GTEST_FROM_SOURCE_INCLUDE_DIRS "${_gtest_include_dir}" CACHE INTERNAL "")

set(GTEST_FROM_SOURCE_LIBRARY_DIRS "${CMAKE_BINARY_DIR}/gtest" CACHE INTERNAL "")

set(GTEST_FROM_SOURCE_LIBRARIES "gtest" CACHE INTERNAL "")
set(GTEST_FROM_SOURCE_MAIN_LIBRARIES "gtest_main" CACHE INTERNAL "")
endif()
endif()

Expand Down
6 changes: 3 additions & 3 deletions ament_cmake_gtest/cmake/ament_add_gtest_executable.cmake
Expand Up @@ -49,13 +49,13 @@ function(_ament_add_gtest_executable target)
# to add this target as a dependency to the "test" target
add_executable("${target}" ${ARG_UNPARSED_ARGUMENTS})
target_include_directories("${target}" PUBLIC "${GTEST_INCLUDE_DIRS}")
if(NOT ARG_SKIP_LINKING_MAIN_LIBRARIES)
target_link_libraries("${target}" ${GTEST_MAIN_LIBRARIES})
endif()
target_link_libraries("${target}" ${GTEST_LIBRARIES})
if(NOT WIN32)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries("${target}" Threads::Threads)
endif()
if(NOT ARG_SKIP_LINKING_MAIN_LIBRARIES)
target_link_libraries("${target}" ${GTEST_MAIN_LIBRARIES})
endif()
endfunction()

0 comments on commit e70b1cf

Please sign in to comment.