mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-14 12:10:34 +00:00
Use boost::filesystem if std::filesystem is not available
This commit is contained in:
parent
6e2c3b1cc4
commit
e429a96601
@ -74,6 +74,16 @@ target_link_libraries(algorithms_libs_rtklib
|
|||||||
BLAS::BLAS
|
BLAS::BLAS
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(FILESYSTEM_FOUND)
|
||||||
|
target_compile_definitions(algorithms_libs_rtklib PUBLIC -DHAS_STD_FILESYSTEM=1)
|
||||||
|
if(find_experimental)
|
||||||
|
target_compile_definitions(algorithms_libs_rtklib PUBLIC -DHAS_STD_FILESYSTEM_EXPERIMENTAL=1)
|
||||||
|
endif()
|
||||||
|
target_link_libraries(algorithms_libs_rtklib PUBLIC std::filesystem)
|
||||||
|
else()
|
||||||
|
target_link_libraries(algorithms_libs_rtklib PUBLIC Boost::filesystem Boost::system)
|
||||||
|
endif()
|
||||||
|
|
||||||
set_property(TARGET algorithms_libs_rtklib
|
set_property(TARGET algorithms_libs_rtklib
|
||||||
APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||||||
|
@ -4118,11 +4118,11 @@ int execcmd(const char *cmd)
|
|||||||
* return : none
|
* return : none
|
||||||
* notes : not recursive. only one level
|
* notes : not recursive. only one level
|
||||||
*-----------------------------------------------------------------------------*/
|
*-----------------------------------------------------------------------------*/
|
||||||
void createdir(std::filesystem::path const &path)
|
void createdir(fs::path const &path)
|
||||||
{
|
{
|
||||||
std::error_code ec;
|
errorlib::error_code ec;
|
||||||
|
|
||||||
auto created = std::filesystem::create_directory(path, ec);
|
auto created = fs::create_directory(path, ec);
|
||||||
if (not created)
|
if (not created)
|
||||||
{
|
{
|
||||||
trace(1, "Error creating folder: %s", path.c_str());
|
trace(1, "Error creating folder: %s", path.c_str());
|
||||||
|
@ -60,9 +60,26 @@
|
|||||||
|
|
||||||
#include "rtklib.h"
|
#include "rtklib.h"
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <filesystem>
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#if HAS_STD_FILESYSTEM
|
||||||
|
#include <system_error>
|
||||||
|
namespace errorlib = std;
|
||||||
|
#if HAS_STD_FILESYSTEM_EXPERIMENTAL
|
||||||
|
#include <experimental/filesystem>
|
||||||
|
namespace fs = std::experimental::filesystem;
|
||||||
|
#else
|
||||||
|
#include <filesystem>
|
||||||
|
namespace fs = std::filesystem;
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#include <boost/filesystem/operations.hpp> // for create_directories, exists
|
||||||
|
#include <boost/filesystem/path.hpp> // for path, operator<<
|
||||||
|
#include <boost/filesystem/path_traits.hpp> // for filesystem
|
||||||
|
#include <boost/system/error_code.hpp> // for error_code
|
||||||
|
namespace fs = boost::filesystem;
|
||||||
|
namespace errorlib = boost::system;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* coordinate rotation matrix ------------------------------------------------*/
|
/* coordinate rotation matrix ------------------------------------------------*/
|
||||||
#define Rx(t, X) \
|
#define Rx(t, X) \
|
||||||
@ -230,7 +247,7 @@ void traceobs(int level, const obsd_t *obs, int n);
|
|||||||
// void traceb (int level, const unsigned char *p, int n);
|
// void traceb (int level, const unsigned char *p, int n);
|
||||||
|
|
||||||
int execcmd(const char *cmd);
|
int execcmd(const char *cmd);
|
||||||
void createdir(std::filesystem::path const &path);
|
void createdir(fs::path const &path);
|
||||||
int reppath(std::string const &path, std::string &rpath, gtime_t time, const char *rov,
|
int reppath(std::string const &path, std::string &rpath, gtime_t time, const char *rov,
|
||||||
const char *base);
|
const char *base);
|
||||||
double satwavelen(int sat, int frq, const nav_t *nav);
|
double satwavelen(int sat, int frq, const nav_t *nav);
|
||||||
|
@ -1946,12 +1946,12 @@ void *ftpthread(void *arg)
|
|||||||
|
|
||||||
std::string remote;
|
std::string remote;
|
||||||
reppath(ftp->file, remote, time, "", "");
|
reppath(ftp->file, remote, time, "", "");
|
||||||
auto remotePath = std::filesystem::path(remote);
|
auto remotePath = fs::path(remote);
|
||||||
|
|
||||||
auto local = std::filesystem::path(localdir);
|
auto local = fs::path(localdir);
|
||||||
local /= remotePath.filename();
|
local /= remotePath.filename();
|
||||||
|
|
||||||
auto errfile = std::filesystem::path(local);
|
auto errfile = fs::path(local);
|
||||||
errfile.replace_extension("err");
|
errfile.replace_extension("err");
|
||||||
|
|
||||||
/* if local file exist, skip download */
|
/* if local file exist, skip download */
|
||||||
@ -1964,7 +1964,7 @@ void *ftpthread(void *arg)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (std::filesystem::exists(tmpfile))
|
if (fs::exists(tmpfile))
|
||||||
{
|
{
|
||||||
std::strncpy(ftp->local, tmpfile.c_str(), 1024);
|
std::strncpy(ftp->local, tmpfile.c_str(), 1024);
|
||||||
ftp->local[1023] = '\0';
|
ftp->local[1023] = '\0';
|
||||||
@ -2005,11 +2005,11 @@ void *ftpthread(void *arg)
|
|||||||
R"("http://)"s + std::string(ftp->addr) + "/"s + remotePath.native() + R"(" 2> ")"s + errfile.native() + "\"\n";
|
R"("http://)"s + std::string(ftp->addr) + "/"s + remotePath.native() + R"(" 2> ")"s + errfile.native() + "\"\n";
|
||||||
}
|
}
|
||||||
/* execute download command */
|
/* execute download command */
|
||||||
std::error_code ec; // prevent exceptions
|
errorlib::error_code ec; // prevent exceptions
|
||||||
auto ret = execcmd(cmd_str.c_str());
|
auto ret = execcmd(cmd_str.c_str());
|
||||||
if ((ret != 0))
|
if ((ret != 0))
|
||||||
{
|
{
|
||||||
if (std::filesystem::remove(local, ec) == false)
|
if (fs::remove(local, ec) == false)
|
||||||
{
|
{
|
||||||
trace(1, "Error removing file %s", local.c_str());
|
trace(1, "Error removing file %s", local.c_str());
|
||||||
}
|
}
|
||||||
@ -2018,7 +2018,7 @@ void *ftpthread(void *arg)
|
|||||||
ftp->state = 3;
|
ftp->state = 3;
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
if (std::filesystem::remove(errfile, ec) == false)
|
if (fs::remove(errfile, ec) == false)
|
||||||
{
|
{
|
||||||
trace(1, "Error removing file %s", errfile.c_str());
|
trace(1, "Error removing file %s", errfile.c_str());
|
||||||
}
|
}
|
||||||
@ -2032,7 +2032,7 @@ void *ftpthread(void *arg)
|
|||||||
ret = rtk_uncompress(local.c_str(), tmpfile_arg);
|
ret = rtk_uncompress(local.c_str(), tmpfile_arg);
|
||||||
if (ret != 0) // success
|
if (ret != 0) // success
|
||||||
{
|
{
|
||||||
if (std::filesystem::remove(local, ec) == false)
|
if (fs::remove(local, ec) == false)
|
||||||
{
|
{
|
||||||
trace(1, "Error removing file %s", local.c_str());
|
trace(1, "Error removing file %s", local.c_str());
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user