Add check for static libraries when compiling CryptoMiniSat #7010 (#7014)
authorAndrew V. Jones <andrewvaughanj@gmail.com>
Mon, 16 Aug 2021 05:31:23 +0000 (06:31 +0100)
committerGitHub <noreply@github.com>
Mon, 16 Aug 2021 05:31:23 +0000 (05:31 +0000)
This commit adds a check for CryptoMiniSat's static dependencies when configuring CryptoMiniSat. It changes a build-time failure into a configure-time failure.

`find_library` in CMake > 3.18 supports `REQUIRED`; as `cvc5` targets 3.10, I've implemented a check for what `find_library` returns.

Signed-off-by: Andrew V. Jones <andrewvaughanj@gmail.com>
cmake/FindCryptoMiniSat.cmake

index 5b543aedc5213cbe6edc5505c3cc2bb38ac576b8..fb4ca20695ec284f53cbb24882c6582a5d3fc43a 100644 (file)
@@ -42,6 +42,20 @@ if(NOT CryptoMiniSat_FOUND_SYSTEM)
     check_auto_download("CryptoMiniSat" "--no-cryptominisat")
   endif()
 
+  # Check for static libraries required by CryptoMiniSat
+  set(CMS_STATIC_LIBS "c;m;dl;pthread")
+  foreach(static_lib ${CMS_STATIC_LIBS})
+
+    # We can't use 'REQUIRED' here, as it needs a too-recent CMake
+    find_library(lib${static_lib}_static lib${static_lib}.a)
+
+    # Check if the static library has been found
+    if(NOT lib${static_lib}_static)
+      message(FATAL_ERROR "static lib${static_lib} not found")
+    endif()
+
+  endforeach()
+
   include(ExternalProject)
 
   ExternalProject_Add(