mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 18:03:56 -04:00
*** empty log message ***
This commit is contained in:
parent
da87ad16d7
commit
3a019ffeac
@ -11,6 +11,27 @@
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
|
class SortDependableFilesByName {
|
||||||
|
public:
|
||||||
|
bool operator () (PPDependableFile *a, PPDependableFile *b) const {
|
||||||
|
return a->get_filename() < b->get_filename();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: PPDependableFile::Ordering Operator
|
||||||
|
// Access: Public
|
||||||
|
// Description: We provide this function so we can sort the
|
||||||
|
// dependency list into a consistent ordering, so that
|
||||||
|
// the makefiles won't get randomly regenerated between
|
||||||
|
// different sessions.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
bool PPDependableFile::Dependency::
|
||||||
|
operator < (const Dependency &other) const {
|
||||||
|
return _file->get_filename() < other._file->get_filename();
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: PPDependableFile::Constructor
|
// Function: PPDependableFile::Constructor
|
||||||
@ -80,6 +101,7 @@ update_from_cache(const vector<string> &words) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_flags |= F_from_cache;
|
_flags |= F_from_cache;
|
||||||
|
sort(_dependencies.begin(), _dependencies.end());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -204,6 +226,24 @@ get_dependency(int n) {
|
|||||||
return _dependencies[n]._file;
|
return _dependencies[n]._file;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: PPDependableFile::get_complete_dependencies
|
||||||
|
// Access: Public
|
||||||
|
// Description: This flavor of get_complete_dependencies() works like
|
||||||
|
// the one below, except it returns the results in a
|
||||||
|
// consistently-ordered vector. This allows us to keep
|
||||||
|
// the dependencies in the same order between sessions
|
||||||
|
// and prevent makefiles from being arbitrarily
|
||||||
|
// regenerated.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
void PPDependableFile::
|
||||||
|
get_complete_dependencies(vector<PPDependableFile *> &files) {
|
||||||
|
set<PPDependableFile *> files_set;
|
||||||
|
|
||||||
|
copy(files_set.begin(), files_set.end(), back_inserter(files));
|
||||||
|
sort(files.begin(), files.end(), SortDependableFilesByName());
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: PPDependableFile::get_complete_dependencies
|
// Function: PPDependableFile::get_complete_dependencies
|
||||||
// Access: Public
|
// Access: Public
|
||||||
@ -377,6 +417,7 @@ compute_dependencies(string &circularity) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_flags = (_flags & ~F_updating) | F_updated;
|
_flags = (_flags & ~F_updating) | F_updated;
|
||||||
|
sort(_dependencies.begin(), _dependencies.end());
|
||||||
return circ;
|
return circ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,6 +39,7 @@ public:
|
|||||||
int get_num_dependencies();
|
int get_num_dependencies();
|
||||||
PPDependableFile *get_dependency(int n);
|
PPDependableFile *get_dependency(int n);
|
||||||
|
|
||||||
|
void get_complete_dependencies(vector<PPDependableFile *> &files);
|
||||||
void get_complete_dependencies(set<PPDependableFile *> &files);
|
void get_complete_dependencies(set<PPDependableFile *> &files);
|
||||||
|
|
||||||
bool is_circularity();
|
bool is_circularity();
|
||||||
@ -70,6 +71,8 @@ private:
|
|||||||
public:
|
public:
|
||||||
PPDependableFile *_file;
|
PPDependableFile *_file;
|
||||||
bool _okcircular;
|
bool _okcircular;
|
||||||
|
|
||||||
|
bool operator < (const Dependency &other) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef vector<Dependency> Dependencies;
|
typedef vector<Dependency> Dependencies;
|
||||||
|
@ -2709,10 +2709,10 @@ expand_dependencies(const string ¶ms) {
|
|||||||
PPDependableFile *file = _directory->get_dependable_file(*fi, false);
|
PPDependableFile *file = _directory->get_dependable_file(*fi, false);
|
||||||
assert(file != (PPDependableFile *)NULL);
|
assert(file != (PPDependableFile *)NULL);
|
||||||
|
|
||||||
set<PPDependableFile *> files;
|
vector<PPDependableFile *> files;
|
||||||
file->get_complete_dependencies(files);
|
file->get_complete_dependencies(files);
|
||||||
|
|
||||||
set<PPDependableFile *>::const_iterator dfi;
|
vector<PPDependableFile *>::const_iterator dfi;
|
||||||
for (dfi = files.begin(); dfi != files.end(); ++dfi) {
|
for (dfi = files.begin(); dfi != files.end(); ++dfi) {
|
||||||
PPDependableFile *df = (*dfi);
|
PPDependableFile *df = (*dfi);
|
||||||
string rel_filename =
|
string rel_filename =
|
||||||
|
Loading…
x
Reference in New Issue
Block a user