Closed PhilippvK closed 1 year ago
@fabianpedd do we really have to use such a recent cmake version? it would be nice to stick with 3.16 which is available in ubuntu 20
@rafzi I think I was using some recent feature only available in newer CMake versions. I will have a look and check if it's actually necessary. But the unit tests run just fine on the GH action machines (both on Ubuntu 18 and 20). Do they have newer CMake versions on their machines?
I think there was some strange behavior where CMAKE_OBJCOPY
and CMAKE_OBJECTDUMP
would not be populated automatically when cross-compiling (by providing a toolchain file which sets CMAKE_C(XX)_COMPILER which was resolved by going to the latest version. However this approach was rather lazy because setting the variables manually in the toolchain file would have also worked out.
i can double check with the version of cmake installed on the chair computers by default and report if the issue still exists.
Unrelated to muriscvnn:
Managing the cmake version used by MLonMCU would still be a good idea as some of the main design aspects of the project have been:
apt-get
unless necessary.However there are also some disadvantages:
In the end we could go with a hybrid approach as also possible with all the other dependencies (riscv_gcc, tflmc,…)
mlonmcu setup
if cmake.exe
was not provided by the user in the vars section of the environment.yml
.cmake.exe: cmake
Would then use the default system version looked up in the PATH
See #97
The new muriscvnn has a relatively strict requirement on the used CMake version (3.22 or so) which leads to erros on most OSes.
Currently this results in an error during
mlonmcu setup
which is quite hard to read so we should catch stuff like this earlier.Two ideas:
utils.cmake()
is called instead of the system one._validate_muriscvnn()
function which throws an more-readable error if the version of CMake installed on the system is too low.@rafzi @fabianpedd what do you think?