Example #1
0
    public static void ExpandDynamicVariables(this ConfigFile config, Logger logger, CppModule module)
    {
        // Load all defines and store them in the config file to allow dynamic variable substitution
        foreach (var cppInclude in module.Includes)
        {
            foreach (var cppDefine in cppInclude.Macros)
            {
                config.DynamicVariables[cppDefine.Name] = cppDefine.Value;
            }
        }

        // Expand all variables with all dynamic variables
        config.ExpandVariables(true, logger);
    }
Example #2
0
        public void DynamicVariablesSubstitutedWhenExpandIsTrue()
        {
            var config = new ConfigFile
            {
                IncludeDirs =
                {
                    new IncludeDirRule("#(TEST_VARIABLE)")
                }
            };

            config.DynamicVariables.Add("TEST_VARIABLE", "Hello World!");

            config.ExpandVariables(true, Logger);

            Assert.Equal("Hello World!", config.IncludeDirs[0].Path);
        }
Example #3
0
        public void VariableSubstitutionSubstitutesVariableValues()
        {
            var config = new ConfigFile
            {
                IncludeDirs =
                {
                    new IncludeDirRule("$(TEST_VARIABLE)")
                }
            };

            config.Variables.Add(new KeyValue("TEST_VARIABLE", "Hello World!"));

            config.ExpandVariables(false, Logger);

            Assert.Equal("Hello World!", config.IncludeDirs[0].Path);
        }