Skip to content

Commit 6419940

Browse files
authored
Merge pull request #550 from lebarsfa/PR
Avoid the custom Eigen3 to override the system Eigen3, MATLAB documentation updates, ARM 32 bit manual wheel generation updates
2 parents 2a0ddda + da94bfd commit 6419940

15 files changed

Lines changed: 264 additions & 25 deletions

File tree

‎.github/workflows/dockermatrix.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
# if: (matrix.cfg.arch!='amd64')&&(matrix.cfg.arch!='x86_64')&&(matrix.cfg.arch!='i386')
6969
- run: |
7070
docker run ${{ matrix.cfg.docker_flags }} -i -v "${PWD}/..:${PWD}/.." ${{ matrix.cfg.img }} /bin/bash -c "uname -a ; cat /etc/os-release ; lsb_release -a ; cd ${PWD} && pwd && \
71-
git config --global --add safe.directory ${PWD} && \
71+
git config --global --add safe.directory ${PWD} && git config --global --add safe.directory ${PWD}/.git || true && \
7272
if [ \"${{ matrix.cfg.deb }}\" = \"true\" ]; then \
7373
sudo sh -c 'echo \"deb [trusted=yes] https://webperso.ensta.fr/packages/\$(if [ -z \"\$(. /etc/os-release && echo \$UBUNTU_CODENAME)\" ]; then echo debian/\$(. /etc/os-release && echo \$VERSION_CODENAME); else echo ubuntu/\$(. /etc/os-release && echo \$UBUNTU_CODENAME); fi) ./\" > /etc/apt/sources.list.d/ensta-bretagne.list' && \
7474
#sudo apt-get -q update ; sudo apt-get -y install libeigen3-dev catch2 dpkg-dev || true && \\

‎CMakeLists.txt‎

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
# Compilation configuration
4646
################################################################################
4747

48+
include(GNUInstallDirs)
4849
include(FetchContent)
4950

5051
if(NOT CMAKE_BUILD_TYPE)
@@ -130,23 +131,46 @@
130131
# Looking for Eigen3
131132
################################################################################
132133

133-
option(ENABLE_FIND_PACKAGE_EIGEN3 "ENABLE_FIND_PACKAGE_EIGEN3" OFF)
134-
if(ENABLE_FIND_PACKAGE_EIGEN3)
135-
find_package(Eigen3 3.4.0 QUIET) # Use Eigen3_DIR or CMAKE_PREFIX_PATH to specify a custom Eigen3 installation path...
136-
endif()
137-
if(Eigen3_FOUND)
138-
message(STATUS "Found Eigen3 version ${Eigen3_VERSION} in ${Eigen3_DIR}")
139-
else()
140-
message(STATUS "Attempt to install custom Eigen3 automatically...")
134+
#option(ENABLE_FIND_PACKAGE_EIGEN3 "ENABLE_FIND_PACKAGE_EIGEN3" OFF)
135+
#if(ENABLE_FIND_PACKAGE_EIGEN3)
136+
# find_package(Eigen3 3.4.0 QUIET) # Use Eigen3_DIR or CMAKE_PREFIX_PATH to specify a custom Eigen3 installation path...
137+
#endif()
138+
#if(Eigen3_FOUND)
139+
# message(STATUS "Found Eigen3 version ${Eigen3_VERSION} in ${Eigen3_DIR}")
140+
#else()
141+
#message(STATUS "Attempt to get Eigen3 automatically...")
142+
message(STATUS "Attempt to get custom Eigen3...")
141143
# Over HTTPS, not plain HTTP: the connections to port 80 of github.com timed
142144
# out now and then on the GitHub Actions runners, failing the whole job at
143145
# configuration time ("Failed to connect to github.com port 80"), and HTTPS
144146
# also guarantees that the archive comes from GitHub unaltered.
145147
FetchContent_Declare(Eigen3 URL https://github.com/codac-team/eigen/archive/refs/heads/eigen-5.0.zip)
146148
#FetchContent_Declare(Eigen3 URL ${CMAKE_CURRENT_SOURCE_DIR}/3rd/eigen-a0dc3994bd5d4e804dab58decb78c56a5af516ba.zip) # If needed to be self-contained...
147-
FetchContent_MakeAvailable(Eigen3)
148-
endif()
149-
# Adds Eigen3::Eigen
149+
#
150+
#FetchContent_MakeAvailable(Eigen3)
151+
#
152+
# This avoids the install part of Eigen3 to override the system-wide Eigen3 installation if any...
153+
cmake_policy(PUSH)
154+
if (POLICY CMP0169)
155+
cmake_policy(SET CMP0169 OLD)
156+
endif()
157+
FetchContent_Populate(Eigen3)
158+
cmake_policy(POP)
159+
add_library(${PROJECT_NAME}-eigen INTERFACE)
160+
target_include_directories(${PROJECT_NAME}-eigen
161+
INTERFACE
162+
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}-eigen>"
163+
"$<BUILD_INTERFACE:${eigen3_SOURCE_DIR}>"
164+
)
165+
#if (CODAC_INSTALL)
166+
install(DIRECTORY ${eigen3_SOURCE_DIR}/unsupported/Eigen DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}-eigen/unsupported)
167+
install(DIRECTORY ${eigen3_SOURCE_DIR}/Eigen DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}-eigen)
168+
#endif()
169+
add_library(${PROJECT_NAME}::${PROJECT_NAME}-eigen ALIAS ${PROJECT_NAME}-eigen)
170+
#
171+
#endif()
172+
## Adds Eigen3::Eigen
173+
# Adds ${PROJECT_NAME}-eigen
150174

