Skip to content

Commit

Permalink
Use Ninja to speedup building (#1219)
Browse files Browse the repository at this point in the history
  • Loading branch information
seisman authored Sep 24, 2023
1 parent cd15524 commit 7573586
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 15 deletions.
22 changes: 9 additions & 13 deletions source/install/build-source-unix.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ GMT 的编译及运行依赖于其他软件。

可选的依赖软件包括:

- `Ninja <https://ninja-build.org/>__: 快速的构建系统 [可选但推荐]
- `GEOS <https://libgeos.org/>`__:地理信息系统的几何算法库
- `PCRE <https://www.pcre.org/>`__:正则表达式支持
- `FFTW <http://www.fftw.org/>`__:快速傅里叶变换库(>=3.3,macOS 下不需要)
Expand All @@ -36,7 +37,7 @@ GMT 的编译及运行依赖于其他软件。
Fedora::

# 安装必须软件包
$ sudo dnf install gcc cmake make glibc netcdf-devel libcurl-devel gdal gdal-devel
$ sudo dnf install gcc cmake ninja-build glibc netcdf-devel libcurl-devel gdal gdal-devel
$ sudo dnf install geos-devel lapack-devel openblas-devel glib2-devel pcre-devel fftw-devel
$ sudo dnf install ghostscript xdg-utils
# 安装可选软件包
Expand All @@ -48,7 +49,7 @@ Ubuntu/Debian::
# 更新软件包列表
$ sudo apt update
# 安装必须软件包
$ sudo apt install build-essential cmake libcurl4-gnutls-dev libnetcdf-dev gdal-bin libgdal-dev
$ sudo apt install build-essential cmake ninja-build libcurl4-gnutls-dev libnetcdf-dev gdal-bin libgdal-dev
$ sudo apt install libgeos-dev libglib2.0-dev libpcre3-dev libfftw3-dev liblapack-dev
$ sudo apt install ghostscript xdg-utils
# 安装可选软件包
Expand All @@ -60,7 +61,7 @@ macOS 用户可以使用 `Homebrew <https://brew.sh>`__ 安装依赖
了解如何安装与使用)::

# 安装必须软件包
$ brew install cmake curl netcdf
$ brew install cmake ninja curl netcdf
$ brew install ghostscript gdal geos pcre2 glib fftw
# 安装可选软件包
$ brew install graphicsmagick ffmpeg
Expand Down Expand Up @@ -138,13 +139,13 @@ macOS 用户可以使用 `Homebrew <https://brew.sh>`__ 安装依赖

$ mkdir build
$ cd build/
$ cmake ..
$ cmake .. -G Ninja

``cmake ..`` 会检查系统软件是否满足 GMT 的依赖关系,过程中会输出大量信息,并
``cmake .. -G Ninja`` 会检查系统软件是否满足 GMT 的依赖关系,过程中会输出大量信息,并
在最后汇总输出检查结果。我们只需要关注检查结果是否正确即可。
正常情况下结果结果如下,若存在一些差异也没有问题。只要过程中不出现报错,即可。
如果出现报错,则需要检查之前的步骤是否有误,检查完成后删除原 build 目录再新建 build,
继续执行 ``cmake ..``,直到出现类似的检查结果::
继续执行 ``cmake .. -G Ninja``,直到出现类似的检查结果::

*
* GMT Version: : 6.4.0
Expand Down Expand Up @@ -208,13 +209,8 @@ macOS 用户可以使用 `Homebrew <https://brew.sh>`__ 安装依赖

检查完毕后,开始编译和安装::

$ make -j
$ sudo make -j install

.. note::

**-j** 选项可以实现并行编译以减少编译时间。但据用户报告,某些 Ubuntu 发行版下
使用 **-j** 选项会导致编译过程卡死。Ubuntu 用户建议在上面的两条命令中去掉 **-j** 选项。
$ cmake --build .
$ sudo cmake --build . --target install

修改环境变量
------------
Expand Down
5 changes: 3 additions & 2 deletions source/install/build-source-windows.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ Windows 下编译 GMT 源码
- `Visual Studio <https://visualstudio.microsoft.com/zh-hans/>`__ \(安装时需要勾选 Desktop development with C++ 相关工具)
- `Git <https://git-scm.com/downloads>`__
- `CMake <https://cmake.org/download/>`__
- `Ninja <https://ninja-build.org/>__: 快速的构建系统 [可选但推荐]
- `Ghostscript <https://www.ghostscript.com/>`__:生成 PDF、JPG 等格式的图片 [**必须**]
- `GraphicsMagick <http://www.graphicsmagick.org>`__\:生成 GIF 格式的动画 [**可选**]
- `FFmpeg <http://www.ffmpeg.org/>`__:生成 MP4 格式的动画 [**可选**]
Expand Down Expand Up @@ -125,9 +126,9 @@ Windows 下可以通过 C++ 库管理器 `vcpkg <https://vcpkg.io>`__ 安装这
$ mkdir build
$ cd build/
# 64 位系统
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DCMAKE_GENERATOR_PLATFORM=x64
$ cmake .. -G Ninja -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DCMAKE_GENERATOR_PLATFORM=x64
# 32 位系统
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DCMAKE_GENERATOR_PLATFORM=x86
$ cmake .. -G Ninja -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DCMAKE_GENERATOR_PLATFORM=x86

``cmake ..`` 会检查系统软件是否满足 GMT 的依赖关系,过程中会输出大量信息,并
在最后汇总输出检查结果。我们只需要关注检查结果是否正确即可。
Expand Down

0 comments on commit 7573586

Please sign in to comment.