Open
Description
Building on Windows
- Install Visual Studio Community Edition. Select these two components:
- MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest)
- Windows 11 SDK (10.0.26100.0)
- Install Git for Windows
- Install Miniconda
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe
mkdir C:\opt
Miniconda3-latest-Windows-x86_64.exe /S /D=C:\opt\miniconda
C:\opt\miniconda\condabin\conda.bat init
- Start Developer Command Prompt for VS 2022
- Setup Conda for GRASS build
conda config --add channels conda-forge
conda config --set channel_priority strict
conda create -n grass cmake pkg-config winflexbison proj libgdal pcre fftw openblas pdal wxpython pywin32
- Download the source code
cd \opt
git clone git@github.com:OSGeo/grass.git
cd grass
- Build GRASS
conda activate grass
mkdir build
cd build
cmake .. -DWITH_OPENGL=OFF > cmake.log 2>&1
msbuild grass.sln -p:Configuration=Release > msbuild.log 2>&1
- Run GRASS
set GRASS_BUILD=C:\opt\grass\build
set GISBASE=%GRASS_BUILD%\output\lib\grass85
set PATH=%GISBASE%\bin;%GISBASE%\lib;%PATH%
set GISRC=%GISBASE%\demolocation\.grassrc85
g.proj -p
Yes, g.gui
doesn't work yet...
Alternatively, rename grass.py
to grass85.py
just once to avoid a problem with import grass
:
ren output\bin\grass.py grass85.py
and
python output\bin\grass85.py output\lib\grass85\demolocation\PERMANENT
Building on Linux
- Install Miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod a+x Miniconda3-latest-Linux-x86_64.sh
mkdir ~/opt
./Miniconda3-latest-Linux-x86_64.sh -b -u -p ~/opt/miniconda
~/opt/miniconda/bin/conda init
. ~/.bashrc
- Setup Conda for GRASS build
conda config --add channels conda-forge
conda config --set channel_priority strict
conda create -n grass git cmake pkg-config make gcc gxx flex bison proj gdal xorg-libx11 xorg-xproto libopengl libgl-devel cairo postgresql gettext fftw openblas pdal libglu wxpython
- Download the source code
cd ~/opt
git clone [email protected]:OSGeo/grass.git
cd grass
- Build GRASS
conda activate grass
# create a missing symlink to libOpenGL.so
ln -sf $CONDA_PREFIX/lib/libOpenGL.so.0 $CONDA_PREFIX/lib/libOpenGL.so
mkdir build
cd build
# LD_LIBRARY_PATH=$CONDA_PREFIX/lib, PKG_CONFIG_PATH=, and -DCMAKE_PREFIX_PATH=$CONDA_PREFIX to avoid system libraries
LD_LIBRARY_PATH=$CONDA_PREFIX/lib PKG_CONFIG_PATH= cmake .. -DCMAKE_PREFIX_PATH=$CONDA_PREFIX -DIconv_IS_BUILT_IN=FALSE &> cmake.log
make -j$(nproc) &> make.log
- Run GRASS
./output/bin/grass