151175
################################################################################
152176
# Looking for Threads

‎doc/manual/manual/installation/cpp.rst‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ Steps
100100

101101
.. warning::
102102

103-
**GAOL prerequisite:** On some platforms, you might need to install manually `MathLib <https://github.com/lebarsfa/mathlib>`_ and `GAOL <https://github.com/lebarsfa/GAOL>`_ with CMake and `specify where they are <https://ibex-team.github.io/ibex-lib/install-cmake.html#configuration-options>`_ in order to build IBEX successfully and have accurate computations.
103+
**GAOL prerequisite:** On some platforms, you might need to install manually `MathLib <https://github.com/codac-team/mathlib>`_ and `GAOL <https://github.com/codac-team/GAOL>`_ with CMake and `specify where they are <https://ibex-team.github.io/ibex-lib/install-cmake.html#configuration-options>`_ in order to build IBEX successfully and have accurate computations.
104104

105105
3. **Install the Codac library**:
106106

‎doc/manual/manual/installation/matlab.rst‎

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,50 @@ Once Codac is installed, you can use it in your MATLAB scripts using the followi
2828
.. py.importlib.import_module('codac')
2929
3030
31+
Known installation issues and possible workarounds
32+
--------------------------------------------------
33+
34+
* On some configurations, you might need to use ``pip3`` instead of ``pip``, and/or ``--break-system-packages`` parameter, *e.g.*
35+
36+
.. code-block:: bash
37+
38+
pip3 install --break-system-packages codac4matlab
39+
40+
or
41+
42+
.. code-block:: bash
43+
44+
python3 -m pip install --break-system-packages codac4matlab
45+
46+
* In some cases, you might have multiple Python installations at different locations on your system (possibly the same Python version can be installed separately at different locations, also some versions of Python might be installed but incompatible with your version of MATLAB). In MATLAB, try to examine the output of the ``pyenv`` command to try to determine where is the Python installation that it uses and possibly run the pip install command from inside MATLAB command window with the ``!`` prefix *e.g.* ``!pip install codac4matlab``, or from a Windows Administrator command prompt with the full path to the python executable *e.g* ``"C:\Python312\python.exe" -m pip install codac4matlab``.
47+
48+
* Python virtual environments compatibility has not been tested.
49+
50+
* MATLAB Online: you will need to run `codac4matlabonline.m <https://github.com/lebarsfa/codac/raw/refs/heads/codac2/scripts/MATLAB/codac4matlabonline.m>`_. Tweak it if it does not work for you. It might not be possible to view the `VIBes viewer <../visualization/vibes.html>`_ windows, possibly use the VIBes functions to save the desired pictures as a workaround.
51+
52+
53+
MATLAB specificities
54+
--------------------
55+
56+
* You might need to add as prefix ``py.codac4matlab.`` to class or function names, e.g. ``py.codac4matlab.Interval`` for ``Interval`` to avoid potential name conflicts with other libraries, and/or do explicitely *e.g.* ``import py.codac4matlab.Interval; import py.codac4matlab.cos;`` instead of just ``import py.codac4matlab.*`` depending on your needs.
57+
58+
* When we click on a Codac variable e.g. ``IntervalVector`` (``py.codac4matlab._core.IntervalVector``), we do not get help. Please check `codac.io <../..>`_ for the documentation. Also, you can try typing *e.g.* ``X0.`` followed by the TAB key (assuming ``X0`` is a ``py.codac4matlab._core.IntervalVector``) to get a list of suggestions of properties and methods.
59+
60+
.. admonition:: Note
61+
62+
Check `codac4matlab_usage.m <https://github.com/lebarsfa/codac/raw/refs/heads/codac2/scripts/MATLAB/codac4matlab_usage.m>`_ example for some MATLAB specificities.
63+
64+
See also `Codac v1 documentation <https://codac.io/v1/install/04-start-matlab-project.html>`_ for some remaining issues and potential workarounds.
65+
66+
67+
Python to MATLAB conversions
68+
----------------------------
69+
70+
* Be sure that Python multiline strings are correctly converted to multiline MATLAB strings between ``'``. Remember that multiline statements in MATLAB need ``...`` before next line.
71+
72+
* Please also convert Python `for` loops to typical MATLAB `for` loops, same for `if-else`, `+=` statements.
73+
74+
3175
Potential problem with VIBes
3276
----------------------------
3377

