diff options
author | Sebastian Holtermann <sebholt@xwmw.org> | 2019-07-04 09:22:20 (GMT) |
---|---|---|
committer | Sebastian Holtermann <sebholt@xwmw.org> | 2019-07-04 11:46:15 (GMT) |
commit | e50fa44a351cb4ea10267f98868d5a54efaa1a1d (patch) | |
tree | 75fd6fa134805302440858dd08cd98946c1d7ef0 /Source/cmake.h | |
parent | 8214ad442fd7dabf8d8aafa8a50ccb99e5b28b8d (diff) | |
download | CMake-e50fa44a351cb4ea10267f98868d5a54efaa1a1d.zip CMake-e50fa44a351cb4ea10267f98868d5a54efaa1a1d.tar.gz CMake-e50fa44a351cb4ea10267f98868d5a54efaa1a1d.tar.bz2 |
cmake: Refactor file extension list setup
Refactor the file extention list setup in cmake.h/cxx and add file extensions
lists for Cuda and Fortran.
Diffstat (limited to 'Source/cmake.h')
-rw-r--r-- | Source/cmake.h | 49 |
1 files changed, 39 insertions, 10 deletions
diff --git a/Source/cmake.h b/Source/cmake.h index e14a081..c03872b 100644 --- a/Source/cmake.h +++ b/Source/cmake.h @@ -121,6 +121,17 @@ public: bool isAlias; }; + struct FileExtensions + { + bool Test(std::string const& ext) const + { + return (this->unordered.find(ext) != this->unordered.end()); + } + + std::vector<std::string> ordered; + std::unordered_set<std::string> unordered; + }; + typedef std::map<std::string, cmInstalledFile> InstalledFilesMap; static const int NO_BUILD_PARALLEL_LEVEL = -1; @@ -233,24 +244,42 @@ public: const std::vector<std::string>& GetSourceExtensions() const { - return this->SourceFileExtensions; + return this->SourceFileExtensions.ordered; } bool IsSourceExtension(const std::string& ext) const { - return this->SourceFileExtensionsSet.find(ext) != - this->SourceFileExtensionsSet.end(); + return this->SourceFileExtensions.Test(ext); } const std::vector<std::string>& GetHeaderExtensions() const { - return this->HeaderFileExtensions; + return this->HeaderFileExtensions.ordered; } bool IsHeaderExtension(const std::string& ext) const { - return this->HeaderFileExtensionsSet.find(ext) != - this->HeaderFileExtensionsSet.end(); + return this->HeaderFileExtensions.Test(ext); + } + + const std::vector<std::string>& GetCudaExtensions() const + { + return this->CudaFileExtensions.ordered; + } + + bool IsCudaExtension(const std::string& ext) const + { + return this->CudaFileExtensions.Test(ext); + } + + const std::vector<std::string>& GetFortranExtensions() const + { + return this->FortranFileExtensions.ordered; + } + + bool IsFortranExtension(const std::string& ext) const + { + return this->FortranFileExtensions.Test(ext); } // Strips the extension (if present and known) from a filename @@ -531,10 +560,10 @@ private: std::string CheckStampList; std::string VSSolutionFile; std::string EnvironmentGenerator; - std::vector<std::string> SourceFileExtensions; - std::unordered_set<std::string> SourceFileExtensionsSet; - std::vector<std::string> HeaderFileExtensions; - std::unordered_set<std::string> HeaderFileExtensionsSet; + FileExtensions SourceFileExtensions; + FileExtensions HeaderFileExtensions; + FileExtensions CudaFileExtensions; + FileExtensions FortranFileExtensions; bool ClearBuildSystem; bool DebugTryCompile; std::unique_ptr<cmFileTimeCache> FileTimeCache; |