Skip to content

Commit

Permalink
Fix dependencies installation guide
Browse files Browse the repository at this point in the history
Add python3 to installation guide.
Fix macOS Boost installation guide to work with python module.
Fix default installation directories as root permissions were required.
Add sudo to ./b2 install command.
Change macOS SDK version to compatibility with new version.
  • Loading branch information
Vdaleke committed Nov 17, 2024
1 parent 7740c1d commit a949e32
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ To use test datasets you will need:

Run the following commands:
```sh
sudo apt install gcc g++ cmake libboost-all-dev git-lfs
sudo apt install gcc g++ cmake libboost-all-dev git-lfs python3
export CC=gcc
export CXX=g++
```
Expand All @@ -250,31 +250,30 @@ xcode-select --install
```
Follow the prompts to continue.

To install GCC and CMake on macOS we recommend to use [Homebrew](https://brew.sh/) package manager. With Homebrew
To install GCC, CMake and python on macOS we recommend to use [Homebrew](https://brew.sh/) package manager. With Homebrew
installed, run the following commands:
```sh
brew install gcc@14 cmake
brew install gcc@14 cmake python3
```
After installation, check `cmake --version`. If command is not found, then you need to add to environment path to
homebrew installed packages. To do this open `~/.zprofile` (for Zsh) or
`~/.bash_profile` (for Bash) and add to the end of the file the output of `brew shellenv`.
After that, restart the terminal and check the version of CMake again, now it should be displayed.

Then you need to install Boost library built with GCC. Please avoid using Homebrew for this, as the Boost version provided by Homebrew
is built with Clang, which has a different ABI. Instead, download the latest version of Boost from the [official website](https://www.boost.org/users/download/) and unpack the archive to the `/usr/local/` directory or another directory of your choice:
is built with Clang, which has a different ABI. Instead, download the latest version of Boost from the [official website](https://www.boost.org/users/download/), open terminal and run:
```sh
cd /usr/local/
cd ~/Downloads
curl https://archives.boost.io/release/1.86.0/source/boost_1_86_0.tar.bz2 --output "boost_1_86_0.tar.bz2"
tar xvjf boost_1_86_0.tar.bz2
rm boost_1_86_0.tar.bz2
tar xvjf boost_1_86_0.tar.bz2 && rm boost_1_86_0.tar.bz2
cd boost_1_86_0
```
Navigate to the unpacked Boost directory in the terminal and run the following commands:
```sh
./bootstrap.sh
echo "using darwin : : g++-14 ;" > user-config.jam
./b2 install --user-config=user-config.jam --layout=versioned
export BOOST_ROOT=$(pwd) # export Boost_ROOT=$(pwd) for CMake 3.26 and below.
sudo ./b2 install --user-config=user-config.jam --layout=versioned
export BOOST_ROOT=/usr/local/ # export Boost_ROOT=/usr/local/ for CMake 3.26 and below.
```
You can also add the last export with current path to `~/.zprofile` or `~/.bash_profile` to set this boost path by default.

Expand All @@ -283,10 +282,11 @@ Before building the project you must set locally or in the above-mentioned dotfi
export CC=gcc-14
export CXX=g++-14
export SDKROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/
export DYLD_LIBRARY_PATH=/usr/local/lib
```
The first two lines set GCC as the default compiler in CMake. The last export is also necessary due to issues with GCC 14 and
the last MacOSX15.0.sdk used by CMake by default, you can read more about this [here](https://gist.github.com/scivision/d69faebbc56da9714798087b56de925a)
and [here](https://github.com/iains/gcc-14-branch/issues/11).
The first two lines set GCC as the default compiler in CMake. The 3rd export is also necessary due to issues with GCC 14 and
the last macOS 15 SDK used by CMake by default, you can read more about this [here](https://gist.github.com/scivision/d69faebbc56da9714798087b56de925a)
and [here](https://github.com/iains/gcc-14-branch/issues/11). The last export is the solution for dynamic linking with python module.

### Building the project
#### Building the Python module using pip
Expand Down

0 comments on commit a949e32

Please sign in to comment.