]> granicus.if.org Git - graphviz/commit
fix: write Graphviz build version to GRAPHVIZ_VERSION file instead of VERSION
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 8 Sep 2021 03:53:51 +0000 (20:53 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 8 Sep 2021 14:22:00 +0000 (07:22 -0700)
commitc188de232323285caabb7f96c5822dec2db99645
treeaed27d19e01b8aaa9615ee1c9e355565d9cecb93
parent734a1cfa5244e057b2dab85563bd8672ee013ad5
fix: write Graphviz build version to GRAPHVIZ_VERSION file instead of VERSION

C++20 standardizes a new `version` header.¹ A side effect of this is that
Autotools-driven Graphviz compilation fails when using both (1) a C++20-capable
compiler and (2) a case-insensitive file system:

  Making all in vpsc
  CXX      block.lo
  In file included from block.cpp:20:
  In file included from …/include/c++/v1/memory:667:
  In file included from …/include/c++/v1/type_traits:417:
  In file included from …/include/c++/v1/cstddef:37:
  ../../version:1:1: error: expected unqualified-id
  2.49.1~dev.20210907.1517
  ^

The core problem is that the root of the repository checkout (or unpacked
tarball) is in the compiler’s include path in order to allow including
`config.h`. But the generated `VERSION` file is also in this same directory.
Nothing in Graphviz attempts to include the C++20 `version` header, but some of
the other stdlib headers transitively include `version`.

To avoid this confusion, we rename Graphviz’ generated file.

Fixes #2122.

¹ https://en.cppreference.com/w/cpp/header/version
.gitignore
.gitlab-ci.yml
CHANGELOG.md
Makefile.am
ci/build.sh
ci/deploy.py
ci/install-packages.sh
ci/out-of-source-build.sh