Comments (9)
Thanks for bringing this up! I had similar issues with the cmake build for CVC4. I'll look up what I did back then to fix the issue and will also fix it for Boolector. I think that I went with option 1.
from boolector.
Ok I checked, option 1 is indeed already the case (FindPythonExtensions.cmake first calls PythonInterp and then PythonLibs). In CVC4 I explicitly checked that Python libs are the same version as the interpreter (https://github.com/CVC4/CVC4/blob/master/src/bindings/python/CMakeLists.txt#L6).
I've commited a fix on branch cmake-improvements
(https://github.com/Boolector/boolector/tree/cmake-improvements). Can you check if this fixes your problem?
from boolector.
In general, that is a good fix. For Travis CI this still does not work for two reasons:
- python 3.7: The libpython is actually under /opt, and this does not seem to be in the search path of cmake. I am unsure how specific this is to Travis, and therefore I am currently working around it by copying the libpython in a location that is in the cmake search path (i.e., within the virtual environment).
- python 2.7: The difference is in the release version, and this patch does not account for that:
-- Found PythonInterp: /home/travis/virtualenv/python2.7.15/bin/python (found version "2.7.15")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found suitable version "2.7.12", minimum required is "2.7")
I am now trying to copy the libpython within the virtualenv, to avoid this problem also for python 2.7. I will let you know if this works.
from boolector.
The release version is now also checked (pushed to master).
from boolector.
However, this now breaks the mac OS build, since the release version can't be found:
-- Found PythonInterp: /usr/local/bin/python (found version "2.7.15")
CMake Error at /usr/local/Cellar/cmake/3.11.4/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find PythonLibs: Found unsuitable version "2.7.10", but required
is at least "2.7.15" (found /usr/lib/libpython2.7.dylib)
from boolector.
It works with Python3 on Travis osx. Seems to be a Python 2.7 configuration issue on Travis osx. @marcogario let me know if this issue is now resolved for you.
from boolector.
We resolved (well, @mikand did) this in pysmt/pysmt#514 (see [1]) to patch the call to cmake and be explicit about the versions of python that we need.
The cases in which is needed seem to be very few, and mainly when there are multiple versions of python installed with minor mismatches. It might not be valuable to have a fix in boolector for this. In my opinion, this can be closed.
from boolector.
@marcogario I agree that a complicated machinery to search python is unnecessary, but it would be useful to expose in the configure script a parameter to force (and possibly override) the cmake configuration. My patch practically rewrites the configure script to pass the correct python directory to cmake, and allowing this override directly as a parameter could be useful.
from boolector.
This has been fixed in 4c578d4.
It is now possible to define CMAKE_OPTS
prior to calling configure.sh
to set additional flags in CMake. pySMT now uses this instead of hot-patching the configure.sh (See pysmt/pysmt#577.)
from boolector.
Related Issues (20)
- Is there any Distribution Constraint sv equivalent in boolector?
- Printing of Constant Arrays
- Linker error when building boolector from source HOT 2
- windows10 install pyboolector failed HOT 1
- ./configure.sh problem HOT 2
- install pyboolector failed on python 3.11 macos
- Stuck rewriting in rewrite_eq_exp
- Installing pyboolector fails for python 3.11.3 on Linux (Arch) HOT 2
- install error on macos 13.4.1
- Hello, how do I install Boolector and cryptominisat offline? HOT 1
- Make error while running btor2tools HOT 15
- How to install pyboolector for pypy HOT 1
- Tests fail to compile: error: no member named 'make_unique' in namespace 'std', etc. HOT 1
- FileNotFoundError when installing on windows
- BtorMC --kind not converging
- Wrong path for libbtor2parser.a in reach's Makefile HOT 1
- Difference of boolector_not and boolector_neg? HOT 1
- PyBoolector metadata version mismatch causing install failure HOT 4
- Tests fail to build: error: C++ versions less than C++14 are not supported HOT 3
- The test 'bv' doesn't finish in 8 mins
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from boolector.