예제 #1
0
        public void PostInit(TargetRules r)
        {
            PreProcessorDefines.Add(ModuleName.ToUpper() + "_EXPORT");
            if (ModuleOutputType == ModuleType.LIB)
            {
                PreProcessorDefines.Add("STATIC_MODULE");
            }
            foreach (string t in r.GlobalDefines)
            {
                PreProcessorDefines.Add(t);
            }
            string path = "//Intermediate//Generated//" + ModuleName + "//";

            IncludeDirectories.Add(path);
            IncludeDirectories.Add("//Source//" + ModuleName + "//");
            IncludeDirectories.Add("//Source//" + SourceFileSearchDir + "//");
            foreach (ExternalModuleDef EMD in ExternalModules)
            {
                EMD.Build();

                IncludeDirectories.Add(ModuleDefManager.GetThirdPartyDirRelative() + EMD.IncludeDir);
                DLLs.AddRange(EMD.DynamaicLibs);
                LibNameRefs.AddRange(EMD.StaticLibs);
                AdditonalLibSearchPaths.AddRange(EMD.LibrarySearchPaths);
                SystemLibNames.AddRange(EMD.SystemLibNames);
            }
            foreach (string s in SystemLibNames)
            {
                LibRef L = new LibRef();
                L.Path      = s;
                L.BuildCFg  = LibBuildConfig.General;
                L.BuildType = Library.BCToString(LibBuildConfig.General);
                ModuleLibs.Add(L);
            }
            foreach (LibDependency l in StaticLibraries)
            {
                if (l.NeedsDll)
                {
                    LibNameRef lref;
                    lref.Config  = LibBuildConfig.General;
                    lref.IsDLL   = true;
                    lref.LibName = l.LibName.Replace(".lib", ".dll");
                    DLLs.Add(lref);
                }
            }
        }