| 
									
										
										
										
											2019-05-29 14:55:17 +02:00
										 |  |  | #.rst:
 | 
					
						
							|  |  |  | # FindGoogleBenchmark
 | 
					
						
							|  |  |  | # -----------------
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | # Try to locate the GoogleBenchmark source files, and then build them as a
 | 
					
						
							|  |  |  | # static library.
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | # The ``GOOGLEBENCHMARK_DIR`` (CMake or Environment) variable should be used
 | 
					
						
							|  |  |  | # to pinpoint the GoogleBenchmark source files.
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | # If found, this will define the following variables:
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | # ``GoogleBenchmark_FOUND``
 | 
					
						
							|  |  |  | #     True if the GoogleBenchmark source package has been found.
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | # ``GoogleBenchmark``
 | 
					
						
							|  |  |  | #     Target compiled as static library.
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | find_path(GOOGLE_BENCHMARK_INCLUDE_DIR | 
					
						
							|  |  |  |   NAMES benchmark/benchmark.h
 | 
					
						
							|  |  |  |   PATH_SUFFIXES include
 | 
					
						
							|  |  |  |   HINTS
 | 
					
						
							|  |  |  |     "${GOOGLEBENCHMARK_DIR}" ENV GOOGLEBENCHMARK_DIR
 | 
					
						
							| 
									
										
										
										
											2019-06-26 17:51:06 +02:00
										 |  |  |     "${CMAKE_SOURCE_DIR}/benchmark"
 | 
					
						
							| 
									
										
										
										
											2019-05-29 14:55:17 +02:00
										 |  |  |     "${CMAKE_SOURCE_DIR}/../benchmark"
 | 
					
						
							|  |  |  |     "${CMAKE_SOURCE_DIR}/../../benchmark"
 | 
					
						
							|  |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | find_path(GOOGLE_BENCHMARK_SRC_DIR | 
					
						
							|  |  |  |   NAMES benchmark.cc
 | 
					
						
							|  |  |  |   PATH_SUFFIXES src
 | 
					
						
							|  |  |  |   HINTS
 | 
					
						
							|  |  |  |     "${GOOGLEBENCHMARK_DIR}" ENV GOOGLEBENCHMARK_DIR
 | 
					
						
							| 
									
										
										
										
											2019-06-26 17:51:06 +02:00
										 |  |  |     "${CMAKE_SOURCE_DIR}/benchmark"
 | 
					
						
							| 
									
										
										
										
											2019-05-29 14:55:17 +02:00
										 |  |  |     "${CMAKE_SOURCE_DIR}/../benchmark"
 | 
					
						
							|  |  |  |     "${CMAKE_SOURCE_DIR}/../../benchmark"
 | 
					
						
							|  |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | include(FindPackageHandleStandardArgs)
 | 
					
						
							|  |  |  | find_package_handle_standard_args(GoogleBenchmark | 
					
						
							|  |  |  |   DEFAULT_MSG
 | 
					
						
							|  |  |  |     GOOGLE_BENCHMARK_INCLUDE_DIR GOOGLE_BENCHMARK_SRC_DIR
 | 
					
						
							|  |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if(GoogleBenchmark_FOUND AND NOT TARGET GoogleBenchmark)
 | 
					
						
							|  |  |  |   add_library(GoogleBenchmark STATIC | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/benchmark.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/benchmark_api_internal.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/benchmark_name.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/benchmark_register.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/benchmark_runner.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/colorprint.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/commandlineflags.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/complexity.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/console_reporter.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/counter.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/csv_reporter.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/json_reporter.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/reporter.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/sleep.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/statistics.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/string_util.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/sysinfo.cc"
 | 
					
						
							|  |  |  |     "${GOOGLE_BENCHMARK_SRC_DIR}/timers.cc"
 | 
					
						
							|  |  |  |   )
 | 
					
						
							|  |  |  |   target_include_directories(GoogleBenchmark | 
					
						
							|  |  |  |     PUBLIC
 | 
					
						
							|  |  |  |       "${GOOGLE_BENCHMARK_INCLUDE_DIR}"
 | 
					
						
							|  |  |  |     PRIVATE
 | 
					
						
							|  |  |  |       "${GOOGLE_BENCHMARK_SRC_DIR}"
 | 
					
						
							|  |  |  |   )
 | 
					
						
							|  |  |  |   target_compile_definitions(GoogleBenchmark PRIVATE HAVE_STD_REGEX WITH_BENCHMARKS)
 | 
					
						
							|  |  |  |   if (WIN32)
 | 
					
						
							|  |  |  |     target_link_libraries(GoogleBenchmark PRIVATE shlwapi)
 | 
					
						
							|  |  |  |   endif()
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | mark_as_advanced(GOOGLE_BENCHMARK_INCLUDE_DIR GOOGLE_BENCHMARK_SRC_DIR)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | include(FeatureSummary)
 | 
					
						
							|  |  |  | set_package_properties(GoogleBenchmark PROPERTIES | 
					
						
							|  |  |  |   URL "https://github.com/google/benchmark"
 | 
					
						
							|  |  |  |   DESCRIPTION "A microbenchmark support library")
 |