aboutsummaryrefslogtreecommitdiff
path: root/src/secp256k1/cmake/FindValgrind.cmake
diff options
context:
space:
mode:
authorPieter Wuille <pieter@wuille.net>2023-03-08 17:41:24 -0500
committerPieter Wuille <pieter@wuille.net>2023-03-08 17:41:24 -0500
commite5c7fcb361d3379c254a52104b4ba25907cd07bb (patch)
tree37e8e274f70f03efae813330d9e31c40a129d81b /src/secp256k1/cmake/FindValgrind.cmake
parent710fd571ff4c3133e41d7f62922cb4cc816250d3 (diff)
parent763079a3f1b937f54e3c2d4166d296f596f7be1b (diff)
downloadbitcoin-e5c7fcb361d3379c254a52104b4ba25907cd07bb.tar.xz
Update src/secp256k1 subtree to upstream libsecp256k1 v0.3.0
Diffstat (limited to 'src/secp256k1/cmake/FindValgrind.cmake')
-rw-r--r--src/secp256k1/cmake/FindValgrind.cmake41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/secp256k1/cmake/FindValgrind.cmake b/src/secp256k1/cmake/FindValgrind.cmake
new file mode 100644
index 0000000000..f6c1f58649
--- /dev/null
+++ b/src/secp256k1/cmake/FindValgrind.cmake
@@ -0,0 +1,41 @@
+if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
+ find_program(BREW_COMMAND brew)
+ execute_process(
+ COMMAND ${BREW_COMMAND} --prefix valgrind
+ OUTPUT_VARIABLE valgrind_brew_prefix
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+endif()
+
+set(hints_paths)
+if(valgrind_brew_prefix)
+ set(hints_paths ${valgrind_brew_prefix}/include)
+endif()
+
+find_path(Valgrind_INCLUDE_DIR
+ NAMES valgrind/memcheck.h
+ HINTS ${hints_paths}
+)
+
+if(Valgrind_INCLUDE_DIR)
+ include(CheckCSourceCompiles)
+ set(CMAKE_REQUIRED_INCLUDES ${Valgrind_INCLUDE_DIR})
+ check_c_source_compiles("
+ #include <valgrind/memcheck.h>
+ #if defined(NVALGRIND)
+ # error \"Valgrind does not support this platform.\"
+ #endif
+
+ int main() {}
+ " Valgrind_WORKS)
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Valgrind
+ REQUIRED_VARS Valgrind_INCLUDE_DIR Valgrind_WORKS
+)
+
+mark_as_advanced(
+ Valgrind_INCLUDE_DIR
+)