Move #include <filesystem> in its own file to be consistent with experimental support...

Use `fs::` instead of `std::filesystem`
This commit is contained in:
Jarod42 2023-08-04 15:57:36 +02:00
parent 994e9265fc
commit aac47413a0
9 changed files with 66 additions and 35 deletions

View file

@ -551,6 +551,7 @@ set(stratagus_generic_HDRS
src/include/depend.h src/include/depend.h
src/include/editor.h src/include/editor.h
src/include/online_service.h src/include/online_service.h
src/include/filesystem.h
src/include/font.h src/include/font.h
src/include/fov.h src/include/fov.h
src/include/fow.h src/include/fow.h

51
src/include/filesystem.h Normal file
View file

@ -0,0 +1,51 @@
// _________ __ __
// / _____// |_____________ _/ |______ ____ __ __ ______
// \_____ \\ __\_ __ \__ \\ __\__ \ / ___\| | \/ ___/
// / \| | | | \// __ \| | / __ \_/ /_/ > | /\___ |
// /_______ /|__| |__| (____ /__| (____ /\___ /|____//____ >
// \/ \/ \//_____/ \/
// ______________________ ______________________
// T H E W A R B E G I N S
// Stratagus - A free fantasy real time strategy game engine
//
/**@name filesystem - filesystem header selection. */
//
// (c) Copyright 1998-2023 by Lutz Sammer, Jimmy Salmon and Joris Dauphin.
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; only version 2 of the License.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
// 02111-1307, USA.
//
#ifndef __FILESYSTEM_H__
#define __FILESYSTEM_H__
//@{
/*----------------------------------------------------------------------------
-- Includes
----------------------------------------------------------------------------*/
#if __has_include(<filesystem>)
# include <filesystem>
namespace fs = std::filesystem;
#elif __has_include(<experimental/filesystem>)
# include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
#else
error "Missing the <filesystem> header."
#endif
//@}
#endif /* __FILESYSTEM_H__ */

View file

@ -37,6 +37,7 @@
----------------------------------------------------------------------------*/ ----------------------------------------------------------------------------*/
#include <vector> #include <vector>
#include "filesystem.h"
#include "SDL.h" #include "SDL.h"
/*---------------------------------------------------------------------------- /*----------------------------------------------------------------------------

View file

@ -47,6 +47,9 @@ extern "C" {
} }
#endif #endif
#include "filesystem.h"
#include "stratagus.h"
/*---------------------------------------------------------------------------- /*----------------------------------------------------------------------------
-- Declarations -- Declarations
----------------------------------------------------------------------------*/ ----------------------------------------------------------------------------*/

View file

@ -32,15 +32,7 @@
//@{ //@{
#if __has_include(<filesystem>) #include "filesystem.h"
#include <filesystem>
namespace fs = std::filesystem;
#elif __has_include(<experimental/filesystem>)
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
#else
error "Missing the <filesystem> header."
#endif
#include <cstdlib> #include <cstdlib>
#include <cstdint> #include <cstdint>

View file

@ -42,16 +42,8 @@
#include <array> #include <array>
#include <utility> #include <utility>
#include <random> #include <random>
#if __has_include(<filesystem>)
#include <filesystem>
namespace fs = std::filesystem;
#elif __has_include(<experimental/filesystem>)
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
#else
error "Missing the <filesystem> header."
#endif
#include "filesystem.h"
#include "game.h" #include "game.h"
#include "online_service.h" #include "online_service.h"
#include "stratagus.h" #include "stratagus.h"

View file

@ -692,13 +692,13 @@ std::vector<FileList> ReadDataDirectory(const fs::path& directory)
{ {
std::vector<FileList> files; std::vector<FileList> files;
for (auto it = std::filesystem::directory_iterator{directory}; for (auto it = fs::directory_iterator{directory};
it != std::filesystem::directory_iterator{}; it != fs::directory_iterator{};
++it) { ++it) {
if (std::filesystem::is_directory(it->path())) { if (fs::is_directory(it->path())) {
files.emplace_back(); files.emplace_back();
files.back().name = it->path().filename().string(); files.back().name = it->path().filename().string();
} else if (std::filesystem::is_regular_file(it->path())) { } else if (fs::is_regular_file(it->path())) {
files.emplace_back(); files.emplace_back();
files.back().name = it->path().filename().string(); files.back().name = it->path().filename().string();
files.back().type = 1; files.back().type = 1;

View file

@ -31,13 +31,13 @@
#include "stratagus.h" #include "stratagus.h"
#include "filesystem.h"
#include "parameters.h" #include "parameters.h"
#include <stdlib.h> #include <stdlib.h>
#ifdef USE_WIN32 #ifdef USE_WIN32
#include <Shlobj.h> #include <Shlobj.h>
#include <filesystem>
#endif #endif
/* static */ Parameters Parameters::Instance; /* static */ Parameters Parameters::Instance;
@ -59,7 +59,7 @@ void Parameters::SetDefaultUserDirectory(bool noPortable)
if (!noPortable) { if (!noPortable) {
// if launcher is in the same directory as the data, we are in a portable install // if launcher is in the same directory as the data, we are in a portable install
fs::path executable_path = GetExecutablePath(); fs::path executable_path = GetExecutablePath();
if (std::filesystem::equivalent(std::filesystem::path(StratagusLibPath), executable_path.parent_path())) { if (fs::equivalent(fs::path(StratagusLibPath), executable_path.parent_path())) {
userDirectory = StratagusLibPath; userDirectory = StratagusLibPath;
return; return;
} }

View file

@ -33,23 +33,14 @@
-- Includes -- Includes
----------------------------------------------------------------------------*/ ----------------------------------------------------------------------------*/
#if __has_include(<filesystem>) #include "script.h"
#include <filesystem>
namespace fs = std::filesystem;
#elif __has_include(<experimental/filesystem>)
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
#else
error "Missing the <filesystem> header."
#endif
#include <signal.h> #include <signal.h>
#include "stratagus.h" #include "stratagus.h"
#include "script.h"
#include "animation/animation_setplayervar.h" #include "animation/animation_setplayervar.h"
#include "filesystem.h"
#include "font.h" #include "font.h"
#include "game.h" #include "game.h"
#include "iolib.h" #include "iolib.h"