mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-11 13:17:00 -04:00
Finally got precompiled headers to work.
Now all C++ files need to #include <util/prec.hpp>
That is why all .cpp files are touched by this commit
Many changes to installers and update checking:
- the window is now called PackagesWindow, in a new source file
- update checking is now independent from the PackagesWindow. For update checking only a list of package versions are needed (vector<PackageDependency>). This is much less information to download at each startup.
- the list of available packages is now a list of available Installers, since an installer can contain multiple packages.
- moved the logic of dependency checking etc. to data/installer
- moved the actual installation to util/io/package_manager
- moved directory iteration/creation logic to util/file_utils
- added PackageDirectory: the local and global package directory now have their own object (was part of PackageManager)
- added PackageVersion: for detecting if a package has been modified after it was installed.
- added PackageDescription: description/header of a package. Basicly the same as what Packaged provides.
- added DownloadableInstaller: where to find an insaller, what does it contain?
- added InstallablePackage: brining it all together: installer, package, status, action.
Current status: the insaller is currently broken in a few places, more on that soon.
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@792 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
+29
-3
@@ -16,7 +16,7 @@
|
||||
|
||||
// ----------------------------------------------------------------------------- : AtomicInt : windows
|
||||
|
||||
#ifdef __WXMSW__
|
||||
#if defined(__WXMSW__)
|
||||
|
||||
#ifdef _MSC_VER
|
||||
extern "C" {
|
||||
@@ -28,7 +28,7 @@
|
||||
#pragma intrinsic (_InterlockedDecrement)
|
||||
#define InterlockedDecrement _InterlockedDecrement
|
||||
#endif
|
||||
|
||||
|
||||
/// An integer which is equivalent to an AtomicInt, but which doesn't support attomic operations
|
||||
typedef LONG AtomicIntEquiv;
|
||||
|
||||
@@ -50,7 +50,33 @@
|
||||
private:
|
||||
AtomicIntEquiv v; ///< The value
|
||||
};
|
||||
|
||||
|
||||
/// We have a fast AtomicInt
|
||||
#define HAVE_FAST_ATOMIC
|
||||
|
||||
// ----------------------------------------------------------------------------- : AtomicInt : GCC
|
||||
#elif defined(__GNUC__)
|
||||
|
||||
/// An integer which is equivalent to an AtomicInt, but which doesn't support attomic operations
|
||||
typedef unsigned int AtomicIntEquiv;
|
||||
|
||||
/// An integer that can be incremented and decremented atomicly
|
||||
class AtomicIntEquiv {
|
||||
public:
|
||||
AtomicIntEquiv(AtomicIntEquiv v) : v(v) {}
|
||||
inline operator AtomicIntEquiv() const {
|
||||
return v;
|
||||
}
|
||||
inline AtomicIntEquiv operator ++ () {
|
||||
return __sync_add_and_fetch(&v,1);
|
||||
}
|
||||
inline AtomicIntEquiv operator -- () {
|
||||
return __sync_add_and_fetch(&v,(AtomicIntEquiv)-1);
|
||||
}
|
||||
private:
|
||||
AtomicIntEquiv v;
|
||||
};
|
||||
|
||||
/// We have a fast AtomicInt
|
||||
#define HAVE_FAST_ATOMIC
|
||||
|
||||
|
||||
Reference in New Issue
Block a user