From 0ff949ab5f21055298aee8d7fcdda3a10f61a69c Mon Sep 17 00:00:00 2001 From: Steffen Schuemann Date: Sun, 4 Jul 2021 17:12:18 +0200 Subject: [PATCH] wip --- .github/workflows/build_cmake.yml | 18 ++++++ .travis.yml | 100 ------------------------------ README.md | 37 ++++++++++- 3 files changed, 53 insertions(+), 102 deletions(-) delete mode 100644 .travis.yml diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml index c1a22f9..0682caf 100644 --- a/.github/workflows/build_cmake.yml +++ b/.github/workflows/build_cmake.yml @@ -42,6 +42,22 @@ jobs: cc: gcc-7 cxx: g++-7 + - name: "Ubuntu 18.04 GCC 6.5" + os: ubuntu-18.04 + build_type: Release + packages: ninja-build gcc-6 g++-6 + generator: Ninja + cc: gcc-6 + cxx: g++-6 + + - name: "Ubuntu 18.04 GCC 5.5" + os: ubuntu-18.04 + build_type: Release + packages: ninja-build gcc-5 g++-5 + generator: Ninja + cc: gcc-5 + cxx: g++-5 + - name: "Windows MSVC 2019" os: windows-latest build_type: Release @@ -70,6 +86,8 @@ jobs: if: startsWith(matrix.config.os, 'ubuntu') shell: bash run: | + sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y + sudo apt update sudo apt install ${{ matrix.config.packages }} - name: Install dependencies on windows diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 6358bad..0000000 --- a/.travis.yml +++ /dev/null @@ -1,100 +0,0 @@ -language: cpp - -dist: xenial # default distribution -os: linux # default os -sudo: false - - -matrix: - fast_finish: true - include: - - env: MATRIX_EVAL="CC=gcc-5 && CXX=g++-5 && GENERATOR='Unix Makefiles' && CONFIG=Release" - addons: { apt: { packages: ["g++-5"], sources: ["ubuntu-toolchain-r-test"] } } - - - env: MATRIX_EVAL="CC=gcc-6 && CXX=g++-6 && GENERATOR='Unix Makefiles' && CONFIG=Release" - addons: { apt: { packages: ["g++-6"], sources: ["ubuntu-toolchain-r-test"] } } - - - env: MATRIX_EVAL="CC=gcc-7 && CXX=g++-7 && GENERATOR='Unix Makefiles' && CONFIG=Release" - addons: { apt: { packages: ["g++-7"], sources: ["ubuntu-toolchain-r-test"] } } - - - env: MATRIX_EVAL="CC=gcc-7 && CXX=g++-7 && GENERATOR='Unix Makefiles' && CONFIG=Debug && GHC_COVERAGE=1" - addons: { apt: { packages: ["g++-7", "lcov"], sources: ["ubuntu-toolchain-r-test"] } } - - - env: MATRIX_EVAL="CC=gcc-8 && CXX=g++-8 && GENERATOR='Unix Makefiles' && CONFIG=Release" - addons: { apt: { packages: ["g++-8"], sources: ["ubuntu-toolchain-r-test"] } } - - - env: MATRIX_EVAL="CC=gcc-9 && CXX=g++-9 && GENERATOR='Unix Makefiles' && CONFIG=Release" - addons: { apt: { packages: ["g++-9"], sources: ["ubuntu-toolchain-r-test"] } } - - - env: MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0 && GENERATOR='Unix Makefiles' && CONFIG=Release" - addons: { apt: { packages: ["clang-5.0"] } } - - - env: MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0 && GENERATOR='Unix Makefiles' && CONFIG=Release" - addons: { apt: { packages: ["clang-6.0"] } } - - - env: MATRIX_EVAL="CC=clang-7 && CXX=clang++-7 && GENERATOR='Unix Makefiles' && CONFIG=Release" - addons: { apt: { packages: ["clang-7", "libc++-7-dev", "libc++abi-7-dev"], sources: ["llvm-toolchain-xenial-7"] } } - - - env: MATRIX_EVAL="CC=clang-8 && CXX=clang++-8 && GENERATOR='Unix Makefiles' && CONFIG=Release" - addons: { apt: { packages: ["clang-8", "libc++-8-dev", "libc++abi-8-dev"], sources: ["llvm-toolchain-xenial-8"] } } - - - env: MATRIX_EVAL="CC=clang-9 && CXX=clang++-9 && GENERATOR='Unix Makefiles' && CONFIG=Release" - addons: { apt: { packages: ["clang-9", "libc++-9-dev", "libc++abi-9-dev"], sources: [{sourceline: 'deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main', key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'}] } } - - - os: osx - env: MATRIX_EVAL="CC=clang && CXX=clang++ && GENERATOR=Xcode && CONFIG=Release" - osx_image: xcode9.2 - - - os: osx - env: MATRIX_EVAL="CC=clang && CXX=clang++ && GENERATOR=Xcode && CONFIG=Release" - osx_image: xcode10.1 - - - os: osx - env: MATRIX_EVAL="CC=clang && CXX=clang++ && GENERATOR=Xcode && CONFIG=Release" - osx_image: xcode11.3 - -install: - - eval "${MATRIX_EVAL}" - - | - if [ "${GHC_COVERAGE}" = "1" ]; then - gem install coveralls-lcov - fi - - $CC --version - - $CXX --version - - cmake --version - -before_script: - - eval "${MATRIX_EVAL}" - - mkdir build - - cd build - - export VERBOSE=1 - - | - if [ "${CONFIG}" = "Debug" ]; then - cmake -G"${GENERATOR}" -DCMAKE_CXX_COMPILER=${CXX} -DCMAKE_C_COMPILER=${CC} -DCMAKE_BUILD_TYPE=${CONFIG} -DGHC_COVERAGE=ON .. - else - cmake -G"${GENERATOR}" -DCMAKE_CXX_COMPILER=${CXX} -DCMAKE_C_COMPILER=${CC} -DCMAKE_BUILD_TYPE=${CONFIG} .. - fi - -script: - - export VERBOSE=1 - - cmake --build . --config ${CONFIG} --target filesystem_test - - | - if [ "${GHC_COVERAGE}" = "1" ]; then - cmake --build . --config ${CONFIG} --target filesystem_test - test/filesystem_test - else - cmake --build . --config ${CONFIG} - ctest -C ${CONFIG} -E Windows - if [ -f "test/std_filesystem_test" ]; then - test/std_filesystem_test || true - fi - fi - -after_success: - - | - if [ "${GHC_COVERAGE}" = "1" ]; then - lcov --compat-libtool --directory . --capture --output-file coverage_output.info - lcov --remove coverage_output.info '/usr/*' '*/c++/*' '*.h' '*/catch.hpp' -o coverage.info - sed -i 's|SF:/.*/filesystem/|SF:../|g' coverage.info - coveralls-lcov coverage.info - fi diff --git a/README.md b/README.md index 60389bc..9043ab6 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,45 @@ ![Supported Platforms](https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows%20%7C%20FreeBSD-blue.svg) ![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg) -[![Build Status](https://travis-ci.org/gulrak/filesystem.svg?branch=master)](https://travis-ci.org/gulrak/filesystem) +[![CMake Build Matrix](https://github.com/gulrak/filesystem/actions/workflows/build_cmake.yml/badge.svg?branch=master)](https://github.com/gulrak/filesystem/actions/workflows/build_cmake.yml) [![Build Status](https://ci.appveyor.com/api/projects/status/t07wp3k2cddo0hpo/branch/master?svg=true)](https://ci.appveyor.com/project/gulrak/filesystem) [![Build Status](https://api.cirrus-ci.com/github/gulrak/filesystem.svg?branch=master)](https://cirrus-ci.com/github/gulrak/filesystem) [![Build Status](https://cloud.drone.io/api/badges/gulrak/filesystem/status.svg?ref=refs/heads/master)](https://cloud.drone.io/gulrak/filesystem) [![Coverage Status](https://coveralls.io/repos/github/gulrak/filesystem/badge.svg?branch=master)](https://coveralls.io/github/gulrak/filesystem?branch=master) [![Latest Release Tag](https://img.shields.io/github/tag/gulrak/filesystem.svg)](https://github.com/gulrak/filesystem/tree/v1.5.8) +- [Filesystem](#filesystem) + - [Motivation](#motivation) + - [Why the namespace GHC?](#why-the-namespace-ghc) + - [Platforms](#platforms) + - [Tests](#tests) + - [Usage](#usage) + - [Downloads](#downloads) + - [Using it as Single-File-Header](#using-it-as-single-file-header) + - [Using it as Forwarding-/Implementation-Header](#using-it-as-forwarding-implementation-header) + - [Git Submodule and CMake](#git-submodule-and-cmake) + - [Versioning](#versioning) + - [Documentation](#documentation) + - [`ghc::filesystem::ifstream`, `ghc::filesystem::ofstream`, `ghc::filesystem::fstream`](#ghcfilesystemifstream-ghcfilesystemofstream-ghcfilesystemfstream) + - [`ghc::filesystem::u8arguments`](#ghcfilesystemu8arguments) + - [Differences](#differences) + - [LWG Defects](#lwg-defects) + - [Not Implemented on C++ before C++17](#not-implemented-on-c-before-c17) + - [Differences in API](#differences-in-api) + - [Differences of Specific Interfaces](#differences-of-specific-interfaces) + - [Differences in Behavior](#differences-in-behavior) + - [fs.path](#fspath-refhttpsencppreferencecomwcppfilesystempath) + - [Open Issues](#open-issues) + - [Windows](#windows) + - [Symbolic Links on Windows](#symbolic-links-on-windows) + - [Permissions](#permissions) + - [Release Notes](#release-notes) + # Filesystem This is a header-only single-file `std::filesystem` compatible helper library, based on the C++17 and C++20 specs, but implemented for C++11, C++14, C++17 or C++20 (tightly following the C++17 standard with very few documented exceptions). It is currently tested on -macOS 10.12/10.14/10.15, Windows 10, Ubuntu 18.04, CentOS 7, CentOS 8, FreeBSD 12 +macOS 10.12/10.14/10.15, Windows 10, Ubuntu 18.04, Ubuntu 20.04, CentOS 7, CentOS 8, FreeBSD 12 and Alpine ARM/ARM64 Linux but should work on other systems too, as long as you have at least a C++11 compatible compiler. It should work with Android NDK, Emscripten and I even had reports of it being used on iOS (within sandboxing constraints) and with v1.5.6 there @@ -556,6 +583,12 @@ to the expected behavior. ## Release Notes +### v1.6.0 (wip) + +* Replaced _travis-ci.org_ with GitHub Workflow for the configurations: + Ubuntu 20.04: GCC 9.3, Ubuntu 18.04: GCC 7.5, GCC 8.4, macOS 10.15: Xcode 12.4, + Windows 10: Visual Studio 2019 + ### [v1.5.8](https://github.com/gulrak/filesystem/releases/tag/v1.5.8) * Fix for [#125]((https://github.com/gulrak/filesystem/issues/124), where