Refactor module definition file selection

Create a `ModuleDefinitionInfo` structure for each configuration of a
target to hold corresponding information about the selected module
definition file (`.def` source).
This commit is contained in:
Brad King
2017-03-09 15:28:14 -05:00
parent 1e0a9ac45d
commit 25d261efa7
9 changed files with 64 additions and 39 deletions

View File

@@ -235,7 +235,12 @@ public:
cmLocalGenerator* LocalGenerator;
cmGlobalGenerator const* GlobalGenerator;
cmSourceFile const* GetModuleDefinitionFile(const std::string& config) const;
struct ModuleDefinitionInfo
{
std::string DefFile;
};
ModuleDefinitionInfo const* GetModuleDefinitionInfo(
std::string const& config) const;
/** Return whether or not the target is for a DLL platform. */
bool IsDLLPlatform() const;
@@ -723,6 +728,12 @@ private:
typedef std::map<std::string, OutputInfo> OutputInfoMapType;
mutable OutputInfoMapType OutputInfoMap;
typedef std::map<std::string, ModuleDefinitionInfo>
ModuleDefinitionInfoMapType;
mutable ModuleDefinitionInfoMapType ModuleDefinitionInfoMap;
void ComputeModuleDefinitionInfo(std::string const& config,
ModuleDefinitionInfo& info) const;
typedef std::pair<std::string, bool> OutputNameKey;
typedef std::map<OutputNameKey, std::string> OutputNameMapType;
mutable OutputNameMapType OutputNameMap;