diff --git a/build/build-publish-solvers.xml b/build/build-publish-solvers.xml
index ba5ee167f4..c0b4de147f 100644
--- a/build/build-publish-solvers.xml
+++ b/build/build-publish-solvers.xml
@@ -177,9 +177,13 @@
-
+
+
+
+
+
diff --git a/lib/native/source/libboolector/CMakeLists.txt b/lib/native/source/libboolector/CMakeLists.txt
deleted file mode 100644
index 3f9c636fc9..0000000000
--- a/lib/native/source/libboolector/CMakeLists.txt
+++ /dev/null
@@ -1,191 +0,0 @@
-set(libboolector_src_files
- aigprop.c
- boolector.c
- interface_wrap.c
- boolectormc.c
- btorabort.c
- btoraig.c
- btoraigvec.c
- btorass.c
- btorbeta.c
- btorbv.c
- btorchkclone.c
- btorclone.c
- btorcore.c
- btordbg.c
- btordcr.c
- btorexp.c
- btormc.c
- btormodel.c
- btormsg.c
- btornode.c
- btoropt.c
- btorparse.c
- btorprintmodel.c
- btorrewrite.c
- btorrwcache.c
- btorsat.c
- btorslvaigprop.c
- btorslvfun.c
- btorslvprop.c
- btorslvpropsls.c
- btorslvquant.c
- btorslvsls.c
- btorsort.c
- btorsynth.c
- btortrapi.c
- dumper/btordumpaig.c
- dumper/btordumpbtor.c
- dumper/btordumpsmt.c
- normalizer/btornormquant.c
- normalizer/btorskolemize.c
- parser/btorbtor.c
- parser/btorbtor2.c
- parser/btorsmt.c
- parser/btorsmt2.c
- sat/btorcadical.c
- sat/btorlgl.c
- sat/btorminisat.cc
- sat/btorpicosat.c
- simplifier/btorack.c
- simplifier/btorder.c
- simplifier/btorelimapplies.c
- simplifier/btorelimslices.c
- simplifier/btorextract.c
- simplifier/btormerge.c
- simplifier/btorminiscope.c
- simplifier/btorskel.c
- simplifier/btorunconstrained.c
- utils/boolectornodemap.c
- utils/btoraigmap.c
- utils/btorhashint.c
- utils/btorhashptr.c
- utils/btormem.c
- utils/btornodeiter.c
- utils/btornodemap.c
- utils/btoroptparse.c
- utils/btorpartgen.c
- utils/btorrng.c
- utils/btorunionfind.c
- utils/btorutil.c
-)
-
-set(boolector_src_files
- boolectormain.c
- btormain.c
-)
-
-#-----------------------------------------------------------------------------#
-# boolector library
-
-add_library(boolector ${libboolector_src_files})
-target_link_libraries(boolector ${LIBRARIES})
-target_include_directories(boolector
- PUBLIC
- $
- $)
-
-target_include_directories(boolector PRIVATE ${Btor2Tools_INCLUDE_DIR})
-target_link_libraries(boolector ${Btor2Tools_LIBRARIES})
-
-find_package(JNI)
-if(JNI_FOUND)
- message (STATUS "JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}")
- message (STATUS "JNI_LIBRARIES=${JNI_LIBRARIES}")
- target_include_directories(boolector PRIVATE ${JNI_INCLUDE_DIRS})
- target_link_libraries(boolector ${JNI_LIBRARIES})
-endif()
-
-if(Lingeling_FOUND)
- target_include_directories(boolector PRIVATE ${Lingeling_INCLUDE_DIR})
- target_link_libraries(boolector ${Lingeling_LIBRARIES})
-endif()
-
-if(CaDiCaL_FOUND)
- target_include_directories(boolector PRIVATE ${CaDiCaL_INCLUDE_DIR})
- target_link_libraries(boolector ${CaDiCaL_LIBRARIES})
-endif()
-
-if(PicoSAT_FOUND)
- target_include_directories(boolector PRIVATE ${PicoSAT_INCLUDE_DIR})
- target_link_libraries(boolector ${PicoSAT_LIBRARIES})
-endif()
-
-if(MiniSat_FOUND)
- target_include_directories(boolector PRIVATE ${MiniSat_INCLUDE_DIR})
- target_link_libraries(boolector ${MiniSat_LIBRARIES})
-endif()
-
-install(TARGETS boolector
- EXPORT boolector-export
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib
-)
-
-install(EXPORT boolector-export
- FILE BoolectorTargets.cmake
- NAMESPACE Boolector::
- DESTINATION lib/cmake/Boolector)
-
-# Install header files
-install(FILES boolector.h btortypes.h DESTINATION include/boolector)
-
-#-----------------------------------------------------------------------------#
-# boolector
-
-add_executable (boolector-bin ${boolector_src_files})
-target_link_libraries(boolector-bin boolector)
-set_target_properties(boolector-bin
- PROPERTIES
- OUTPUT_NAME boolector
- RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
-if(NOT BUILD_SHARED_LIBS AND NOT APPLE)
- set(BTOR_STATIC_FLAGS "-static")
- if(HAVE_NO_EXPORT_DYNAMIC)
- set(BTOR_STATIC_FLAGS "${BTOR_STATIC_FLAGS} -Wl,--no-export-dynamic")
- endif()
- set_target_properties(boolector-bin
- PROPERTIES
- LINK_FLAGS ${BTOR_STATIC_FLAGS}
- LINK_SEARCH_START_STATIC ON LINK_SEARCH_END_STATIC ON)
-endif()
-install(TARGETS boolector-bin DESTINATION bin)
-
-#-----------------------------------------------------------------------------#
-# btormc
-
-set(btormc_src_files
- btormcmain.c
-)
-add_executable (btormc ${btormc_src_files})
-target_link_libraries(btormc boolector ${Btor2Tools_LIBRARIES})
-target_include_directories(btormc PRIVATE ${Btor2Tools_INCLUDE_DIR})
-install(TARGETS btormc DESTINATION bin)
-
-#-----------------------------------------------------------------------------#
-# btormbt
-
-if(IS_WINDOWS_BUILD)
- message(STATUS "Skipping btormbt for Windows builds")
-else()
- set(btormbt_src_files btormbt.c)
- add_executable (btormbt ${btormbt_src_files})
- target_link_libraries(btormbt boolector)
-endif()
-
-#-----------------------------------------------------------------------------#
-# btoruntrace
-
-set(btoruntrace_src_files btoruntrace.c)
-add_executable (btoruntrace ${btoruntrace_src_files})
-target_link_libraries(btoruntrace boolector)
-
-#-----------------------------------------------------------------------------#
-# btorimc
-
-set(btorimc_src_files
- btoribv.cc
- btorimc.cc
-)
-add_executable (btorimc ${btorimc_src_files})
-target_link_libraries(btorimc boolector)
diff --git a/lib/native/source/libboolector/include_interface_and_jni.patch b/lib/native/source/libboolector/include_interface_and_jni.patch
new file mode 100644
index 0000000000..f5081bd8ab
--- /dev/null
+++ b/lib/native/source/libboolector/include_interface_and_jni.patch
@@ -0,0 +1,27 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index e2781eb..b838d8e 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -1,6 +1,7 @@
+ set(libboolector_src_files
+ aigprop.c
+ boolector.c
++ interface_wrap.c
+ boolectormc.c
+ btorabort.c
+ btoraig.c
+@@ -96,6 +97,14 @@ target_include_directories(boolector
+ target_include_directories(boolector PRIVATE ${Btor2Tools_INCLUDE_DIR})
+ target_link_libraries(boolector ${Btor2Tools_LIBRARIES})
+
++find_package(JNI)
++if(JNI_FOUND)
++ message (STATUS "JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}")
++ message (STATUS "JNI_LIBRARIES=${JNI_LIBRARIES}")
++ target_include_directories(boolector PRIVATE ${JNI_INCLUDE_DIRS})
++ target_link_libraries(boolector ${JNI_LIBRARIES})
++endif()
++
+ if(GMP_FOUND)
+ target_include_directories(boolector PRIVATE ${GMP_INCLUDE_DIR})
+ target_link_libraries(boolector ${GMP_LIBRARIES})