Tooling

This page introduces some basic tools which may be new to users who have not worked with C/C++. Users that are already comfortable with a C/C++ toolchain can skip this page.

Source Control

A source control tool is like Google Documents, but for source code. It allows developers to track changes that have been made to a project, and easily collaborate by sharing patches. Currently, the industry standard tool for this purpose is Git. Just like Google drive provides a platform for hosting sharing and collaborating on Google documents, GitHub is a platform where developers can host, share and collaborate on software projects.

The OpenSees project follows a forking workflow for accepting contributions. The following resources explain more on this matter.

Compiler tool-chain ------------------

A compiler tool-chain is the collection of programs that work together to build a final executable program. This includes the actual compiler, a linker, and various other utilities. These programs are typically bundled together and installed collectively in a single step. Different operating systems generally favor a particular tool-chain, but the differences between these can generally be hidden by a build automation tool like CMake.

Building OpenSees requires both a C/C++ and a Fortran compiler. Some suggested compilers for various platforms are listed in table-summary

Package management

APT (Ubuntu, Debian Linux)
Dependency Package
LAPACK liblapack-dev
BLAS libblas-dev
SuiteSparse suitesparse-dev
SuperLU superlu-dev
MySQL* libmysqlclient-dev
Tcl* tcl-dev
Pacman (Arch, Manjaro Linux)

The Pacman package manager

Dependency Package
LAPACK lapack
BLAS blas
SuiteSparse suitesparse
SuperLU superlu
MySQL* mariadb
Tcl* tcl
Anaconda (Mac, Windows, Linux)
Dependency Package Channel
LAPACK lapack
BLAS blas
SuperLU superlu
SuiteSparse suitesparse
MySQL* mysql conda-forge

Command line environments

This section is under development

Summary

The following table gives a brief rundown of the most common configurations for various operating systems.

Tool

Windows

MacOS

Linux

Source control GitHub Desktop GitHub Desktop Git
Build automation CMake CMake CMake
Compiler | C++ Visual Studio 2019 Clang GCC
Fortran
Intel-Fortr an GFortran GFortran
Package management Homebrew system
Back to top