summaryrefslogtreecommitdiff
path: root/cmake/FindKissat.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/FindKissat.cmake')
-rw-r--r--cmake/FindKissat.cmake67
1 files changed, 61 insertions, 6 deletions
diff --git a/cmake/FindKissat.cmake b/cmake/FindKissat.cmake
index 66cd983f5..e71a64eea 100644
--- a/cmake/FindKissat.cmake
+++ b/cmake/FindKissat.cmake
@@ -13,15 +13,70 @@
# Kissat_INCLUDE_DIR - the Kissat include directory
# Kissat_LIBRARIES - Libraries needed to use Kissat
+include(deps-helper)
+
find_path(Kissat_INCLUDE_DIR NAMES kissat/kissat.h)
find_library(Kissat_LIBRARIES NAMES kissat)
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(Kissat
- DEFAULT_MSG Kissat_INCLUDE_DIR Kissat_LIBRARIES)
+set(Kissat_FOUND_SYSTEM FALSE)
+if(Kissat_INCLUDE_DIR AND Kissat_LIBRARIES)
+ set(Kissat_FOUND_SYSTEM TRUE)
+
+ # Unfortunately it is not part of the headers
+ find_library(Kissat_BINARY NAMES kissat)
+ if(Kissat_BINARY)
+ execute_process(
+ COMMAND ${Kissat_BINARY} --version OUTPUT_VARIALE Kissat_VERSION
+ )
+ else()
+ set(Kissat_VERSION "")
+ endif()
+
+ check_system_version("Kissat")
+endif()
+
+if(NOT Kissat_FOUND_SYSTEM)
+ include(ExternalProject)
+
+ fail_if_include_missing("sys/resource.h" "Kissat")
-mark_as_advanced(Kissat_INCLUDE_DIR Kissat_LIBRARIES)
-if(Kissat_LIBRARIES)
- message(STATUS "Found Kissat library: ${Kissat_LIBRARIES}")
+ # TODO(mpreiner): use the version from github?
+ set(Kissat_VERSION "sc2020-039805f2")
+
+ ExternalProject_Add(
+ Kissat-EP
+ PREFIX ${DEPS_PREFIX}
+ BUILD_IN_SOURCE ON
+ URL http://fmv.jku.at/kissat/kissat-${Kissat_VERSION}.tar.xz
+ URL_HASH SHA1=5125efa17d383c7e7c1e6d803e3422b17cebcedb
+ CONFIGURE_COMMAND <SOURCE_DIR>/configure -fPIC --quiet
+ CC=${CMAKE_C_COMPILER}
+ INSTALL_COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/build/libkissat.a
+ <INSTALL_DIR>/lib/libkissat.a
+ COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/src/kissat.h
+ <INSTALL_DIR>/include/kissat/kissat.h
+ )
+
+ set(Kissat_INCLUDE_DIR "${DEPS_BASE}/include/")
+ set(Kissat_LIBRARIES "${DEPS_BASE}/lib/libkissat.a")
endif()
+set(Kissat_FOUND TRUE)
+
+add_library(Kissat STATIC IMPORTED GLOBAL)
+set_target_properties(Kissat PROPERTIES IMPORTED_LOCATION "${Kissat_LIBRARIES}")
+set_target_properties(
+ Kissat PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${Kissat_INCLUDE_DIR}"
+)
+
+mark_as_advanced(Kissat_FOUND)
+mark_as_advanced(Kissat_FOUND_SYSTEM)
+mark_as_advanced(Kissat_INCLUDE_DIR)
+mark_as_advanced(Kissat_LIBRARIES)
+
+if(Kissat_FOUND_SYSTEM)
+ message(STATUS "Found Kissat ${Kissat_VERSION}: ${Kissat_LIBRARIES}")
+else()
+ message(STATUS "Building Kissat ${Kissat_VERSION}: ${Kissat_LIBRARIES}")
+ add_dependencies(Kissat Kissat-EP)
+endif()
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback