Open arbor-arthur opened 1 year ago
Could you elaborate on why you want to set SYMFORCE_BUILD_SYMENGINE=OFF
?
Asking because the original reason for providing this flag is to only build the gen
and opt
packages.
I had difficulty building symengine due to some complex cython compilation problem. Since I had no need for symengine, I decided to just not build it! I am only using the gen
, opt
, and slam
packages.
Ah, so you aren't using any python code at all? Usually we'd recommend installing with cmake and not pip in that case
I am using python code for codegen. And even without symengine, I run the codegen infrequently enough that waiting a couple seconds is plenty fast for me!
Would this problem be different if I were invoking cmake directly instead of through pip?
Regardless, I am installing like this because of the readme saying:
If you want to compile against C++ SymForce types (like sym::Optimizer), you currently need to build from source.
If you just want to build and install SymForce without repeatedly modifying the source, the recommended way to do this is with pip.
Would this problem be different if I were invoking cmake directly instead of through pip?
Yeah invoking cmake directly, you wouldn't run into this
Regardless, I am installing like this because of the readme saying:
If you want to compile against C++ SymForce types (like sym::Optimizer), you currently need to build from source.
If you just want to build and install SymForce without repeatedly modifying the source, the recommended way to do this is with pip.
Ah, good point, we do say that. Curious if you have more info about what was going wrong with Cython? We should really get the packaged install to include everything you need to build against it, but it might also make sense to enable building SymForce from source, but pulling an already-built copy of our modified SymEngine from somewhere instead of needing to build that too, since even most people building SymForce from source aren't modifying SymEngine
The error I'm getting building Symengine with Cython is "Your Cython version is too old. Please upgrade Cython."
I ran python3 -m pip install --upgrade Cython
and the newest I get is 0.29.35, which still produces this "too old" error.
It's pretty likely the issue you're seeing is this: https://github.com/symforce-org/symforce/issues/161
Which is resolved by cleaning your build directory as mentioned there
Describe the bug Even when option
SYMFORCE_BUILD_SYMENGINE
is set toOFF
,setup.py
still attempts to install Symengine, which will now fail.To Reproduce git clone symforce v0.8.0 Set
SYMFORCE_BUILD_SYMENGINE
toOFF
I worked around this by commenting out the install code in setup.py:
Expected behavior Should not try to install Symengine when
SYMFORCE_BUILD_SYMENGINE
isOFF
.Environment (please complete the following information):
Additional context cmake version 3.26.3