aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-05-10 02:03:20 -0700
committerGitHub <noreply@github.com>2017-05-10 02:03:20 -0700
commitc25faaa7e91bd5dd75b5d326aaf0fd5ca745d50c (patch)
tree42e321954e0b8544ebaa958c5bf2bfe26a7111f9
parent181099fecc71a301953560dcfbcd9a1e45cc4422 (diff)
parent5fb2f600850e3072823312b273f99d72295e9f65 (diff)
downloadvcpkg-c25faaa7e91bd5dd75b5d326aaf0fd5ca745d50c.tar.gz
vcpkg-c25faaa7e91bd5dd75b5d326aaf0fd5ca745d50c.zip
Merge pull request #1061 from KindDragon/gbenchmark
[benchmark] Initial commit for Google Benchmark library
-rw-r--r--ports/benchmark/CONTROL3
-rw-r--r--ports/benchmark/fix-cmakelists.patch27
-rw-r--r--ports/benchmark/portfile.cmake42
3 files changed, 72 insertions, 0 deletions
diff --git a/ports/benchmark/CONTROL b/ports/benchmark/CONTROL
new file mode 100644
index 000000000..21f36fe43
--- /dev/null
+++ b/ports/benchmark/CONTROL
@@ -0,0 +1,3 @@
+Source: benchmark
+Version: 1.1.0
+Description: A library to support the benchmarking of functions, similar to unit-tests. \ No newline at end of file
diff --git a/ports/benchmark/fix-cmakelists.patch b/ports/benchmark/fix-cmakelists.patch
new file mode 100644
index 000000000..f1d72fdc3
--- /dev/null
+++ b/ports/benchmark/fix-cmakelists.patch
@@ -0,0 +1,27 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 4038875..94d2aea 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -28,17 +28,20 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+ endif()
+
+ # Expose public API
+-target_include_directories(benchmark PUBLIC ${PROJECT_SOURCE_DIR}/include)
++target_include_directories(benchmark PRIVATE ${PROJECT_SOURCE_DIR}/include)
+
+ # Install target (will install the library to specified CMAKE_INSTALL_PREFIX variable)
+ install(
+ TARGETS benchmark
++ EXPORT benchmarkTargets
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+ RUNTIME DESTINATION bin
+- COMPONENT library)
++ INCLUDES DESTINATION include)
+
+ install(
+ DIRECTORY "${PROJECT_SOURCE_DIR}/include/benchmark"
+ DESTINATION include
+ FILES_MATCHING PATTERN "*.*h")
++
++install(EXPORT benchmarkTargets NAMESPACE benchmark:: DESTINATION share/benchmark)
diff --git a/ports/benchmark/portfile.cmake b/ports/benchmark/portfile.cmake
new file mode 100644
index 000000000..d8fc98a7e
--- /dev/null
+++ b/ports/benchmark/portfile.cmake
@@ -0,0 +1,42 @@
+if(VCPKG_CRT_LINKAGE STREQUAL static)
+ message(FATAL_ERROR "Google benchmark only supports dynamic crt linkage.")
+endif()
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ message(STATUS "Warning: Dynamic building not supported yet. Building static.")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/benchmark
+ REF v1.1.0
+ SHA512 533061531e6a37723a626addc9e779018c4c2cfc8634ae45860eec0d3800103b5b562f865ac1dc0c8dbe045579b81e59de887e1c48318cebf160f03c18321831
+ HEAD_REF master
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBENCHMARK_ENABLE_TESTING=OFF
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/benchmark)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/benchmark/LICENSE ${CURRENT_PACKAGES_DIR}/share/benchmark/copyright)