123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #ifndef cmSourceFileLocation_h
- #define cmSourceFileLocation_h
- #include "cmConfigure.h"
- #include <string>
- #include "cmSourceFileLocationKind.h"
- class cmMakefile;
- class cmSourceFileLocation
- {
- public:
-
- cmSourceFileLocation(
- cmMakefile const* mf, const std::string& name,
- cmSourceFileLocationKind kind = cmSourceFileLocationKind::Ambiguous);
- cmSourceFileLocation();
- cmSourceFileLocation(const cmSourceFileLocation& loc);
-
- bool Matches(cmSourceFileLocation const& loc);
-
- void DirectoryUseSource();
-
- void DirectoryUseBinary();
-
- bool DirectoryIsAmbiguous() const { return this->AmbiguousDirectory; }
-
- bool ExtensionIsAmbiguous() const { return this->AmbiguousExtension; }
-
- const std::string& GetDirectory() const { return this->Directory; }
-
- const std::string& GetName() const { return this->Name; }
-
- cmMakefile const* GetMakefile() const { return this->Makefile; }
- private:
- cmMakefile const* const Makefile;
- bool AmbiguousDirectory;
- bool AmbiguousExtension;
- std::string Directory;
- std::string Name;
- bool MatchesAmbiguousExtension(cmSourceFileLocation const& loc) const;
-
- void Update(cmSourceFileLocation const& loc);
- void UpdateExtension(const std::string& name);
- cmSourceFileLocation& operator=(const cmSourceFileLocation& loc) = delete;
- };
- #endif
|