Utility scripts for configuring, building, and installing Chrono 3rd-party dependencies
The scripts in this directory provide a simple mechanism for installing dependencies for the various Chrono modules. The scripts are organized iun sub-directories by OS: Bash shell scripts in linux/
and Windows batch scripts in windows/
. The directory macOS/
contains Bash shell scripts tailored for the specifics of MacOS. If a script is not present in that directory, simply use the generic one in linux/
.
Notes
the scripts assume that git, cmake, and a C++ compiler are available
additional requirements (if any) are indicated in the comments at the top of each script
usage instructions are listed in the comments at the top of each script
Currently, scripts are provided for the following packages:
Eigen3 -- the only external dependency of the core Chrono module
Blaze -- a linear algebra package required by Chrono::Multicore
GL and GLEW -- OpenGL packages used in Chrono::OpenGL and (optionally) in Chrono::Sensor
MUMPS -- a direct sparse linear solver required by Chrono::Mumps
OpenCRG -- a file format for road description used (optionally) in Chrono::Vehicle
Spectra -- an algebra package required by Chrono::Modal
URDF -- URDF file parser utilities optionally used by Chrono::Parsers
VDB -- OpenVDB packages optionally used in Chrono::Sensor
VSG -- VulkanSceneGraph packages required by Chrono::VSG
In addition, each sub-directory includes a sample script for configuring and building Chrono with various modules enabled and satisfying the corresponding dependencies.
Usage
Consult the instructions in the comments at the top of each script. The general usage is as follows:
copy the desired script(s) in a workspace directory (each script will create temporary directories to download the necessary sources and to configure and build the various packages)
edit the script to tailor to your particular machine (at a minimum, set the desired installation directory)
run the script
verify that the package files were properly installed in the specified install directory
With the exception of OpenCRG, all packages built and installed by these scripts provide CMake configuration scripts which are used during CMake Chrono configuration to find the respective dependencies. To simplify the Chrono CMake configuration process and avoid manually specifying package-specific information every time, we recommend setting the CMNAKE_PREFIX_PATH
environment variable to add the directory containing the CMake project configuration scripts for each installed package.
An example of CMAKE_PREFIX_PATH
(on a Windows machine) is:E:\Packages\eigen\share\eigen3\cmake;E:\Packages\blaze\share\blaze\cmake;E:\Packages\vsg\lib\cmake;E:\Packages\urdf\lib\urdfdom\cmake;E:\Packages\urdf\CMake;E:\Packages\spectra\share\spectra\cmake;E:\Packages\gl\lib\cmake;E:\Packages\mumps\cmake;C:\OpenCASCADE-7.4.0-vc14-64\opencascade-7.4.0\cmake;C:\Program Files (x86)\Intel\oneAPI\mkl\2023.0.0\lib\cmake\mkl;
Since many of these packages create and install shared libraries, the following steps may be required:
on Linux, run
ldconfig
(you will likely need root permissions) to cache the necessary link to the newly created shared libraries or set theLD_LIBRARY_PATH
environment variableon Windows, add to the
PATH
environment variable the directories containing the package DLLs (otherwise, these DLLs have to be manually copied next to the binaries so that they can be found at run-time)
Last updated