Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
benchmark
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
benchmark
Commits
2844167f
Commit
2844167f
authored
Apr 05, 2018
by
Eric Fiselier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix #564 - gmock/gmock.h not found in benchmark tests.
parent
9913418d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
18 deletions
+40
-18
HandleGTest.cmake
cmake/HandleGTest.cmake
+40
-18
No files found.
cmake/HandleGTest.cmake
View file @
2844167f
...
@@ -54,40 +54,62 @@ macro(build_external_gtest)
...
@@ -54,40 +54,62 @@ macro(build_external_gtest)
)
)
ExternalProject_Get_Property
(
googletest install_dir
)
ExternalProject_Get_Property
(
googletest install_dir
)
set
(
GTEST_INCLUDE_DIRS
${
install_dir
}
/include
)
add_library
(
gtest UNKNOWN IMPORTED
)
file
(
MAKE_DIRECTORY
${
GTEST_INCLUDE_DIRS
}
)
add_library
(
gtest_main UNKNOWN IMPORTED
)
set
(
LIB_SUFFIX
"
${
CMAKE_STATIC_LIBRARY_SUFFIX
}
"
)
set
(
LIB_SUFFIX
"
${
CMAKE_STATIC_LIBRARY_SUFFIX
}
"
)
set
(
LIB_PREFIX
"
${
CMAKE_STATIC_LIBRARY_PREFIX
}
"
)
set
(
LIB_PREFIX
"
${
CMAKE_STATIC_LIBRARY_PREFIX
}
"
)
if
(
"
${
GTEST_BUILD_TYPE
}
"
STREQUAL
"DEBUG"
)
if
(
"
${
GTEST_BUILD_TYPE
}
"
STREQUAL
"DEBUG"
)
set
(
LIB_SUFFIX
"d
${
CMAKE_STATIC_LIBRARY_SUFFIX
}
"
)
set
(
LIB_SUFFIX
"d
${
CMAKE_STATIC_LIBRARY_SUFFIX
}
"
)
endif
()
endif
()
file
(
MAKE_DIRECTORY
${
install_dir
}
/include
)
set_target_properties
(
gtest PROPERTIES
# Use gmock_main instead of gtest_main because it initializes gtest as well.
IMPORTED_LOCATION
${
install_dir
}
/lib/
${
LIB_PREFIX
}
gtest
${
LIB_SUFFIX
}
# Note: The libraries are listed in reverse order of their dependancies.
INTERFACE_INCLUDE_DIRECTORIES
${
install_dir
}
/include
foreach
(
LIB gtest gmock gmock_main
)
)
add_library
(
${
LIB
}
UNKNOWN IMPORTED
)
set_target_properties
(
gtest_main
PROPERTIES
set_target_properties
(
${
LIB
}
PROPERTIES
IMPORTED_LOCATION
${
install_dir
}
/lib/
${
LIB_PREFIX
}
gtest_main
${
LIB_SUFFIX
}
IMPORTED_LOCATION
${
install_dir
}
/lib/
${
LIB_PREFIX
}${
LIB
}
${
LIB_SUFFIX
}
INTERFACE_INCLUDE_DIRECTORIES
${
install_dir
}
/include
INTERFACE_INCLUDE_DIRECTORIES
${
GTEST_INCLUDE_DIRS
}
)
INTERFACE_LINK_LIBRARIES
"
${
GTEST_BOTH_LIBRARIES
}
"
add_dependencies
(
gtest googletest
)
)
add_dependencies
(
gtest_main
googletest
)
add_dependencies
(
${
LIB
}
googletest
)
set
(
GTEST_BOTH_LIBRARIES gtest gtest_main
)
list
(
APPEND GTEST_BOTH_LIBRARIES
${
LIB
}
)
set
(
GTEST_INCLUDE_DIRS
${
install_dir
}
/include
)
endforeach
(
)
endmacro
(
build_external_gtest
)
endmacro
(
build_external_gtest
)
if
(
BENCHMARK_ENABLE_GTEST_TESTS
)
if
(
BENCHMARK_ENABLE_GTEST_TESTS
)
if
(
IS_DIRECTORY
${
CMAKE_SOURCE_DIR
}
/googletest
)
if
(
IS_DIRECTORY
${
CMAKE_SOURCE_DIR
}
/googletest
)
set
(
GTEST_ROOT
"
${
CMAKE_SOURCE_DIR
}
/googletest"
)
set
(
INSTALL_GTEST OFF CACHE INTERNAL
""
)
set
(
INSTALL_GTEST OFF CACHE INTERNAL
""
)
set
(
INSTALL_GMOCK OFF CACHE INTERNAL
""
)
set
(
INSTALL_GMOCK OFF CACHE INTERNAL
""
)
add_subdirectory
(
${
CMAKE_SOURCE_DIR
}
/googletest
)
add_subdirectory
(
${
CMAKE_SOURCE_DIR
}
/googletest
)
set
(
GTEST_BOTH_LIBRARIES gtest gtest_main
)
set
(
GTEST_BOTH_LIBRARIES gtest gmock gmock_main
)
foreach
(
HEADER test mock
)
# CMake 2.8 and older don't respect INTERFACE_INCLUDE_DIRECTORIES, so we
# have to add the paths ourselves.
set
(
HFILE g
${
HEADER
}
/g
${
HEADER
}
.h
)
set
(
HPATH
${
GTEST_ROOT
}
/google
${
HEADER
}
/include
)
find_path
(
HEADER_PATH_
${
HEADER
}
${
HFILE
}
NO_DEFAULT_PATHS
HINTS
${
HPATH
}
)
if
(
NOT HEADER_PATH_
${
HEADER
}
)
message
(
FATAL
"Failed to find header
${
HFILE
}
in
${
HPATH
}
"
)
endif
()
list
(
APPEND GTEST_INCLUDE_DIRS
${
HEADER_PATH_
${
HEADER
}}
)
endforeach
()
elseif
(
BENCHMARK_DOWNLOAD_DEPENDENCIES
)
elseif
(
BENCHMARK_DOWNLOAD_DEPENDENCIES
)
build_external_gtest
()
build_external_gtest
()
else
()
else
()
find_package
(
GTest REQUIRED
)
find_package
(
GTest REQUIRED
)
find_path
(
GMOCK_INCLUDE_DIRS gmock/gmock.h
HINTS
${
GTEST_INCLUDE_DIRS
}
)
if
(
NOT GMOCK_INCLUDE_DIRS
)
message
(
FATAL
"Failed to find header gmock/gmock.h with hint
${
GTEST_INCLUDE_DIRS
}
"
)
endif
()
set
(
GTEST_INCLUDE_DIRS
${
GTEST_INCLUDE_DIRS
}
${
GMOCK_INCLUDE_DIRS
}
)
# FIXME: We don't currently require the gmock library to build the tests,
# and it's likely we won't find it, so we don't try. As long as we've
# found the gmock/gmock.h header and gtest_main that should be good enough.
endif
()
endif
()
endif
()
endif
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment