Explicitly link std::filesystem as needed (#14)

* Fix cmake install command

PROGRAMS specifies executable files, while TARGETS specifies cmake
targets. This install command happened to work when doing an in-tree
build (build dir == source dir) but will otherwise fail.

* Explicitly link std::filesystem as needed

On some older compilers, std::filesystem is provided as a separate
library from the C++ standard library. For example, on GCC 8, one must
explicitly link with -lstdc++fs.

We can use a drop-in https://github.com/vector-of-bool/CMakeCM module to
automate detection of and linking against this auxiliary library when needed.

* Add missing include

std::min is in <algorithm> header
This is transitively included in libstdc++ (GCC)
but not in libc++ (Clang)

(Encountered when testing -lc++fs auxiliary library linking in Clang 7)
This commit is contained in:
Ryan Burns
2022-07-07 10:02:27 -07:00
committed by GitHub
parent e997178c57
commit b86a542fe2
3 changed files with 255 additions and 1 deletions

View File

@@ -1,4 +1,5 @@
#include "common.h"
#include <algorithm>
#include <errno.h>
#include <memory>
#include <sys/mman.h>