mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2024-11-08 00:37:15 +01:00
Remove ghc_filesystem.
I forgot POCO has similar functionality built-in.
This commit is contained in:
parent
20851d2c3e
commit
6cd9c37b86
@ -68,12 +68,14 @@ add_library(SqModule MODULE SqBase.hpp Main.cpp
|
|||||||
Library/Chrono/Timer.cpp Library/Chrono/Timer.hpp
|
Library/Chrono/Timer.cpp Library/Chrono/Timer.hpp
|
||||||
Library/Chrono/Timestamp.cpp Library/Chrono/Timestamp.hpp
|
Library/Chrono/Timestamp.cpp Library/Chrono/Timestamp.hpp
|
||||||
Library/CURL.cpp Library/CURL.hpp
|
Library/CURL.cpp Library/CURL.hpp
|
||||||
|
Library/FileSystem.cpp Library/FileSystem.hpp
|
||||||
Library/Format.cpp Library/Format.hpp
|
Library/Format.cpp Library/Format.hpp
|
||||||
Library/IO.cpp Library/IO.hpp
|
Library/IO.cpp Library/IO.hpp
|
||||||
Library/IO/Buffer.cpp Library/IO/Buffer.hpp
|
Library/IO/Buffer.cpp Library/IO/Buffer.hpp
|
||||||
Library/IO/File.cpp Library/IO/File.hpp
|
Library/IO/File.cpp Library/IO/File.hpp
|
||||||
Library/IO/INI.cpp Library/IO/INI.hpp
|
Library/IO/INI.cpp Library/IO/INI.hpp
|
||||||
Library/IO/Stream.cpp Library/IO/Stream.hpp
|
Library/IO/Stream.cpp Library/IO/Stream.hpp
|
||||||
|
Library/JSON.cpp Library/JSON.hpp
|
||||||
Library/MMDB.cpp Library/MMDB.hpp
|
Library/MMDB.cpp Library/MMDB.hpp
|
||||||
Library/Numeric.cpp Library/Numeric.hpp
|
Library/Numeric.cpp Library/Numeric.hpp
|
||||||
Library/Numeric/Long.cpp Library/Numeric/Long.hpp
|
Library/Numeric/Long.cpp Library/Numeric/Long.hpp
|
||||||
@ -132,7 +134,7 @@ if(WIN32 OR MINGW)
|
|||||||
target_link_libraries(SqModule wsock32 ws2_32 shlwapi)
|
target_link_libraries(SqModule wsock32 ws2_32 shlwapi)
|
||||||
endif()
|
endif()
|
||||||
# Link to base libraries
|
# Link to base libraries
|
||||||
target_link_libraries(SqModule Squirrel ghc_filesystem fmt::fmt SimpleINI TinyDir ConcurrentQueue CPR PUGIXML maxminddb jansson libzmq-static)
|
target_link_libraries(SqModule Squirrel fmt::fmt SimpleINI TinyDir ConcurrentQueue CPR PUGIXML maxminddb libzmq-static)
|
||||||
# Link to POCO libraries
|
# Link to POCO libraries
|
||||||
target_link_libraries(SqModule Poco::Foundation Poco::Crypto Poco::Data Poco::Net Poco::JSON Poco::XML)
|
target_link_libraries(SqModule Poco::Foundation Poco::Crypto Poco::Data Poco::Net Poco::JSON Poco::XML)
|
||||||
# Does POCO have SQLite support?
|
# Does POCO have SQLite support?
|
||||||
@ -141,7 +143,7 @@ if(ENABLE_DATA_SQLITE)
|
|||||||
# We need to make sqlite3.h available for include. Ugly but POCO doesn't expose this directly.
|
# We need to make sqlite3.h available for include. Ugly but POCO doesn't expose this directly.
|
||||||
target_include_directories(SqModule PRIVATE "${PROJECT_SOURCE_DIR}/vendor/POCO/Data/SQLite/src")
|
target_include_directories(SqModule PRIVATE "${PROJECT_SOURCE_DIR}/vendor/POCO/Data/SQLite/src")
|
||||||
endif()
|
endif()
|
||||||
message(STATUS SQLite was enabled)
|
message(STATUS "SQLite was enabled")
|
||||||
# Link the libraries
|
# Link the libraries
|
||||||
target_link_libraries(SqModule Poco::DataSQLite)
|
target_link_libraries(SqModule Poco::DataSQLite)
|
||||||
# Inform the plug-in that it can make use of this library
|
# Inform the plug-in that it can make use of this library
|
||||||
@ -152,7 +154,7 @@ endif()
|
|||||||
# Does POCO have MySLQ support?
|
# Does POCO have MySLQ support?
|
||||||
find_package(MySQL)
|
find_package(MySQL)
|
||||||
if(MYSQL_FOUND)
|
if(MYSQL_FOUND)
|
||||||
message(STATUS MySQL was enabled)
|
message(STATUS "MySQL was enabled")
|
||||||
# Link the libraries
|
# Link the libraries
|
||||||
target_link_libraries(SqModule Poco::DataMySQL)
|
target_link_libraries(SqModule Poco::DataMySQL)
|
||||||
# Inform the plug-in that it can make use of this library
|
# Inform the plug-in that it can make use of this library
|
||||||
|
3
vendor/CMakeLists.txt
vendored
3
vendor/CMakeLists.txt
vendored
@ -47,5 +47,4 @@ set(BUILD_STATIC ON CACHE INTERNAL "" FORCE)
|
|||||||
if (WIN32 OR MINGW)
|
if (WIN32 OR MINGW)
|
||||||
set(ZMQ_HAVE_IPC OFF CACHE INTERNAL "" FORCE)
|
set(ZMQ_HAVE_IPC OFF CACHE INTERNAL "" FORCE)
|
||||||
endif()
|
endif()
|
||||||
add_subdirectory(ZMQ)
|
add_subdirectory(ZMQ)
|
||||||
add_subdirectory(FileSystem)
|
|
74
vendor/FileSystem/CMakeLists.txt
vendored
74
vendor/FileSystem/CMakeLists.txt
vendored
@ -1,74 +0,0 @@
|
|||||||
cmake_minimum_required(VERSION 3.7.2)
|
|
||||||
project(ghcfilesystem)
|
|
||||||
|
|
||||||
if (POLICY CMP0077)
|
|
||||||
cmake_policy(SET CMP0077 NEW)
|
|
||||||
endif()
|
|
||||||
if(POLICY CMP0110)
|
|
||||||
cmake_policy(SET CMP0110 NEW)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
|
|
||||||
option(GHC_FILESYSTEM_BUILD_TESTING "Enable tests" ON)
|
|
||||||
option(GHC_FILESYSTEM_BUILD_EXAMPLES "Build examples" ON)
|
|
||||||
option(GHC_FILESYSTEM_WITH_INSTALL "With install target" ON)
|
|
||||||
else()
|
|
||||||
option(GHC_FILESYSTEM_BUILD_EXAMPLES "Build examples" OFF)
|
|
||||||
option(GHC_FILESYSTEM_BUILD_TESTING "Enable tests" OFF)
|
|
||||||
option(GHC_FILESYSTEM_WITH_INSTALL "With install target" ON)
|
|
||||||
endif()
|
|
||||||
option(GHC_FILESYSTEM_BUILD_STD_TESTING "Enable STD tests" ${GHC_FILESYSTEM_BUILD_TESTING})
|
|
||||||
if(NOT DEFINED GHC_FILESYSTEM_TEST_COMPILE_FEATURES)
|
|
||||||
set(GHC_FILESYSTEM_TEST_COMPILE_FEATURES ${CMAKE_CXX_COMPILE_FEATURES})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT DEFINED CMAKE_CXX_STANDARD)
|
|
||||||
set(CMAKE_CXX_STANDARD 11)
|
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
||||||
if(NOT CYGWIN)
|
|
||||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
if(CMAKE_CXX_STANDARD LESS 11)
|
|
||||||
message(FATAL_ERROR "CMAKE_CXX_STANDARD is less than 11, ghc::filesystem only works with C++11 and above.")
|
|
||||||
endif()
|
|
||||||
message(STATUS "CMAKE_CXX_COMPILE_FEATURES: ${CMAKE_CXX_COMPILE_FEATURES}")
|
|
||||||
|
|
||||||
add_library(ghc_filesystem INTERFACE)
|
|
||||||
target_include_directories(ghc_filesystem INTERFACE
|
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
||||||
$<INSTALL_INTERFACE:include>)
|
|
||||||
target_compile_options(ghc_filesystem INTERFACE "$<$<C_COMPILER_ID:MSVC>:/utf-8>")
|
|
||||||
target_compile_options(ghc_filesystem INTERFACE "$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
|
|
||||||
|
|
||||||
if(GHC_FILESYSTEM_BUILD_TESTING OR GHC_FILESYSTEM_BUILD_EXAMPLES)
|
|
||||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
|
|
||||||
include(GhcHelper)
|
|
||||||
|
|
||||||
if(GHC_FILESYSTEM_BUILD_TESTING)
|
|
||||||
enable_testing()
|
|
||||||
add_subdirectory(test)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(GHC_FILESYSTEM_BUILD_EXAMPLES)
|
|
||||||
add_subdirectory(examples)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(GHC_FILESYSTEM_WITH_INSTALL)
|
|
||||||
include(CMakePackageConfigHelpers)
|
|
||||||
include(GNUInstallDirs)
|
|
||||||
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
|
||||||
install(TARGETS ghc_filesystem EXPORT ghc_filesystem-targets)
|
|
||||||
install(EXPORT ghc_filesystem-targets NAMESPACE ghcFilesystem:: DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/ghc_filesystem")
|
|
||||||
export(EXPORT ghc_filesystem-targets NAMESPACE ghcFilesystem:: FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/ghc_filesystem-targets.cmake")
|
|
||||||
configure_package_config_file(
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/config.cmake.in"
|
|
||||||
"${PROJECT_BINARY_DIR}/cmake/ghc_filesystem-config.cmake"
|
|
||||||
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/ghc_filesystem"
|
|
||||||
PATH_VARS CMAKE_INSTALL_INCLUDEDIR)
|
|
||||||
install(FILES "${PROJECT_BINARY_DIR}/cmake/ghc_filesystem-config.cmake"
|
|
||||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/ghc_filesystem")
|
|
||||||
add_library(ghcFilesystem::ghc_filesystem ALIAS ghc_filesystem)
|
|
||||||
endif()
|
|
19
vendor/FileSystem/LICENSE
vendored
19
vendor/FileSystem/LICENSE
vendored
@ -1,19 +0,0 @@
|
|||||||
Copyright (c) 2018, Steffen Schümann <s.schuemann@pobox.com>
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
1054
vendor/FileSystem/README.md
vendored
1054
vendor/FileSystem/README.md
vendored
File diff suppressed because it is too large
Load Diff
64
vendor/FileSystem/cmake/GhcHelper.cmake
vendored
64
vendor/FileSystem/cmake/GhcHelper.cmake
vendored
@ -1,64 +0,0 @@
|
|||||||
macro(AddExecutableWithStdFS targetName)
|
|
||||||
|
|
||||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 7.0 OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0))
|
|
||||||
if(APPLE)
|
|
||||||
include_directories(/usr/local/opt/llvm/include)
|
|
||||||
link_directories(/usr/local/opt/llvm/lib)
|
|
||||||
endif()
|
|
||||||
add_executable(${targetName} ${ARGN})
|
|
||||||
set_property(TARGET ${targetName} PROPERTY CXX_STANDARD 17)
|
|
||||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0)
|
|
||||||
if(APPLE)
|
|
||||||
target_link_libraries(${targetName} -lc++fs)
|
|
||||||
else()
|
|
||||||
target_compile_options(${targetName} PRIVATE "-stdlib=libc++")
|
|
||||||
target_link_libraries(${targetName} -stdlib=libc++ -lc++fs $<$<PLATFORM_ID:Linux>:rt>)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
if(NOT APPLE)
|
|
||||||
target_compile_options(${targetName} PRIVATE "-stdlib=libc++")
|
|
||||||
target_link_libraries(${targetName} -stdlib=libc++)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
target_compile_definitions(${targetName} PRIVATE USE_STD_FS)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (CMAKE_COMPILER_IS_GNUCXX AND (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 8.0 OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0))
|
|
||||||
add_executable(${targetName} ${ARGN})
|
|
||||||
set_property(TARGET ${targetName} PROPERTY CXX_STANDARD 17)
|
|
||||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0)
|
|
||||||
target_link_libraries(${targetName} -lstdc++fs)
|
|
||||||
endif()
|
|
||||||
target_compile_options(${targetName} PRIVATE $<$<BOOL:${CYGWIN}>:-Wa,-mbig-obj>)
|
|
||||||
target_compile_definitions(${targetName} PRIVATE USE_STD_FS)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CMAKE_CXX_COMPILER_ID MATCHES MSVC AND (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 19.15 OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.15))
|
|
||||||
add_executable(${targetName} ${ARGN})
|
|
||||||
set_property(TARGET ${targetName} PROPERTY CXX_STANDARD 17)
|
|
||||||
set_property(TARGET ${targetName} PROPERTY CXX_STANDARD_REQUIRED ON)
|
|
||||||
target_compile_options(${targetName} PRIVATE "/Zc:__cplusplus")
|
|
||||||
target_compile_definitions(${targetName} PRIVATE USE_STD_FS _CRT_SECURE_NO_WARNINGS)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
macro(AddTestExecutableWithStdCpp cppStd)
|
|
||||||
add_executable(filesystem_test_cpp${cppStd} ${ARGN})
|
|
||||||
set_property(TARGET filesystem_test_cpp${cppStd} PROPERTY CXX_STANDARD ${cppStd})
|
|
||||||
target_link_libraries(filesystem_test_cpp${cppStd} ghc_filesystem)
|
|
||||||
target_compile_options(filesystem_test_cpp${cppStd} PRIVATE
|
|
||||||
$<$<BOOL:${EMSCRIPTEN}>:-s DISABLE_EXCEPTION_CATCHING=0>
|
|
||||||
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Werror -Wno-error=deprecated-declarations>
|
|
||||||
$<$<CXX_COMPILER_ID:GNU>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Wno-psabi -Werror -Wno-error=deprecated-declarations>
|
|
||||||
$<$<CXX_COMPILER_ID:MSVC>:/WX /wd4996>
|
|
||||||
$<$<BOOL:${CYGWIN}>:-Wa,-mbig-obj>
|
|
||||||
$<$<BOOL:${GHC_COVERAGE}>:--coverage>)
|
|
||||||
if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
|
|
||||||
target_compile_definitions(filesystem_test_cpp${cppStd} PRIVATE _CRT_SECURE_NO_WARNINGS)
|
|
||||||
endif()
|
|
||||||
if(EMSCRIPTEN)
|
|
||||||
set_target_properties(filesystem_test_cpp${cppStd} PROPERTIES LINK_FLAGS "-g4 -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1")
|
|
||||||
endif()
|
|
||||||
ParseAndAddCatchTests(filesystem_test_cpp${cppStd})
|
|
||||||
endmacro()
|
|
6
vendor/FileSystem/cmake/config.cmake.in
vendored
6
vendor/FileSystem/cmake/config.cmake.in
vendored
@ -1,6 +0,0 @@
|
|||||||
@PACKAGE_INIT@
|
|
||||||
|
|
||||||
# import targets
|
|
||||||
include("${CMAKE_CURRENT_LIST_DIR}/ghc_filesystem-targets.cmake")
|
|
||||||
|
|
||||||
check_required_components(ghcfilesystem)
|
|
17
vendor/FileSystem/examples/CMakeLists.txt
vendored
17
vendor/FileSystem/examples/CMakeLists.txt
vendored
@ -1,17 +0,0 @@
|
|||||||
|
|
||||||
add_executable(fs_dir dir.cpp)
|
|
||||||
target_link_libraries(fs_dir ghc_filesystem)
|
|
||||||
if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
|
|
||||||
target_compile_definitions(fs_dir PRIVATE _CRT_SECURE_NO_WARNINGS)
|
|
||||||
endif()
|
|
||||||
AddExecutableWithStdFS(std_fs_dir dir.cpp)
|
|
||||||
|
|
||||||
add_executable(fs_du du.cpp)
|
|
||||||
target_link_libraries(fs_du ghc_filesystem)
|
|
||||||
AddExecutableWithStdFS(std_fs_du du.cpp)
|
|
||||||
|
|
||||||
if(EXISTS "${PROJECT_SOURCE_DIR}/examples/benchmark.cpp")
|
|
||||||
add_executable(fs_benchmark benchmark.cpp)
|
|
||||||
set_property(TARGET fs_benchmark PROPERTY CXX_STANDARD 17)
|
|
||||||
target_link_libraries(fs_benchmark ghc_filesystem)
|
|
||||||
endif()
|
|
60
vendor/FileSystem/examples/dir.cpp
vendored
60
vendor/FileSystem/examples/dir.cpp
vendored
@ -1,60 +0,0 @@
|
|||||||
#include <chrono>
|
|
||||||
#include <iomanip>
|
|
||||||
#include <iostream>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
#if defined(__cplusplus) && __cplusplus >= 201703L && defined(__has_include)
|
|
||||||
#if __has_include(<filesystem>)
|
|
||||||
#define GHC_USE_STD_FS
|
|
||||||
#include <filesystem>
|
|
||||||
namespace fs = std::filesystem;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#ifndef GHC_USE_STD_FS
|
|
||||||
#include <ghc/filesystem.hpp>
|
|
||||||
namespace fs = ghc::filesystem;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
template <typename TP>
|
|
||||||
std::time_t to_time_t(TP tp)
|
|
||||||
{
|
|
||||||
// Based on trick from: Nico Josuttis, C++17 - The Complete Guide
|
|
||||||
std::chrono::system_clock::duration dt = std::chrono::duration_cast<std::chrono::system_clock::duration>(tp - TP::clock::now());
|
|
||||||
return std::chrono::system_clock::to_time_t(std::chrono::system_clock::now() + dt);
|
|
||||||
}
|
|
||||||
|
|
||||||
static std::string perm_to_str(fs::perms prms)
|
|
||||||
{
|
|
||||||
std::string result;
|
|
||||||
result.reserve(9);
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
|
||||||
result = ((static_cast<int>(prms) & (1 << i)) ? "xwrxwrxwr"[i] : '-') + result;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
|
||||||
{
|
|
||||||
#ifdef GHC_FILESYSTEM_VERSION
|
|
||||||
fs::u8arguments u8guard(argc, argv);
|
|
||||||
if (!u8guard.valid()) {
|
|
||||||
std::cerr << "Invalid character encoding, UTF-8 based encoding needed." << std::endl;
|
|
||||||
std::exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (argc > 2) {
|
|
||||||
std::cerr << "USAGE: dir <path>" << std::endl;
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
fs::path dir{"."};
|
|
||||||
if (argc == 2) {
|
|
||||||
dir = fs::u8path(argv[1]);
|
|
||||||
}
|
|
||||||
for (auto de : fs::directory_iterator(dir)) {
|
|
||||||
auto ft = to_time_t(de.last_write_time());
|
|
||||||
auto ftm = *std::localtime(&ft);
|
|
||||||
std::cout << (de.is_directory() ? "d" : "-") << perm_to_str(de.symlink_status().permissions()) << " " << std::setw(8) << (de.is_directory() ? "-" : std::to_string(de.file_size())) << " " << std::put_time(&ftm, "%Y-%m-%d %H:%M:%S") << " "
|
|
||||||
<< de.path().filename().string() << std::endl;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
61
vendor/FileSystem/examples/du.cpp
vendored
61
vendor/FileSystem/examples/du.cpp
vendored
@ -1,61 +0,0 @@
|
|||||||
#include <iostream>
|
|
||||||
#include <iomanip>
|
|
||||||
#include <chrono>
|
|
||||||
|
|
||||||
#if defined(__cplusplus) && __cplusplus >= 201703L && defined(__has_include)
|
|
||||||
#if __has_include(<filesystem>)
|
|
||||||
#define GHC_USE_STD_FS
|
|
||||||
#include <filesystem>
|
|
||||||
namespace fs = std::filesystem;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#ifndef GHC_USE_STD_FS
|
|
||||||
#include <ghc/filesystem.hpp>
|
|
||||||
namespace fs = ghc::filesystem;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
|
||||||
{
|
|
||||||
#ifdef GHC_FILESYSTEM_VERSION
|
|
||||||
fs::u8arguments u8guard(argc, argv);
|
|
||||||
if(!u8guard.valid()) {
|
|
||||||
std::cerr << "Invalid character encoding, UTF-8 based encoding needed." << std::endl;
|
|
||||||
std::exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if(argc > 2) {
|
|
||||||
std::cerr << "USAGE: du <path>" << std::endl;
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
fs::path dir{"."};
|
|
||||||
if(argc == 2) {
|
|
||||||
dir = fs::u8path(argv[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint64_t totalSize = 0;
|
|
||||||
int totalDirs = 0;
|
|
||||||
int totalFiles = 0;
|
|
||||||
int maxDepth = 0;
|
|
||||||
|
|
||||||
try {
|
|
||||||
auto rdi = fs::recursive_directory_iterator(dir);
|
|
||||||
for(auto de : rdi) {
|
|
||||||
if(rdi.depth() > maxDepth) {
|
|
||||||
maxDepth = rdi.depth();
|
|
||||||
}
|
|
||||||
if(de.is_regular_file()) {
|
|
||||||
totalSize += de.file_size();
|
|
||||||
++totalFiles;
|
|
||||||
}
|
|
||||||
else if(de.is_directory()) {
|
|
||||||
++totalDirs;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch(fs::filesystem_error fe) {
|
|
||||||
std::cerr << "Error: " << fe.what() << std::endl;
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
std::cout << totalSize << " bytes in " << totalFiles << " files and " << totalDirs << " directories, maximum depth: " << maxDepth << std::endl;
|
|
||||||
return 0;
|
|
||||||
}
|
|
5944
vendor/FileSystem/include/ghc/filesystem.hpp
vendored
5944
vendor/FileSystem/include/ghc/filesystem.hpp
vendored
File diff suppressed because it is too large
Load Diff
38
vendor/FileSystem/include/ghc/fs_fwd.hpp
vendored
38
vendor/FileSystem/include/ghc/fs_fwd.hpp
vendored
@ -1,38 +0,0 @@
|
|||||||
//---------------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// ghc::filesystem - A C++17-like filesystem implementation for C++11/C++14
|
|
||||||
//
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018, Steffen Schümann <s.schuemann@pobox.com>
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in all
|
|
||||||
// copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
// SOFTWARE.
|
|
||||||
//
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
// fs_fwd.hpp - The forwarding header for the header/implementation seperated usage of
|
|
||||||
// ghc::filesystem.
|
|
||||||
// This file can be include at any place, where ghc::filesystem api is needed while
|
|
||||||
// not bleeding implementation details (e.g. system includes) into the global namespace,
|
|
||||||
// as long as one cpp includes fs_impl.hpp to deliver the matching implementations.
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
#ifndef GHC_FILESYSTEM_FWD_H
|
|
||||||
#define GHC_FILESYSTEM_FWD_H
|
|
||||||
#define GHC_FILESYSTEM_FWD
|
|
||||||
#include <ghc/filesystem.hpp>
|
|
||||||
#endif // GHC_FILESYSTEM_FWD_H
|
|
35
vendor/FileSystem/include/ghc/fs_impl.hpp
vendored
35
vendor/FileSystem/include/ghc/fs_impl.hpp
vendored
@ -1,35 +0,0 @@
|
|||||||
//---------------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// ghc::filesystem - A C++17-like filesystem implementation for C++11/C++14
|
|
||||||
//
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018, Steffen Schümann <s.schuemann@pobox.com>
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in all
|
|
||||||
// copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
// SOFTWARE.
|
|
||||||
//
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
// fs_impl.hpp - The implementation header for the header/implementation seperated usage of
|
|
||||||
// ghc::filesystem.
|
|
||||||
// This file can be used to hide the implementation of ghc::filesystem into a single cpp.
|
|
||||||
// The cpp has to include this before including fs_fwd.hpp directly or via a different
|
|
||||||
// header to work.
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
#define GHC_FILESYSTEM_IMPLEMENTATION
|
|
||||||
#include <ghc/filesystem.hpp>
|
|
60
vendor/FileSystem/include/ghc/fs_std.hpp
vendored
60
vendor/FileSystem/include/ghc/fs_std.hpp
vendored
@ -1,60 +0,0 @@
|
|||||||
//---------------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// ghc::filesystem - A C++17-like filesystem implementation for C++11/C++14
|
|
||||||
//
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018, Steffen Schümann <s.schuemann@pobox.com>
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in all
|
|
||||||
// copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
// SOFTWARE.
|
|
||||||
//
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
// fs_std.hpp - The dynamic switching header that includes std::filesystem if detected
|
|
||||||
// or ghc::filesystem if not, and makes the resulting API available in the
|
|
||||||
// namespace fs.
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
#ifndef GHC_FILESYSTEM_STD_H
|
|
||||||
#define GHC_FILESYSTEM_STD_H
|
|
||||||
#if defined(__APPLE__)
|
|
||||||
#include <Availability.h>
|
|
||||||
#endif
|
|
||||||
#if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || (defined(__cplusplus) && __cplusplus >= 201703L)) && defined(__has_include)
|
|
||||||
#if __has_include(<filesystem>) && (!defined(__MAC_OS_X_VERSION_MIN_REQUIRED) || __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500)
|
|
||||||
#define GHC_USE_STD_FS
|
|
||||||
#include <filesystem>
|
|
||||||
namespace fs {
|
|
||||||
using namespace std::filesystem;
|
|
||||||
using ifstream = std::ifstream;
|
|
||||||
using ofstream = std::ofstream;
|
|
||||||
using fstream = std::fstream;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#ifndef GHC_USE_STD_FS
|
|
||||||
//#define GHC_WIN_DISABLE_WSTRING_STORAGE_TYPE
|
|
||||||
#include <ghc/filesystem.hpp>
|
|
||||||
namespace fs {
|
|
||||||
using namespace ghc::filesystem;
|
|
||||||
using ifstream = ghc::filesystem::ifstream;
|
|
||||||
using ofstream = ghc::filesystem::ofstream;
|
|
||||||
using fstream = ghc::filesystem::fstream;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif // GHC_FILESYSTEM_STD_H
|
|
||||||
|
|
63
vendor/FileSystem/include/ghc/fs_std_fwd.hpp
vendored
63
vendor/FileSystem/include/ghc/fs_std_fwd.hpp
vendored
@ -1,63 +0,0 @@
|
|||||||
//---------------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// ghc::filesystem - A C++17-like filesystem implementation for C++11/C++14
|
|
||||||
//
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018, Steffen Schümann <s.schuemann@pobox.com>
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in all
|
|
||||||
// copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
// SOFTWARE.
|
|
||||||
//
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
// fs_std_fwd.hpp - The forwarding header for the header/implementation seperated usage of
|
|
||||||
// ghc::filesystem that uses std::filesystem if it detects it.
|
|
||||||
// This file can be include at any place, where fs::filesystem api is needed while
|
|
||||||
// not bleeding implementation details (e.g. system includes) into the global namespace,
|
|
||||||
// as long as one cpp includes fs_std_impl.hpp to deliver the matching implementations.
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
#ifndef GHC_FILESYSTEM_STD_FWD_H
|
|
||||||
#define GHC_FILESYSTEM_STD_FWD_H
|
|
||||||
#if defined(__APPLE__)
|
|
||||||
#include <Availability.h>
|
|
||||||
#endif
|
|
||||||
#if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || (defined(__cplusplus) && __cplusplus >= 201703L)) && defined(__has_include)
|
|
||||||
#if __has_include(<filesystem>) && (!defined(__MAC_OS_X_VERSION_MIN_REQUIRED) || __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500)
|
|
||||||
#define GHC_USE_STD_FS
|
|
||||||
#include <filesystem>
|
|
||||||
namespace fs {
|
|
||||||
using namespace std::filesystem;
|
|
||||||
using ifstream = std::ifstream;
|
|
||||||
using ofstream = std::ofstream;
|
|
||||||
using fstream = std::fstream;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#ifndef GHC_USE_STD_FS
|
|
||||||
//#define GHC_WIN_DISABLE_WSTRING_STORAGE_TYPE
|
|
||||||
#define GHC_FILESYSTEM_FWD
|
|
||||||
#include <ghc/filesystem.hpp>
|
|
||||||
namespace fs {
|
|
||||||
using namespace ghc::filesystem;
|
|
||||||
using ifstream = ghc::filesystem::ifstream;
|
|
||||||
using ofstream = ghc::filesystem::ofstream;
|
|
||||||
using fstream = ghc::filesystem::fstream;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif // GHC_FILESYSTEM_STD_FWD_H
|
|
||||||
|
|
46
vendor/FileSystem/include/ghc/fs_std_impl.hpp
vendored
46
vendor/FileSystem/include/ghc/fs_std_impl.hpp
vendored
@ -1,46 +0,0 @@
|
|||||||
//---------------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// ghc::filesystem - A C++17-like filesystem implementation for C++11/C++14
|
|
||||||
//
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018, Steffen Schümann <s.schuemann@pobox.com>
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in all
|
|
||||||
// copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
// SOFTWARE.
|
|
||||||
//
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
// fs_std_impl.hpp - The implementation header for the header/implementation seperated usage of
|
|
||||||
// ghc::filesystem that does nothing if std::filesystem is detected.
|
|
||||||
// This file can be used to hide the implementation of ghc::filesystem into a single cpp.
|
|
||||||
// The cpp has to include this before including fs_std_fwd.hpp directly or via a different
|
|
||||||
// header to work.
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
#if defined(__APPLE__)
|
|
||||||
#include <Availability.h>
|
|
||||||
#endif
|
|
||||||
#if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || (defined(__cplusplus) && __cplusplus >= 201703L)) && defined(__has_include)
|
|
||||||
#if __has_include(<filesystem>) && (!defined(__MAC_OS_X_VERSION_MIN_REQUIRED) || __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500)
|
|
||||||
#define GHC_USE_STD_FS
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#ifndef GHC_USE_STD_FS
|
|
||||||
//#define GHC_WIN_DISABLE_WSTRING_STORAGE_TYPE
|
|
||||||
#define GHC_FILESYSTEM_IMPLEMENTATION
|
|
||||||
#include <ghc/filesystem.hpp>
|
|
||||||
#endif
|
|
91
vendor/FileSystem/test/CMakeLists.txt
vendored
91
vendor/FileSystem/test/CMakeLists.txt
vendored
@ -1,91 +0,0 @@
|
|||||||
|
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
|
|
||||||
set(PARSE_CATCH_TESTS_ADD_TO_CONFIGURE_DEPENDS ON)
|
|
||||||
include(ParseAndAddCatchTests)
|
|
||||||
|
|
||||||
if(GHC_COVERAGE)
|
|
||||||
message("Generating test runner for coverage run...")
|
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMCMAKE_EXE_LINKER_FLAGS} --coverage")
|
|
||||||
add_executable(filesystem_test filesystem_test.cpp catch.hpp)
|
|
||||||
if(MINGW)
|
|
||||||
target_compile_options(filesystem_test PUBLIC --coverage "-Wa,-mbig-obj")
|
|
||||||
else()
|
|
||||||
target_compile_options(filesystem_test PUBLIC --coverage)
|
|
||||||
endif()
|
|
||||||
target_link_libraries(filesystem_test PUBLIC ghc_filesystem --coverage)
|
|
||||||
if("cxx_std_17" IN_LIST GHC_FILESYSTEM_TEST_COMPILE_FEATURES)
|
|
||||||
AddTestExecutableWithStdCpp(17 filesystem_test.cpp catch.hpp)
|
|
||||||
endif()
|
|
||||||
if("cxx_std_20" IN_LIST GHC_FILESYSTEM_TEST_COMPILE_FEATURES)
|
|
||||||
AddTestExecutableWithStdCpp(20 filesystem_test.cpp catch.hpp)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
message("Generating test runner for normal test...")
|
|
||||||
add_executable(filesystem_test filesystem_test.cpp catch.hpp)
|
|
||||||
target_link_libraries(filesystem_test ghc_filesystem)
|
|
||||||
target_compile_options(filesystem_test PRIVATE
|
|
||||||
$<$<BOOL:${EMSCRIPTEN}>:-s DISABLE_EXCEPTION_CATCHING=0>
|
|
||||||
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Werror>
|
|
||||||
$<$<CXX_COMPILER_ID:GNU>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Wno-psabi -Werror>
|
|
||||||
$<$<CXX_COMPILER_ID:MSVC>:/WX>
|
|
||||||
$<$<BOOL:${CYGWIN}>:-Wa,-mbig-obj>)
|
|
||||||
if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
|
|
||||||
target_compile_definitions(filesystem_test PRIVATE _CRT_SECURE_NO_WARNINGS WIN32_LEAN_AND_MEAN NOMINMAX)
|
|
||||||
endif()
|
|
||||||
if(EMSCRIPTEN)
|
|
||||||
set_target_properties(filesystem_test PROPERTIES LINK_FLAGS "-g4 -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1")
|
|
||||||
endif()
|
|
||||||
ParseAndAddCatchTests(filesystem_test)
|
|
||||||
if(GHC_FILESYSTEM_BUILD_STD_TESTING)
|
|
||||||
AddExecutableWithStdFS(std_filesystem_test filesystem_test.cpp catch.hpp)
|
|
||||||
endif()
|
|
||||||
if(WIN32)
|
|
||||||
add_executable(filesystem_test_char filesystem_test.cpp catch.hpp)
|
|
||||||
target_link_libraries(filesystem_test_char ghc_filesystem)
|
|
||||||
target_compile_options(filesystem_test_char PRIVATE
|
|
||||||
$<$<CXX_COMPILER_ID:Clang>:-Wall -Wextra -Werror>
|
|
||||||
$<$<CXX_COMPILER_ID:GNU>:-Wall -Werror>
|
|
||||||
$<$<CXX_COMPILER_ID:MSVC>:/WX>)
|
|
||||||
if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
|
|
||||||
target_compile_definitions(filesystem_test_char PRIVATE _CRT_SECURE_NO_WARNINGS GHC_WIN_DISABLE_WSTRING_STORAGE_TYPE)
|
|
||||||
else()
|
|
||||||
target_compile_definitions(filesystem_test_char PRIVATE GHC_WIN_DISABLE_WSTRING_STORAGE_TYPE)
|
|
||||||
endif()
|
|
||||||
ParseAndAddCatchTests(filesystem_test_char)
|
|
||||||
endif()
|
|
||||||
if("cxx_std_17" IN_LIST GHC_FILESYSTEM_TEST_COMPILE_FEATURES)
|
|
||||||
AddTestExecutableWithStdCpp(17 filesystem_test.cpp catch.hpp)
|
|
||||||
endif()
|
|
||||||
if("cxx_std_20" IN_LIST GHC_FILESYSTEM_TEST_COMPILE_FEATURES)
|
|
||||||
AddTestExecutableWithStdCpp(20 filesystem_test.cpp catch.hpp)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_executable(multifile_test multi1.cpp multi2.cpp catch.hpp)
|
|
||||||
target_link_libraries(multifile_test ghc_filesystem)
|
|
||||||
add_test(multifile_test multifile_test)
|
|
||||||
|
|
||||||
add_executable(fwd_impl_test fwd_test.cpp impl_test.cpp)
|
|
||||||
target_link_libraries(fwd_impl_test ghc_filesystem)
|
|
||||||
target_compile_options(fwd_impl_test PRIVATE
|
|
||||||
$<$<BOOL:${EMSCRIPTEN}>:-s DISABLE_EXCEPTION_CATCHING=0>
|
|
||||||
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Werror>
|
|
||||||
$<$<CXX_COMPILER_ID:GNU>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Wno-psabi -Werror>
|
|
||||||
$<$<CXX_COMPILER_ID:MSVC>:/WX>
|
|
||||||
$<$<BOOL:${CYGWIN}>:-Wa,-mbig-obj>)
|
|
||||||
if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
|
|
||||||
target_compile_definitions(fwd_impl_test PRIVATE _CRT_SECURE_NO_WARNINGS WIN32_LEAN_AND_MEAN NOMINMAX)
|
|
||||||
endif()
|
|
||||||
add_test(fwd_impl_test fwd_impl_test)
|
|
||||||
|
|
||||||
add_executable(exception exception.cpp)
|
|
||||||
if(NOT MSVC)
|
|
||||||
target_compile_options(exception PRIVATE -fno-exceptions)
|
|
||||||
endif()
|
|
||||||
target_include_directories(exception PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../include)
|
|
||||||
target_compile_options(exception PRIVATE
|
|
||||||
$<$<BOOL:${EMSCRIPTEN}>:-s DISABLE_EXCEPTION_CATCHING=0>
|
|
||||||
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Werror>
|
|
||||||
$<$<CXX_COMPILER_ID:GNU>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Wno-psabi -Werror>
|
|
||||||
$<$<CXX_COMPILER_ID:MSVC>:/WX>
|
|
||||||
$<$<BOOL:${CYGWIN}>:-Wa,-mbig-obj>)
|
|
13922
vendor/FileSystem/test/catch.hpp
vendored
13922
vendor/FileSystem/test/catch.hpp
vendored
File diff suppressed because it is too large
Load Diff
@ -1,230 +0,0 @@
|
|||||||
#==================================================================================================#
|
|
||||||
# supported macros #
|
|
||||||
# - TEST_CASE, #
|
|
||||||
# - SCENARIO, #
|
|
||||||
# - TEST_CASE_METHOD, #
|
|
||||||
# - CATCH_TEST_CASE, #
|
|
||||||
# - CATCH_SCENARIO, #
|
|
||||||
# - CATCH_TEST_CASE_METHOD. #
|
|
||||||
# #
|
|
||||||
# Usage #
|
|
||||||
# 1. make sure this module is in the path or add this otherwise: #
|
|
||||||
# set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake.modules/") #
|
|
||||||
# 2. make sure that you've enabled testing option for the project by the call: #
|
|
||||||
# enable_testing() #
|
|
||||||
# 3. add the lines to the script for testing target (sample CMakeLists.txt): #
|
|
||||||
# project(testing_target) #
|
|
||||||
# set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake.modules/") #
|
|
||||||
# enable_testing() #
|
|
||||||
# #
|
|
||||||
# find_path(CATCH_INCLUDE_DIR "catch.hpp") #
|
|
||||||
# include_directories(${INCLUDE_DIRECTORIES} ${CATCH_INCLUDE_DIR}) #
|
|
||||||
# #
|
|
||||||
# file(GLOB SOURCE_FILES "*.cpp") #
|
|
||||||
# add_executable(${PROJECT_NAME} ${SOURCE_FILES}) #
|
|
||||||
# #
|
|
||||||
# include(ParseAndAddCatchTests) #
|
|
||||||
# ParseAndAddCatchTests(${PROJECT_NAME}) #
|
|
||||||
# #
|
|
||||||
# The following variables affect the behavior of the script: #
|
|
||||||
# #
|
|
||||||
# PARSE_CATCH_TESTS_VERBOSE (Default OFF) #
|
|
||||||
# -- enables debug messages #
|
|
||||||
# PARSE_CATCH_TESTS_NO_HIDDEN_TESTS (Default OFF) #
|
|
||||||
# -- excludes tests marked with [!hide], [.] or [.foo] tags #
|
|
||||||
# PARSE_CATCH_TESTS_ADD_FIXTURE_IN_TEST_NAME (Default ON) #
|
|
||||||
# -- adds fixture class name to the test name #
|
|
||||||
# PARSE_CATCH_TESTS_ADD_TARGET_IN_TEST_NAME (Default ON) #
|
|
||||||
# -- adds cmake target name to the test name #
|
|
||||||
# PARSE_CATCH_TESTS_ADD_TO_CONFIGURE_DEPENDS (Default OFF) #
|
|
||||||
# -- causes CMake to rerun when file with tests changes so that new tests will be discovered #
|
|
||||||
# #
|
|
||||||
# One can also set (locally) the optional variable OptionalCatchTestLauncher to precise the way #
|
|
||||||
# a test should be run. For instance to use test MPI, one can write #
|
|
||||||
# set(OptionalCatchTestLauncher ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${NUMPROC}) #
|
|
||||||
# just before calling this ParseAndAddCatchTests function #
|
|
||||||
# #
|
|
||||||
# The AdditionalCatchParameters optional variable can be used to pass extra argument to the test #
|
|
||||||
# command. For example, to include successful tests in the output, one can write #
|
|
||||||
# set(AdditionalCatchParameters --success) #
|
|
||||||
# #
|
|
||||||
# After the script, the ParseAndAddCatchTests_TESTS property for the target, and for each source #
|
|
||||||
# file in the target is set, and contains the list of the tests extracted from that target, or #
|
|
||||||
# from that file. This is useful, for example to add further labels or properties to the tests. #
|
|
||||||
# #
|
|
||||||
#==================================================================================================#
|
|
||||||
|
|
||||||
if (CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.8)
|
|
||||||
message(FATAL_ERROR "ParseAndAddCatchTests requires CMake 2.8.8 or newer")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
option(PARSE_CATCH_TESTS_VERBOSE "Print Catch to CTest parser debug messages" OFF)
|
|
||||||
option(PARSE_CATCH_TESTS_NO_HIDDEN_TESTS "Exclude tests with [!hide], [.] or [.foo] tags" OFF)
|
|
||||||
option(PARSE_CATCH_TESTS_ADD_FIXTURE_IN_TEST_NAME "Add fixture class name to the test name" ON)
|
|
||||||
option(PARSE_CATCH_TESTS_ADD_TARGET_IN_TEST_NAME "Add target name to the test name" ON)
|
|
||||||
option(PARSE_CATCH_TESTS_ADD_TO_CONFIGURE_DEPENDS "Add test file to CMAKE_CONFIGURE_DEPENDS property" OFF)
|
|
||||||
|
|
||||||
function(ParseAndAddCatchTests_PrintDebugMessage)
|
|
||||||
if(PARSE_CATCH_TESTS_VERBOSE)
|
|
||||||
message(STATUS "ParseAndAddCatchTests: ${ARGV}")
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# This removes the contents between
|
|
||||||
# - block comments (i.e. /* ... */)
|
|
||||||
# - full line comments (i.e. // ... )
|
|
||||||
# contents have been read into '${CppCode}'.
|
|
||||||
# !keep partial line comments
|
|
||||||
function(ParseAndAddCatchTests_RemoveComments CppCode)
|
|
||||||
string(ASCII 2 CMakeBeginBlockComment)
|
|
||||||
string(ASCII 3 CMakeEndBlockComment)
|
|
||||||
string(REGEX REPLACE "/\\*" "${CMakeBeginBlockComment}" ${CppCode} "${${CppCode}}")
|
|
||||||
string(REGEX REPLACE "\\*/" "${CMakeEndBlockComment}" ${CppCode} "${${CppCode}}")
|
|
||||||
string(REGEX REPLACE "${CMakeBeginBlockComment}[^${CMakeEndBlockComment}]*${CMakeEndBlockComment}" "" ${CppCode} "${${CppCode}}")
|
|
||||||
string(REGEX REPLACE "\n[ \t]*//+[^\n]+" "\n" ${CppCode} "${${CppCode}}")
|
|
||||||
|
|
||||||
set(${CppCode} "${${CppCode}}" PARENT_SCOPE)
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# Worker function
|
|
||||||
function(ParseAndAddCatchTests_ParseFile SourceFile TestTarget)
|
|
||||||
# If SourceFile is an object library, do not scan it (as it is not a file). Exit without giving a warning about a missing file.
|
|
||||||
if(SourceFile MATCHES "\\\$<TARGET_OBJECTS:.+>")
|
|
||||||
ParseAndAddCatchTests_PrintDebugMessage("Detected OBJECT library: ${SourceFile} this will not be scanned for tests.")
|
|
||||||
return()
|
|
||||||
endif()
|
|
||||||
# According to CMake docs EXISTS behavior is well-defined only for full paths.
|
|
||||||
get_filename_component(SourceFile ${SourceFile} ABSOLUTE)
|
|
||||||
if(NOT EXISTS ${SourceFile})
|
|
||||||
message(WARNING "Cannot find source file: ${SourceFile}")
|
|
||||||
return()
|
|
||||||
endif()
|
|
||||||
ParseAndAddCatchTests_PrintDebugMessage("parsing ${SourceFile}")
|
|
||||||
file(STRINGS ${SourceFile} Contents NEWLINE_CONSUME)
|
|
||||||
|
|
||||||
# Remove block and fullline comments
|
|
||||||
ParseAndAddCatchTests_RemoveComments(Contents)
|
|
||||||
|
|
||||||
# Find definition of test names
|
|
||||||
string(REGEX MATCHALL "[ \t]*(CATCH_)?(TEST_CASE_METHOD|SCENARIO|TEST_CASE)[ \t]*\\([^\)]+\\)+[ \t\n]*{+[ \t]*(//[^\n]*[Tt][Ii][Mm][Ee][Oo][Uu][Tt][ \t]*[0-9]+)*" Tests "${Contents}")
|
|
||||||
|
|
||||||
if(PARSE_CATCH_TESTS_ADD_TO_CONFIGURE_DEPENDS AND Tests)
|
|
||||||
ParseAndAddCatchTests_PrintDebugMessage("Adding ${SourceFile} to CMAKE_CONFIGURE_DEPENDS property")
|
|
||||||
set_property(
|
|
||||||
DIRECTORY
|
|
||||||
APPEND
|
|
||||||
PROPERTY CMAKE_CONFIGURE_DEPENDS ${SourceFile}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
foreach(TestName ${Tests})
|
|
||||||
# Strip newlines
|
|
||||||
string(REGEX REPLACE "\\\\\n|\n" "" TestName "${TestName}")
|
|
||||||
|
|
||||||
# Get test type and fixture if applicable
|
|
||||||
string(REGEX MATCH "(CATCH_)?(TEST_CASE_METHOD|SCENARIO|TEST_CASE)[ \t]*\\([^,^\"]*" TestTypeAndFixture "${TestName}")
|
|
||||||
string(REGEX MATCH "(CATCH_)?(TEST_CASE_METHOD|SCENARIO|TEST_CASE)" TestType "${TestTypeAndFixture}")
|
|
||||||
string(REGEX REPLACE "${TestType}\\([ \t]*" "" TestFixture "${TestTypeAndFixture}")
|
|
||||||
|
|
||||||
# Get string parts of test definition
|
|
||||||
string(REGEX MATCHALL "\"+([^\\^\"]|\\\\\")+\"+" TestStrings "${TestName}")
|
|
||||||
|
|
||||||
# Strip wrapping quotation marks
|
|
||||||
string(REGEX REPLACE "^\"(.*)\"$" "\\1" TestStrings "${TestStrings}")
|
|
||||||
string(REPLACE "\";\"" ";" TestStrings "${TestStrings}")
|
|
||||||
|
|
||||||
# Validate that a test name and tags have been provided
|
|
||||||
list(LENGTH TestStrings TestStringsLength)
|
|
||||||
if(TestStringsLength GREATER 2 OR TestStringsLength LESS 1)
|
|
||||||
message(FATAL_ERROR "You must provide a valid test name and tags for all tests in ${SourceFile}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Assign name and tags
|
|
||||||
list(GET TestStrings 0 Name)
|
|
||||||
if("${TestType}" STREQUAL "SCENARIO")
|
|
||||||
set(Name "Scenario: ${Name}")
|
|
||||||
endif()
|
|
||||||
if(PARSE_CATCH_TESTS_ADD_FIXTURE_IN_TEST_NAME AND "${TestType}" MATCHES "(CATCH_)?TEST_CASE_METHOD" AND TestFixture )
|
|
||||||
set(CTestName "${TestFixture}:${Name}")
|
|
||||||
else()
|
|
||||||
set(CTestName "${Name}")
|
|
||||||
endif()
|
|
||||||
if(PARSE_CATCH_TESTS_ADD_TARGET_IN_TEST_NAME)
|
|
||||||
set(CTestName "${TestTarget}:${CTestName}")
|
|
||||||
endif()
|
|
||||||
# add target to labels to enable running all tests added from this target
|
|
||||||
set(Labels ${TestTarget})
|
|
||||||
if(TestStringsLength EQUAL 2)
|
|
||||||
list(GET TestStrings 1 Tags)
|
|
||||||
string(TOLOWER "${Tags}" Tags)
|
|
||||||
# remove target from labels if the test is hidden
|
|
||||||
if("${Tags}" MATCHES ".*\\[!?(hide|\\.)\\].*")
|
|
||||||
list(REMOVE_ITEM Labels ${TestTarget})
|
|
||||||
endif()
|
|
||||||
string(REPLACE "]" ";" Tags "${Tags}")
|
|
||||||
string(REPLACE "[" "" Tags "${Tags}")
|
|
||||||
else()
|
|
||||||
# unset tags variable from previous loop
|
|
||||||
unset(Tags)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
list(APPEND Labels ${Tags})
|
|
||||||
|
|
||||||
set(HiddenTagFound OFF)
|
|
||||||
foreach(label ${Labels})
|
|
||||||
string(REGEX MATCH "^!hide|^\\." result ${label})
|
|
||||||
if(result)
|
|
||||||
set(HiddenTagFound ON)
|
|
||||||
break()
|
|
||||||
endif(result)
|
|
||||||
endforeach(label)
|
|
||||||
if(PARSE_CATCH_TESTS_NO_HIDDEN_TESTS AND ${HiddenTagFound} AND ${CMAKE_VERSION} VERSION_LESS "3.9")
|
|
||||||
ParseAndAddCatchTests_PrintDebugMessage("Skipping test \"${CTestName}\" as it has [!hide], [.] or [.foo] label")
|
|
||||||
else()
|
|
||||||
ParseAndAddCatchTests_PrintDebugMessage("Adding test \"${CTestName}\"")
|
|
||||||
if(Labels)
|
|
||||||
ParseAndAddCatchTests_PrintDebugMessage("Setting labels to ${Labels}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Escape commas in the test spec
|
|
||||||
string(REPLACE "," "\\," Name ${Name})
|
|
||||||
|
|
||||||
# Work around CMake 3.18.0 change in `add_test()`, before the escaped quotes were neccessary,
|
|
||||||
# only with CMake 3.18.0 the escaped double quotes confuse the call. This change is reverted in 3.18.1
|
|
||||||
if(NOT ${CMAKE_VERSION} VERSION_EQUAL "3.18")
|
|
||||||
set(CTestName "\"${CTestName}\"")
|
|
||||||
endif()
|
|
||||||
# Add the test and set its properties
|
|
||||||
add_test(NAME "${CTestName}" COMMAND ${OptionalCatchTestLauncher} $<TARGET_FILE:${TestTarget}> ${Name} ${AdditionalCatchParameters})
|
|
||||||
# Old CMake versions do not document VERSION_GREATER_EQUAL, so we use VERSION_GREATER with 3.8 instead
|
|
||||||
if(PARSE_CATCH_TESTS_NO_HIDDEN_TESTS AND ${HiddenTagFound} AND ${CMAKE_VERSION} VERSION_GREATER "3.8")
|
|
||||||
ParseAndAddCatchTests_PrintDebugMessage("Setting DISABLED test property")
|
|
||||||
set_tests_properties("${CTestName}" PROPERTIES DISABLED ON)
|
|
||||||
else()
|
|
||||||
set_tests_properties("${CTestName}" PROPERTIES FAIL_REGULAR_EXPRESSION "No tests ran"
|
|
||||||
LABELS "${Labels}")
|
|
||||||
endif()
|
|
||||||
set_property(
|
|
||||||
TARGET ${TestTarget}
|
|
||||||
APPEND
|
|
||||||
PROPERTY ParseAndAddCatchTests_TESTS "${CTestName}")
|
|
||||||
set_property(
|
|
||||||
SOURCE ${SourceFile}
|
|
||||||
APPEND
|
|
||||||
PROPERTY ParseAndAddCatchTests_TESTS "${CTestName}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
endforeach()
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# entry point
|
|
||||||
function(ParseAndAddCatchTests TestTarget)
|
|
||||||
ParseAndAddCatchTests_PrintDebugMessage("Started parsing ${TestTarget}")
|
|
||||||
get_target_property(SourceFiles ${TestTarget} SOURCES)
|
|
||||||
ParseAndAddCatchTests_PrintDebugMessage("Found the following sources: ${SourceFiles}")
|
|
||||||
foreach(SourceFile ${SourceFiles})
|
|
||||||
ParseAndAddCatchTests_ParseFile(${SourceFile} ${TestTarget})
|
|
||||||
endforeach()
|
|
||||||
ParseAndAddCatchTests_PrintDebugMessage("Finished parsing ${TestTarget}")
|
|
||||||
endfunction()
|
|
5
vendor/FileSystem/test/exception.cpp
vendored
5
vendor/FileSystem/test/exception.cpp
vendored
@ -1,5 +0,0 @@
|
|||||||
#include <ghc/filesystem.hpp>
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
2952
vendor/FileSystem/test/filesystem_test.cpp
vendored
2952
vendor/FileSystem/test/filesystem_test.cpp
vendored
File diff suppressed because it is too large
Load Diff
7
vendor/FileSystem/test/fwd_test.cpp
vendored
7
vendor/FileSystem/test/fwd_test.cpp
vendored
@ -1,7 +0,0 @@
|
|||||||
// This test file is part of the fwd_test.cpp/impl_test.cpp pair
|
|
||||||
// and used to test the new optional two-part usage of ghc::filesystem
|
|
||||||
// where exactly one cpp includes fs_impl.hpp and all others use
|
|
||||||
// fs_fwd.hpp (to test this with maximum functionality, the unit tests
|
|
||||||
// are included here, signaling they should only include the fs_fwd.hpp)
|
|
||||||
#define GHC_FILESYSTEM_FWD_TEST
|
|
||||||
#include "filesystem_test.cpp"
|
|
8
vendor/FileSystem/test/impl_test.cpp
vendored
8
vendor/FileSystem/test/impl_test.cpp
vendored
@ -1,8 +0,0 @@
|
|||||||
// This test file is part of the fwd_test.cpp/impl_test.cpp pair
|
|
||||||
// and used to test the new optional two-part usage of ghc::filesystem
|
|
||||||
// where exactly one cpp includes fs_impl.hpp and all others use
|
|
||||||
// fs_fwd.hpp (to test this with maximum functionality, the unit tests
|
|
||||||
// are included here, signaling they should only include the fs_fwd.hpp)
|
|
||||||
#include <ghc/fs_impl.hpp>
|
|
||||||
#define CATCH_CONFIG_MAIN
|
|
||||||
#include "catch.hpp"
|
|
42
vendor/FileSystem/test/multi1.cpp
vendored
42
vendor/FileSystem/test/multi1.cpp
vendored
@ -1,42 +0,0 @@
|
|||||||
//---------------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018, Steffen Schümann <s.schuemann@pobox.com>
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in all
|
|
||||||
// copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
// SOFTWARE.
|
|
||||||
//
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
#define CATCH_CONFIG_MAIN
|
|
||||||
#include "catch.hpp"
|
|
||||||
|
|
||||||
#include <ghc/filesystem.hpp>
|
|
||||||
namespace fs = ghc::filesystem;
|
|
||||||
|
|
||||||
// This test and the one in multi2.cpp doesn't actualy test relevant functionality,
|
|
||||||
// it is just used to check that it is possible to include filesystem.h in multiple
|
|
||||||
// source files.
|
|
||||||
TEST_CASE("Multifile-test 1", "[multi]")
|
|
||||||
{
|
|
||||||
CHECK("/usr/local/bin" == fs::path("/usr/local/bin").generic_string());
|
|
||||||
std::string str = "/usr/local/bin";
|
|
||||||
std::u16string u16str = u"/usr/local/bin";
|
|
||||||
std::u32string u32str = U"/usr/local/bin";
|
|
||||||
CHECK(str == fs::path(str.begin(), str.end()));
|
|
||||||
CHECK(str == fs::path(u16str.begin(), u16str.end()));
|
|
||||||
CHECK(str == fs::path(u32str.begin(), u32str.end()));
|
|
||||||
}
|
|
40
vendor/FileSystem/test/multi2.cpp
vendored
40
vendor/FileSystem/test/multi2.cpp
vendored
@ -1,40 +0,0 @@
|
|||||||
//---------------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// Copyright (c) 2018, Steffen Schümann <s.schuemann@pobox.com>
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in all
|
|
||||||
// copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
// SOFTWARE.
|
|
||||||
//
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
#include "catch.hpp"
|
|
||||||
#include <ghc/filesystem.hpp>
|
|
||||||
namespace fs = ghc::filesystem;
|
|
||||||
|
|
||||||
// This test and the one in multi1.cpp doesn't actualy test relevant functionality,
|
|
||||||
// it is just used to check that it is possible to include filesystem.h in multiple
|
|
||||||
// source files.
|
|
||||||
TEST_CASE("Multifile-test 2", "[multi]")
|
|
||||||
{
|
|
||||||
CHECK("/usr/local/bin" == fs::path("/usr/local/bin").generic_string());
|
|
||||||
std::string str = "/usr/local/bin";
|
|
||||||
std::u16string u16str = u"/usr/local/bin";
|
|
||||||
std::u32string u32str = U"/usr/local/bin";
|
|
||||||
CHECK(str == fs::path(str.begin(), str.end()));
|
|
||||||
CHECK(str == fs::path(u16str.begin(), u16str.end()));
|
|
||||||
CHECK(str == fs::path(u32str.begin(), u32str.end()));
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user