@@ -40,4 +84,5 @@ A solution is to avoid using ``sudo``. If required, run MATLAB with the correct
4084

4185
.. code::
4286
43-
sudo HOME=/home/your_username matlab
87+
sudo HOME=/home/your_username matlab
88+

‎packages/temporary/gennewcodacpi_armhf.sh‎

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ cd codac
1212
git submodule init
1313
git submodule update
1414

15-
for DIST in bookworm bullseye; do
15+
for DIST in trixie bookworm bullseye; do
1616

1717
docker pull lebarsfa/pi:$DIST-for-codac
1818
docker run --rm -v `pwd`:/io lebarsfa/pi:$DIST-for-codac /bin/bash -c "uname -a ; cat /etc/os-release ; lsb_release -a ; \
19-
if [ \"\$(lsb_release -cs)\" = \"bookworm\" ]; then \
19+
if [ \"\$(lsb_release -cs)\" = \"bookworm\" ] || [ \"\$(lsb_release -cs)\" = \"trixie\" ]; then \
2020
PIP_OPTIONS=--break-system-packages ; \
2121
#python3 -m pip install \$PIP_OPTIONS --upgrade \"auditwheel\" ; \\
2222
else \
@@ -25,7 +25,10 @@ else \
2525
fi && \
2626
#sudo apt-get -q update --allow-releaseinfo-change ; sudo apt-get -y install libeigen3-dev python3-dev patchelf python3-pip python3-wheel python3-setuptools || true && \\
2727
sudo apt-get -q update --allow-releaseinfo-change ; sudo apt-get -y install python3-dev patchelf python3-pip python3-wheel python3-setuptools || true && \
28-
python3 -m pip install \$PIP_OPTIONS --upgrade patchelf --prefer-binary --extra-index-url https://www.piwheels.org/simple || true && \
28+
# On bookworm (and possibly earlier), auditwheel repair asks for a recent version of patchelf... \\
29+
if [ \"\$(lsb_release -cs)\" = \"buster\" ] || [ \"\$(lsb_release -cs)\" = \"bullseye\" ] || [ \"\$(lsb_release -cs)\" = \"bookworm\" ]; then \
30+
python3 -m pip install \$PIP_OPTIONS --upgrade patchelf --prefer-binary --extra-index-url https://www.piwheels.org/simple || true ; \
31+
fi && \
2932
python3 -m pip install \$PIP_OPTIONS --upgrade auditwheel --prefer-binary --extra-index-url https://www.piwheels.org/simple && \
3033
# wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20260819/ibex_armhf_\$(lsb_release -cs).zip --no-check-certificate -nv is causing illegal instruction on a Mac M1... \\
3134
curl -L -O https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20260819/ibex_armhf_\$(lsb_release -cs).zip --insecure && \
@@ -34,12 +37,17 @@ rm -Rf ibex_armhf_\$(lsb_release -cs).zip && \
3437
sudo cp -Rf ibex/* /usr/local/ && \
3538
\
3639
git config --global --add safe.directory /io && \
40+
git config --global --add safe.directory /io/.git || true && \
3741
cd /io && \
3842
\
3943
# Issues when some packages are upgraded or not...? \\
40-
python3 -m pip install \$PIP_OPTIONS --upgrade pip --prefer-binary --extra-index-url https://www.piwheels.org/simple && \
44+
if [ \"\$(lsb_release -cs)\" = \"buster\" ] || [ \"\$(lsb_release -cs)\" = \"bullseye\" ]; then \
45+
python3 -m pip install \$PIP_OPTIONS --upgrade pip --prefer-binary --extra-index-url https://www.piwheels.org/simple || true ; \
46+
fi && \
4147
# Without wheel upgrade from pip, the architecture might be wrong for bookworm (and possibly earlier) when building the .whl... \\
42-
python3 -m pip install \$PIP_OPTIONS --upgrade wheel --prefer-binary --extra-index-url https://www.piwheels.org/simple && \
48+
if [ \"\$(lsb_release -cs)\" = \"buster\" ] || [ \"\$(lsb_release -cs)\" = \"bullseye\" ] || [ \"\$(lsb_release -cs)\" = \"bookworm\" ]; then \
49+
python3 -m pip install \$PIP_OPTIONS --upgrade wheel --prefer-binary --extra-index-url https://www.piwheels.org/simple || true ; \
50+
fi && \
4351
# With setuptools upgrade from pip, building the .whl might fail for bullseye... \\
4452
#python3 -m pip install \$PIP_OPTIONS --upgrade setuptools --prefer-binary --extra-index-url https://www.piwheels.org/simple && \\
4553
mkdir -p build_dir_\$(lsb_release -cs) && cd build_dir_\$(lsb_release -cs) && \
@@ -68,6 +76,7 @@ sudo apt-get -y install libopenblas0-pthread || true && \
6876
sudo apt-get -y install libgfortran5 || true && \
6977
python3 -m pip install \$PIP_OPTIONS numpy --prefer-binary --extra-index-url https://www.piwheels.org/simple && \
7078
#sudo apt-get -y install python3-numpy || true && \\
79+
python3 -m pip install \$PIP_OPTIONS sympy --prefer-binary --extra-index-url https://www.piwheels.org/simple && \
7180
python3 -m unittest discover codac.tests && \
7281
\
7382
if [ \"\$(lsb_release -cs)\" = \"buster\" ]; then \
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
import py.codac4matlab.*
2+
3+
a=Interval(-1,2)
4+
a.lb
5+
a.ub
6+
7+
x=[1,2]
8+
X=IntervalVector(x)
9+
X.size
10+
X(2)
11+
X(2).init(Interval(-10,10))
12+
X
13+
14+
x={{-5,5},{-4,4}}
15+
X=IntervalVector(x)
16+
X.size
17+
18+
M=[1,2;3,4;5,6]
19+
C=arrayfun(@(i) num2cell(M(i,:)), 1:size(M,1), 'UniformOutput', false); % Inverse operation would be cell2mat(vertcat(C{:}))
20+
A=IntervalMatrix(Matrix(C))
21+
A.rows
22+
A.cols
23+
A(3,2)
24+
A(3,2).init(Interval(-10,10))
25+
A.set_item({1,2},Interval(11,12))
26+
A
27+
28+
A_lb = Matrix({{-1,-2},{-3,-4},{-5,-6}});
29+
A_ub = Matrix({{1,2},{3,4},{5,6}});
30+
A=IntervalMatrix(A_lb,A_ub)
31+
A.rows
32+
A.cols
33+
A(3,2)
34+
35+
A_ub.set_item({1,2},10)
36+
A_ub
37+
38+
function C = Matrix2cell(M)
39+
import py.codac4matlab.*
40+
r = int32(M.rows);
41+
c = int32(M.cols);
42+
C = cell(1,r);
43+
for i=1:r
44+
rl = cell(1,c);
45+
for j=1:c
46+
rl{j} = double(M(i,j));
47+
end
48+
C{i} = rl;
49+
end
50+
end
51+
52+
%M=Matrix({{1,2},{3,4},{5,6}})
53+
%Matrix2cell(M)
54+
%return
55+
56+
% It seems we cannot do A(i,j).init(x) if A is a Matrix... But we can do
57+
% A.set_item({i,j},x)...
58+
function B = setitemM(A,i,j,x)
59+
%SETITEMM Set element (i,j) of a Codac Matrix.
60+
%
61+
% B = setitemM(A,i,j,x)
62+
%
63+
% A : Codac Matrix
64+
% i : row index (1-based MATLAB indexing)
65+
% j : column index (1-based MATLAB indexing)
66+
% x : double
67+
68+
import py.codac4matlab.*
69+
C = Matrix2cell(A);
70+
C{i}{j} = x;
71+
B = Matrix(C);
72+
end
73+
74+
% Does the same as A(i,j).init(x), probably in a slower way...
75+
function B = setitemIM(A,i,j,x)
76+
%SETITEMIM Set element (i,j) of a Codac IntervalMatrix.
77+
%
78+
% B = setitemIM(A,i,j,x)
79+
%
80+
% A : Codac IntervalMatrix
81+
% i : row index (1-based MATLAB indexing)
82+
% j : column index (1-based MATLAB indexing)
83+
% x : Codac Interval
84+
85+
import py.codac4matlab.*
86+
C_lb = Matrix2cell(A.lb);
87+
C_lb{i}{j} = x.lb;
88+
C_ub = Matrix2cell(A.ub);
89+
C_ub{i}{j} = x.ub;
90+
B = IntervalMatrix(Matrix(C_lb),Matrix(C_ub));
91+
end
92+
93+
A = Matrix({{1,2},{3,4},{5,6}});
94+
A = setitemM(A,3,2,99)
95+
96+
A(3,2)
97+
A
98+
99+
A_lb = Matrix({{-1,-2},{-3,-4},{-5,-6}});
100+
A_ub = Matrix({{1,2},{3,4},{5,6}});
101+
A = IntervalMatrix(A_lb,A_ub);
102+
103+
A = setitemIM(A,2,1,Interval(100,200));
104+
105+
A(2,1)
106+
A
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
%
2+
% Since pip and AppImage do not seem to work on MATLAB Online, this script downloads and extracts codac4matlab and VIBes in the "/MATLAB Drive" folder.
3+
%
4+
% Known issues:
5+
% It might not be possible to view the VIBes windows, possibly use the VIBes functions to save the desired pictures as a workaround...
6+
%
7+
% TODO:
8+
% Replace "/MATLAB Drive" with the output of matlabdrive command (warning: might be different than $HOME...)? Might not work with shell commands prefixed by "!", but maybe with e.g. drive = matlabdrive; system('wget ... "' + drive + '/..."')...?
9+
%
10+
11+
!lsb_release -a
12+
!uname -a
13+
pyenv
14+
15+
disp('Checking, downloading and installing codac4matlab prerequisites in "/MATLAB Drive/pythonlibs" and "/MATLAB Drive/vibes"...');
16+
17+
% Equivalent of pip install --user codac4matlab
18+
!mkdir -p "/MATLAB Drive/pythonlibs"
19+
if ~isfolder("/MATLAB Drive/pythonlibs/codac4matlab")
20+
% If it does not work, please download the necessary .whl from https://pypi.org/project/codac4matlab/#files and unzip it in "/MATLAB Drive/pythonlibs"...
21+
!PY_V_MAJ=`python3 -c "import sys; print(sys.version_info[0])"`; PY_V_MIN=`python3 -c "import sys; print(sys.version_info[1])"`; CP="cp${PY_V_MAJ}${PY_V_MIN}"; VER=$(wget -qO- https://pypi.org/pypi/codac4matlab/json | grep -o '"version":"[^"]*' | head -n 1 | cut -d'"' -f4); URL=$(wget -qO- https://pypi.org/pypi/codac4matlab/json | grep -o '"url":"[^"]*' | cut -d'"' -f4 | grep "/codac4matlab-${VER}-${CP}-${CP}.*manylinux.*x86_64\.whl$" | head -n 1); cd "/MATLAB Drive/pythonlibs" && wget -q -O "$(basename "$URL")" --show-progress --progress=dot:giga "$URL" && unzip -q "$(basename "$URL")"
22+
end
23+
d = dir("/MATLAB Drive/pythonlibs/vibes-*");
24+
if ~any([d.isdir])
25+
% If it does not work, please download the necessary .tar.gz or .whl from https://pypi.org/project/vibes/#files and extract it in "/MATLAB Drive/pythonlibs"...
26+
!VER=$(wget -qO- https://pypi.org/pypi/vibes/json | grep -o '"version":"[^"]*' | head -n 1 | cut -d'"' -f4); URL=$(wget -qO- https://pypi.org/pypi/vibes/json | grep -o '"url":"[^"]*' | cut -d'"' -f4 | grep "/vibes-${VER}\.tar\.gz$" | head -n 1); cd "/MATLAB Drive/pythonlibs" && wget -q -O "$(basename "$URL")" --show-progress --progress=dot:giga "$URL" && tar xfz "$(basename "$URL")"
27+
end
28+
29+
% VIBes-viewer
30+
if ~isfolder("/MATLAB Drive/vibes/squashfs-root")
31+
!mkdir -p "/MATLAB Drive/vibes"
32+
!cd "/MATLAB Drive/vibes" ; rm -f VIBes-viewer_amd64.AppImage
33+
!cd "/MATLAB Drive/vibes" ; wget -q --show-progress --progress=dot:giga https://github.com/ENSTABretagneRobotics/VIBES/releases/latest/download/VIBes-viewer_amd64.AppImage
34+
!cd "/MATLAB Drive/vibes" ; ./VIBes-viewer_amd64.AppImage --appimage-extract >/dev/null
35+
!cd "/MATLAB Drive/vibes" ; mv squashfs-root/lib/x86_64-linux-gnu/libc.so.6 libc.so.6.bak
36+
% To run in the background, but probably no way to make the window might visible...
37+
!QT_QPA_PLATFORM_PLUGIN_PATH="/MATLAB Drive/vibes/squashfs-root/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/" ./squashfs-root/usr/bin/VIBes-viewer &
38+
!xwininfo -root -tree | grep VIBes
39+
% Maybe capture it with [~,out] = system('xwininfo -root -tree | grep "Codac - default figure"'); wid = regexp(out,'0x[0-9A-Fa-f]+','match','once'); system(sprintf('xwd -id %s -silent -out vibes.xwd', wid));...
40+
end
41+
42+
disp('End of codac4matlab prerequisites checks.');
43+
44+
% This is probably necessary every time...
45+
if count(py.sys.path, "/MATLAB Drive/pythonlibs") == 0
46+
insert(py.sys.path, int32(0), "/MATLAB Drive/pythonlibs");
47+
end
48+
49+
disp('Notes:');
50+
disp('_ This script needs to be run every time MATLAB Online is started.');
51+
disp('_ To uninstall, remove the "/MATLAB Drive/pythonlibs" and "/MATLAB Drive/vibes" folders, and remove related entries from py.sys.path.');

‎scripts/docker/build_pybinding.sh‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ rm -Rf ibex_$(uname -m)_manylinux_2_28.zip
88
sudo cp -Rf ibex/* /usr/local/
99

1010
git config --global --add safe.directory /io
11+
git config --global --add safe.directory /io/.git || true
1112
cd /io
1213

1314
# Read optional constraints from environment

‎scripts/docker/build_pybinding_codac4matlab.sh‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ rm -Rf ibex_$(uname -m)_manylinux_2_28.zip
88
sudo cp -Rf ibex/* /usr/local/
99

1010
git config --global --add safe.directory /io
11+
git config --global --add safe.directory /io/.git || true
1112
cd /io
1213

1314
# Read optional constraints from environment

‎src/CMakeLists.txt‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@
5353
"# Try to find Codac
5454
# This file has been generated by CMake
5555
56+
find_path(CODAC_EIGEN_INCLUDE_DIR Eigen/Core
57+
PATH_SUFFIXES include/${PROJECT_NAME}-eigen)
5658
find_path(CODAC_CORE_INCLUDE_DIR ${PROJECT_NAME}-core.h
5759
PATH_SUFFIXES include/${PROJECT_NAME}-core)
5860
find_path(CODAC_GRAPHICS_INCLUDE_DIR ${PROJECT_NAME}-graphics.h
@@ -71,7 +73,7 @@
7173
7274
set(CODAC_VERSION ${PROJECT_VERSION})
7375
set(CODAC_LIBRARIES \${CODAC_CORE_LIBRARY} \${CODAC_GRAPHICS_LIBRARY} \${CODAC_UNSUPPORTED_LIBRARY} Ibex::ibex)
74-
set(CODAC_INCLUDE_DIRS \${CODAC_CORE_INCLUDE_DIR}/../ \${CODAC_CORE_INCLUDE_DIR}/../eigen3/ \${CODAC_CORE_INCLUDE_DIR} \${CODAC_GRAPHICS_INCLUDE_DIR} \${CODAC_UNSUPPORTED_INCLUDE_DIR})
76+
set(CODAC_INCLUDE_DIRS \${CODAC_CORE_INCLUDE_DIR}/../ \${CODAC_EIGEN_INCLUDE_DIR} \${CODAC_CORE_INCLUDE_DIR} \${CODAC_GRAPHICS_INCLUDE_DIR} \${CODAC_UNSUPPORTED_INCLUDE_DIR})
7577
7678
set(CODAC_C_FLAGS \"\")
7779
set(CODAC_CXX_FLAGS \"\")

0 commit comments

Comments
 (0)