mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-16 22:37:30 +08:00
cmSystemTools: Remove cmSystemToolsFileTime interface
This removes the C style cmSystemToolsFileTime interface in cmSystemTools. It was replaced by the RAII based cmFileTimes class.
This commit is contained in:
@@ -6,7 +6,6 @@
|
|||||||
#include "cmDuration.h"
|
#include "cmDuration.h"
|
||||||
#include "cmProcessOutput.h"
|
#include "cmProcessOutput.h"
|
||||||
#include "cmRange.h"
|
#include "cmRange.h"
|
||||||
#include "cm_sys_stat.h"
|
|
||||||
#include "cm_uv.h"
|
#include "cm_uv.h"
|
||||||
|
|
||||||
#if defined(CMAKE_BUILD_WITH_CMAKE)
|
#if defined(CMAKE_BUILD_WITH_CMAKE)
|
||||||
@@ -60,7 +59,6 @@
|
|||||||
#else
|
#else
|
||||||
# include <sys/time.h>
|
# include <sys/time.h>
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
# include <utime.h>
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(_WIN32) && \
|
#if defined(_WIN32) && \
|
||||||
@@ -90,18 +88,6 @@ static bool cm_isspace(char c)
|
|||||||
return ((c & 0x80) == 0) && isspace(c);
|
return ((c & 0x80) == 0) && isspace(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
class cmSystemToolsFileTime
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
|
||||||
FILETIME timeCreation;
|
|
||||||
FILETIME timeLastAccess;
|
|
||||||
FILETIME timeLastWrite;
|
|
||||||
#else
|
|
||||||
struct utimbuf timeBuf;
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
#if !defined(HAVE_ENVIRON_NOT_REQUIRE_PROTOTYPE)
|
#if !defined(HAVE_ENVIRON_NOT_REQUIRE_PROTOTYPE)
|
||||||
// For GetEnvironmentVariables
|
// For GetEnvironmentVariables
|
||||||
# if defined(_WIN32)
|
# if defined(_WIN32)
|
||||||
@@ -134,29 +120,6 @@ static int cm_archive_read_open_file(struct archive* a, const char* file,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
class cmSystemToolsWindowsHandle
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
cmSystemToolsWindowsHandle(HANDLE h)
|
|
||||||
: handle_(h)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
~cmSystemToolsWindowsHandle()
|
|
||||||
{
|
|
||||||
if (this->handle_ != INVALID_HANDLE_VALUE) {
|
|
||||||
CloseHandle(this->handle_);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
explicit operator bool() const
|
|
||||||
{
|
|
||||||
return this->handle_ != INVALID_HANDLE_VALUE;
|
|
||||||
}
|
|
||||||
bool operator!() const { return this->handle_ == INVALID_HANDLE_VALUE; }
|
|
||||||
operator HANDLE() const { return this->handle_; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
HANDLE handle_;
|
|
||||||
};
|
|
||||||
#elif defined(__APPLE__)
|
#elif defined(__APPLE__)
|
||||||
# include <crt_externs.h>
|
# include <crt_externs.h>
|
||||||
|
|
||||||
@@ -2098,91 +2061,6 @@ void cmSystemTools::DoNotInheritStdPipes()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cmSystemTools::CopyFileTime(const std::string& fromFile,
|
|
||||||
const std::string& toFile)
|
|
||||||
{
|
|
||||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
|
||||||
cmSystemToolsWindowsHandle hFrom = CreateFileW(
|
|
||||||
SystemTools::ConvertToWindowsExtendedPath(fromFile).c_str(), GENERIC_READ,
|
|
||||||
FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);
|
|
||||||
cmSystemToolsWindowsHandle hTo = CreateFileW(
|
|
||||||
SystemTools::ConvertToWindowsExtendedPath(toFile).c_str(),
|
|
||||||
FILE_WRITE_ATTRIBUTES, 0, 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);
|
|
||||||
if (!hFrom || !hTo) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
FILETIME timeCreation;
|
|
||||||
FILETIME timeLastAccess;
|
|
||||||
FILETIME timeLastWrite;
|
|
||||||
if (!GetFileTime(hFrom, &timeCreation, &timeLastAccess, &timeLastWrite)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return SetFileTime(hTo, &timeCreation, &timeLastAccess, &timeLastWrite) != 0;
|
|
||||||
#else
|
|
||||||
struct stat fromStat;
|
|
||||||
if (stat(fromFile.c_str(), &fromStat) < 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct utimbuf buf;
|
|
||||||
buf.actime = fromStat.st_atime;
|
|
||||||
buf.modtime = fromStat.st_mtime;
|
|
||||||
return utime(toFile.c_str(), &buf) >= 0;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
cmSystemToolsFileTime* cmSystemTools::FileTimeNew()
|
|
||||||
{
|
|
||||||
return new cmSystemToolsFileTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
void cmSystemTools::FileTimeDelete(cmSystemToolsFileTime* t)
|
|
||||||
{
|
|
||||||
delete t;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool cmSystemTools::FileTimeGet(const std::string& fname,
|
|
||||||
cmSystemToolsFileTime* t)
|
|
||||||
{
|
|
||||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
|
||||||
cmSystemToolsWindowsHandle h = CreateFileW(
|
|
||||||
SystemTools::ConvertToWindowsExtendedPath(fname).c_str(), GENERIC_READ,
|
|
||||||
FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);
|
|
||||||
if (!h) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!GetFileTime(h, &t->timeCreation, &t->timeLastAccess,
|
|
||||||
&t->timeLastWrite)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
struct stat st;
|
|
||||||
if (stat(fname.c_str(), &st) < 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
t->timeBuf.actime = st.st_atime;
|
|
||||||
t->timeBuf.modtime = st.st_mtime;
|
|
||||||
#endif
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool cmSystemTools::FileTimeSet(const std::string& fname,
|
|
||||||
const cmSystemToolsFileTime* t)
|
|
||||||
{
|
|
||||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
|
||||||
cmSystemToolsWindowsHandle h = CreateFileW(
|
|
||||||
SystemTools::ConvertToWindowsExtendedPath(fname).c_str(),
|
|
||||||
FILE_WRITE_ATTRIBUTES, 0, 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);
|
|
||||||
if (!h) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return SetFileTime(h, &t->timeCreation, &t->timeLastAccess,
|
|
||||||
&t->timeLastWrite) != 0;
|
|
||||||
#else
|
|
||||||
return utime(fname.c_str(), &t->timeBuf) >= 0;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
# ifndef CRYPT_SILENT
|
# ifndef CRYPT_SILENT
|
||||||
# define CRYPT_SILENT 0x40 /* Not defined by VS 6 version of header. */
|
# define CRYPT_SILENT 0x40 /* Not defined by VS 6 version of header. */
|
||||||
|
@@ -15,8 +15,6 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
class cmSystemToolsFileTime;
|
|
||||||
|
|
||||||
/** \class cmSystemTools
|
/** \class cmSystemTools
|
||||||
* \brief A collection of useful functions for CMake.
|
* \brief A collection of useful functions for CMake.
|
||||||
*
|
*
|
||||||
@@ -470,18 +468,6 @@ public:
|
|||||||
|
|
||||||
static void EnsureStdPipes();
|
static void EnsureStdPipes();
|
||||||
|
|
||||||
/** Copy the file create/access/modify times from the file named by
|
|
||||||
the first argument to that named by the second. */
|
|
||||||
static bool CopyFileTime(const std::string& fromFile,
|
|
||||||
const std::string& toFile);
|
|
||||||
|
|
||||||
/** Save and restore file times. */
|
|
||||||
static cmSystemToolsFileTime* FileTimeNew();
|
|
||||||
static void FileTimeDelete(cmSystemToolsFileTime*);
|
|
||||||
static bool FileTimeGet(const std::string& fname, cmSystemToolsFileTime* t);
|
|
||||||
static bool FileTimeSet(const std::string& fname,
|
|
||||||
const cmSystemToolsFileTime* t);
|
|
||||||
|
|
||||||
/** Random seed generation. */
|
/** Random seed generation. */
|
||||||
static unsigned int RandomSeed();
|
static unsigned int RandomSeed();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user