Automatic dependency management - #37
Conversation
- Added a wrapper for Boost Pool + its dependencies.
- Added a wrapper for Boost Pool + its dependencies.
…sim3d into auto-dep-management
JaroCamphuijsen
left a comment
There was a problem hiding this comment.
Great work! I saw some things that are unclear or not working, but with some changes it works wonderfully.
|
|
||
| # Install dependency wraps | ||
| echo ">>> Installing dependencies..." | ||
| meson wrap install eigen 5.0.1-1 |
There was a problem hiding this comment.
Installing a specific version of Eigen in this way doesn't work for me, I do have meson v1.3.2 as it comes directly from apt on ubuntu 24.04 (which is still the latest LTS at the moment....). Maybe it works in a newer version of meson, but I also don't see this anywhere mentioned in the documentation. Does this really work for you?
Shouldn't we get the wrapfile for eigen (which specifies the version, and which you can get with the command meson wrap install eigen) and put it in the subprojects folder with the other wrap files? What I understand from the wrap system, that's how you are supposed to manage the dependencies, but maybe I misunderstood.
| CLEAN=false | ||
|
|
||
| # Move to the root directory (one up from this one) | ||
| cd $ROOT_DIR |
There was a problem hiding this comment.
I don't like scripts putting me in a different place than where I was working. Can we either go back to the script folder at the end, or just document that people should run this from the root?
There was a problem hiding this comment.
I would even be ok to have this in the root of the repo instead of scripts...
| mkdir -p $BUILD_DIR | ||
|
|
||
| # Install dependency wraps | ||
| echo ">>> Installing dependencies..." |
There was a problem hiding this comment.
This block (with the meson wrap command) is not actually installing any dependencies. This prompt should either replace the configure prompt or be removed.
| ## Install the dependencies | ||
|
|
||
| `corticalsim3D` depends on Eigen and Boost (however, the latter will be dropped soon). In addition, you will need [Meson](https://mesonbuild.com/index.html) to build the executables, as well as a fairly recent C++ compiler (GCC or Clang) supporting the C++ 14 standard. The following instructions outline the process of installing the dependencies on different platforms, as well as compiling and installing the `corticalsim3D` package itself. | ||
| Currently, `corticalsim3D` depends on Eigen and Boost (the latter is going to be removed as a dependency at some point). These dependencies are managed automatically by [Meson](https://mesonbuild.com/index.html), which is also used to build the executables. You do need to install a fairly recent C++ compiler (GCC or Clang) supporting the C++ 14 standard. The following instructions outline the process of installing the core dependencies on different platforms, as well as compiling and installing `corticalsim3D` itself. |
There was a problem hiding this comment.
| Currently, `corticalsim3D` depends on Eigen and Boost (the latter is going to be removed as a dependency at some point). These dependencies are managed automatically by [Meson](https://mesonbuild.com/index.html), which is also used to build the executables. You do need to install a fairly recent C++ compiler (GCC or Clang) supporting the C++ 14 standard. The following instructions outline the process of installing the core dependencies on different platforms, as well as compiling and installing `corticalsim3D` itself. | |
| Currently, `corticalsim3D` depends on Eigen and Boost (the latter is planned for removal as a dependency). These dependencies are managed automatically by [Meson](https://mesonbuild.com/index.html), which is also used to build the executables. You do need to install a fairly recent C++ compiler (GCC or Clang) supporting the C++ 14 standard. The following instructions outline the process of installing the core dependencies on different platforms, as well as compiling and installing `corticalsim3D` itself. |
| #### Ubuntu | ||
|
|
||
| ```bash | ||
| sudo apt update && apt upgrade && apt install gcc meson ninja-build cmake |
There was a problem hiding this comment.
All three commands need sudo privilage.
| sudo apt update && apt upgrade && apt install gcc meson ninja-build cmake | |
| sudo apt update && sudo apt upgrade && sudo apt install gcc meson ninja-build cmake |
| cd scripts | ||
| ./build.sh |
There was a problem hiding this comment.
Related to my previous comment on build.sh, should we tell users to install from the root?
| cd scripts | |
| ./build.sh | |
| ./scripts/build.sh |
There was a problem hiding this comment.
Or move the script to the root directory...
| ```bash | ||
| sudo apt update && apt upgrade | ||
| sudo apt install gcc libboost-filesystem-dev libeigen3-dev meson ninja-build cmake | ||
| meson wrap install eigen 5.0.1-1 |
There was a problem hiding this comment.
This is not a valid command for me. Also, I don't think it is the command that installs dependencies. It (when changed to meson wrap install eigen) seems to just retrieve the latest wrap file for eigen from the meson wrapDB (but the documentation suggests otherwise...)
| Run the `corticalsim3d` executable with the `corticalsim3D/config/parameters_ARRAY.txt` parameter file as the first argument: | ||
| Compare this with the `release` build: | ||
|
|
||
| ```bash |
There was a problem hiding this comment.
This is exactly the same as the codeblock above, can we remove one of the two?
JaroCamphuijsen
left a comment
There was a problem hiding this comment.
Great work! But some things are unclear or don't seem to work. With some changes this is a very easy installation procedure.
Automatic dependency management. Currently, there are only two dependencies (Eigen and Boost Pool), but this paves the way towards adding more dependencies down the track in a predictable way (for instance, the Google Test for testinng and TOML++ for parameter handling).
subprojectsdirectory for dependency wrappers.