summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/boolector-find-googletest.patch
diff options
context:
space:
mode:
authorLiliana Marie Prikler <liliana.prikler@gmail.com>2023-02-25 09:25:34 +0100
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2023-03-05 08:17:58 +0100
commita10cc08a0f848f490635191cf1137e68b63c9d3c (patch)
treec1c1dbf514d7f7ca0c4404e92711e3af7598c7dd /gnu/packages/patches/boolector-find-googletest.patch
parent1164f100d356502b96171b22897e1320d925eaa8 (diff)
gnu: Add boolector.
* gnu/packages/patches/boolector-find-googletest: New file. * gnu/local.mk (dist_patch_DATA): Register it here. * gnu/packages/maths.scm (boolector): New variable.
Diffstat (limited to 'gnu/packages/patches/boolector-find-googletest.patch')
-rw-r--r--gnu/packages/patches/boolector-find-googletest.patch204
1 files changed, 204 insertions, 0 deletions
diff --git a/gnu/packages/patches/boolector-find-googletest.patch b/gnu/packages/patches/boolector-find-googletest.patch
new file mode 100644
index 0000000000..baa7c6cd96
--- /dev/null
+++ b/gnu/packages/patches/boolector-find-googletest.patch
@@ -0,0 +1,204 @@
+From 91533caf29a2c5b10b4912fd352e7af82c787598 Mon Sep 17 00:00:00 2001
+From: Aina Niemetz <aina.niemetz@gmail.com>
+Date: Wed, 16 Jun 2021 16:17:27 -0700
+Subject: [PATCH] Configure google test as external project.
+
+---
+ CMakeLists.txt | 7 ----
+ cmake/FindGoogleTest.cmake | 60 +++++++++++++++++++++++++++++++++
+ cmake/googletest-download.cmake | 28 ---------------
+ cmake/googletest.cmake | 41 ----------------------
+ test/CMakeLists.txt | 5 ++-
+ 5 files changed, 64 insertions(+), 77 deletions(-)
+ create mode 100644 cmake/FindGoogleTest.cmake
+ delete mode 100644 cmake/googletest-download.cmake
+ delete mode 100644 cmake/googletest.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 38056ede6..d30475bcd 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -440,13 +440,6 @@ configure_file(
+ #-----------------------------------------------------------------------------#
+ # Regression tests
+
+-# Get and configure google test
+-include(cmake/googletest.cmake)
+-fetch_googletest(
+- ${PROJECT_SOURCE_DIR}/cmake
+- ${PROJECT_BINARY_DIR}/googletest
+- )
+-
+ enable_testing()
+
+ #-----------------------------------------------------------------------------#
+diff --git a/cmake/FindGoogleTest.cmake b/cmake/FindGoogleTest.cmake
+new file mode 100644
+index 000000000..c6eecd179
+--- /dev/null
++++ b/cmake/FindGoogleTest.cmake
+@@ -0,0 +1,60 @@
++# Boolector: Satisfiablity Modulo Theories (SMT) solver.
++#
++# Copyright (C) 2007-2021 by the authors listed in the AUTHORS file.
++#
++# This file is part of Boolector.
++# See COPYING for more information on using this software.
++#
++
++# Find GTest
++#
++# GTest_FOUND - Found GTest
++# GTest::GTest - GTest library
++
++find_package(GTest 1.10.0)
++
++if(NOT GTest_FOUND)
++ include(ExternalProject)
++
++ set(GTest_VERSION "1.10.0")
++
++ ExternalProject_Add(
++ GTest-EP
++ PREFIX "${CMAKE_BINARY_DIR}/deps"
++ URL https://github.com/google/googletest/archive/refs/tags/release-${GTest_VERSION}.tar.gz
++ URL_HASH SHA1=9c89be7df9c5e8cb0bc20b3c4b39bf7e82686770
++ DOWNLOAD_NAME gtest.tar.gz
++ CMAKE_ARGS
++ -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
++ BUILD_COMMAND ${CMAKE_COMMAND} --build .
++ BUILD_BYPRODUCTS
++ <INSTALL_DIR>/lib/libgtest.a
++ <INSTALL_DIR>/lib/libgtest_main.a
++ LOG_DOWNLOAD ON
++ LOG_UPDATE ON
++ LOG_CONFIGURE ON
++ LOG_BUILD ON
++ LOG_INSTALL ON
++ LOG_OUTPUT_ON_FAILURE TRUE
++ )
++
++ set(GTest_INCLUDE_DIR "${CMAKE_BINARY_DIR}/deps/include/")
++ set(GTest_MAIN_LIBRARY "${CMAKE_BINARY_DIR}/deps/lib/libgtest_main.a")
++ set(GTest_LIBRARY "${CMAKE_BINARY_DIR}/deps/lib/libgtest.a")
++ file(MAKE_DIRECTORY "${GTest_INCLUDE_DIR}")
++
++ add_library(GTest::gtest_main STATIC IMPORTED GLOBAL)
++ set_target_properties(GTest::gtest_main
++ PROPERTIES
++ IMPORTED_LOCATION "${GTest_MAIN_LIBRARY}"
++ INTERFACE_INCLUDE_DIRECTORIES "${GTest_INCLUDE_DIR}"
++ INTERFACE_LINK_LIBRARIES "${GTest_LIBRARY}"
++ )
++ set(GTest_FOUND TRUE)
++ add_dependencies(GTest::gtest_main GTest-EP)
++ message(STATUS "Building GTest ${GTest_VERSION}: ${GTest_MAIN_LIBRARY}")
++
++ mark_as_advanced(GTest_FOUND)
++ mark_as_advanced(GTest_INCLUDE_DIR)
++ mark_as_advanced(GTest_LIBRARIES)
++endif()
+diff --git a/cmake/googletest-download.cmake b/cmake/googletest-download.cmake
+deleted file mode 100644
+index 8dca59539..000000000
+--- a/cmake/googletest-download.cmake
++++ /dev/null
+@@ -1,28 +0,0 @@
+-# Boolector: Satisfiablity Modulo Theories (SMT) solver.
+-#
+-# Copyright (C) 2007-2021 by the authors listed in the AUTHORS file.
+-#
+-# This file is part of Boolector.
+-# See COPYING for more information on using this software.
+-#
+-
+-# code copied from https://crascit.com/2015/07/25/cmake-gtest/
+-cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
+-
+-project(googletest-download NONE)
+-
+-include(ExternalProject)
+-
+-ExternalProject_Add(
+- googletest
+- SOURCE_DIR "@GOOGLETEST_DOWNLOAD_ROOT@/googletest-src"
+- BINARY_DIR "@GOOGLETEST_DOWNLOAD_ROOT@/googletest-build"
+- GIT_REPOSITORY
+- https://github.com/google/googletest.git
+- GIT_TAG
+- release-1.10.0
+- CONFIGURE_COMMAND ""
+- BUILD_COMMAND ""
+- INSTALL_COMMAND ""
+- TEST_COMMAND ""
+- )
+diff --git a/cmake/googletest.cmake b/cmake/googletest.cmake
+deleted file mode 100644
+index af5a5bc36..000000000
+--- a/cmake/googletest.cmake
++++ /dev/null
+@@ -1,41 +0,0 @@
+-# Boolector: Satisfiablity Modulo Theories (SMT) solver.
+-#
+-# Copyright (C) 2007-2021 by the authors listed in the AUTHORS file.
+-#
+-# This file is part of Boolector.
+-# See COPYING for more information on using this software.
+-#
+-
+-# the following code to fetch googletest
+-# is inspired by and adapted after https://crascit.com/2015/07/25/cmake-gtest/
+-# download and unpack googletest at configure time
+-
+-macro(fetch_googletest _download_module_path _download_root)
+- set(GOOGLETEST_DOWNLOAD_ROOT ${_download_root})
+- configure_file(
+- ${_download_module_path}/googletest-download.cmake
+- ${_download_root}/CMakeLists.txt
+- @ONLY
+- )
+- unset(GOOGLETEST_DOWNLOAD_ROOT)
+-
+- execute_process(
+- COMMAND
+- "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
+- WORKING_DIRECTORY
+- ${_download_root}
+- )
+- execute_process(
+- COMMAND
+- "${CMAKE_COMMAND}" --build .
+- WORKING_DIRECTORY
+- ${_download_root}
+- )
+-
+- # adds the targers: gtest, gtest_main, gmock, gmock_main
+- add_subdirectory(
+- ${_download_root}/googletest-src
+- ${_download_root}/googletest-build
+- EXCLUDE_FROM_ALL
+- )
+-endmacro()
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index 13f87d5e0..f2e14fd81 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -5,6 +5,9 @@
+ # This file is part of Boolector.
+ # See COPYING for more information on using this software.
+ #
++
++find_package(GoogleTest REQUIRED)
++
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/tests)
+
+ set(test_names
+@@ -47,7 +50,7 @@ foreach(test ${test_names})
+ add_executable (test${test} test_${test}.cpp)
+ target_include_directories(test${test} PRIVATE ${PROJECT_SOURCE_DIR}/test/new_test)
+ target_link_libraries(test${test} boolector m)
+- target_link_libraries(test${test} gtest_main)
++ target_link_libraries(test${test} GTest::gtest_main)
+ set_target_properties(test${test} PROPERTIES OUTPUT_NAME test${test})
+ add_test(${test} ${CMAKE_BINARY_DIR}/bin/tests/test${test})
+ endforeach()