Esempio n. 1
0
 /**
  *	Get the extension to use for the given binary type
  *
  *	@param	InBinaryType		The binrary type being built
  *
  *	@return	string				The binary extenstion (ie 'exe' or 'dll')
  */
 public override string GetBinaryExtension(UEBuildBinaryType InBinaryType)
 {
     if (GetActiveArchitecture() == "-win32")
     {
         switch (InBinaryType)
         {
             case UEBuildBinaryType.DynamicLinkLibrary:
                 return ".dll";
             case UEBuildBinaryType.Executable:
                 return ".exe";
             case UEBuildBinaryType.StaticLibrary:
                 return ".lib";
         }
         return base.GetBinaryExtension(InBinaryType);
     }
     else
     {
         if (InBinaryType == UEBuildBinaryType.StaticLibrary)
         {
             return ".bc";
         }
         else
         {
             return ".js";
         }
     }
 }
Esempio n. 2
0
        bool IsBuildingDll(UEBuildBinaryType Type)
        {
            if (BuildConfiguration.bRunUnrealCodeAnalyzer)
            {
                return(false);
            }

            return(Type == UEBuildBinaryType.DynamicLinkLibrary);
        }
Esempio n. 3
0
 /// <summary>
 /// Get the extension to use for debug info for the given binary type
 /// </summary>
 /// <param name="Target">The target being built</param>
 /// <param name="InBinaryType"> The binary type being built</param>
 /// <returns>string	The debug info extension (i.e. 'pdb')</returns>
 public override string[] GetDebugInfoExtensions(ReadOnlyTargetRules Target, UEBuildBinaryType InBinaryType)
 {
     switch (InBinaryType)
     {
     case UEBuildBinaryType.DynamicLinkLibrary:
     case UEBuildBinaryType.Executable:
         return(new string[] { ".pdb" });
     }
     return(new string[] { "" });
 }
Esempio n. 4
0
 /// <summary>
 /// Get the extension to use for debug info for the given binary type
 /// </summary>
 /// <param name="InBinaryType"> The binary type being built</param>
 /// <returns>string    The debug info extension (i.e. 'pdb')</returns>
 public override string GetDebugInfoExtension(UEBuildBinaryType InBinaryType)
 {
     switch (InBinaryType)
     {
     case UEBuildBinaryType.DynamicLinkLibrary:
     case UEBuildBinaryType.Executable:
         return(".pdb");
     }
     return("");
 }
        /// <summary>
        /// Get the extensions to use for debug info for the given binary type
        /// </summary>
        /// <param name="Target">Rules for the target being built</param>
        /// <param name="InBinaryType"> The binary type being built</param>
        /// <returns>string[]    The debug info extensions (i.e. 'pdb')</returns>
        public override string[] GetDebugInfoExtensions(ReadOnlyTargetRules Target, UEBuildBinaryType InBinaryType)
        {
            switch (InBinaryType)
            {
            case UEBuildBinaryType.DynamicLinkLibrary:
            case UEBuildBinaryType.Executable:
                return(Target.bUsePDBFiles ? new string[] { ".dSYM" } : new string[] {});

            case UEBuildBinaryType.StaticLibrary:
            default:
                return(new string [] {});
            }
        }
Esempio n. 6
0
 /**
  *	Get the extension to use for the given binary type
  *
  *	@param	InBinaryType		The binary type being built
  *
  *	@return	string				The binary extension (i.e. 'exe' or 'dll')
  */
 public override string GetBinaryExtension(UEBuildBinaryType InBinaryType)
 {
     switch (InBinaryType)
     {
         case UEBuildBinaryType.DynamicLinkLibrary:
             return ".dll";
         case UEBuildBinaryType.Executable:
             return ".exe";
         case UEBuildBinaryType.StaticLibrary:
             return ".lib";
     }
     return base.GetBinaryExtension(InBinaryType);
 }
Esempio n. 7
0
        public override string GetDebugInfoExtension(UEBuildBinaryType InBinaryType)
        {
            if (BuildConfiguration.bGeneratedSYMFile)
            {
                return(".dSYM");
            }

            if (BuildConfiguration.bGeneratedSYMBundle)
            {
                return(".dSYM.zip");
            }

            return("");
        }
Esempio n. 8
0
        public override string GetDebugInfoExtension(ReadOnlyTargetRules InTarget, UEBuildBinaryType InBinaryType)
        {
            IOSProjectSettings ProjectSettings = ReadProjectSettings(InTarget.ProjectFile);

            if (ProjectSettings.bGeneratedSYMBundle)
            {
                return(".dSYM.zip");
            }
            else if (ProjectSettings.bGeneratedSYMFile)
            {
                return(".dSYM");
            }

            return("");
        }
        /// <summary>
        /// Get the extension to use for the given binary type
        /// </summary>
        /// <param name="InBinaryType"> The binary type being built</param>
        /// <returns>string    The binary extension (i.e. 'exe' or 'dll')</returns>
        public override string GetBinaryExtension(UEBuildBinaryType InBinaryType)
        {
            switch (InBinaryType)
            {
            case UEBuildBinaryType.DynamicLinkLibrary:
                return(".so");

            case UEBuildBinaryType.Executable:
                return("");

            case UEBuildBinaryType.StaticLibrary:
                return(".a");
            }
            return(base.GetBinaryExtension(InBinaryType));
        }
Esempio n. 10
0
        /// <summary>
        /// Get the extension to use for the given binary type
        /// </summary>
        /// <param name="InBinaryType"> The binary type being built</param>
        /// <returns>string    The binary extension (ie 'exe' or 'dll')</returns>
        public override string GetBinaryExtension(UEBuildBinaryType InBinaryType)
        {
            switch (InBinaryType)
            {
            case UEBuildBinaryType.DynamicLinkLibrary:
                return(".js");

            case UEBuildBinaryType.Executable:
                return(".js");

            case UEBuildBinaryType.StaticLibrary:
                return(HTML5ToolChain.libExt);
            }

            return(base.GetBinaryExtension(InBinaryType));
        }
Esempio n. 11
0
        /// <summary>
        /// Get the extension to use for the given binary type
        /// </summary>
        /// <param name="InBinaryType"> The binary type being built</param>
        /// <returns>string    The binary extension (ie 'exe' or 'dll')</returns>
        public override string GetBinaryExtension(UEBuildBinaryType InBinaryType)
        {
            if (HTML5Architecture == "-win32")
            {
                switch (InBinaryType)
                {
                case UEBuildBinaryType.DynamicLinkLibrary:
                    return(".dll");

                case UEBuildBinaryType.Executable:
                    return(".exe");

                case UEBuildBinaryType.StaticLibrary:
                    return(".lib");

                case UEBuildBinaryType.Object:
                    return(".o");

                case UEBuildBinaryType.PrecompiledHeader:
                    return(".gch");
                }
                return(base.GetBinaryExtension(InBinaryType));
            }
            else
            {
                switch (InBinaryType)
                {
                case UEBuildBinaryType.DynamicLinkLibrary:
                    return(".js");

                case UEBuildBinaryType.Executable:
                    return(".js");

                case UEBuildBinaryType.StaticLibrary:
                    return(".bc");

                case UEBuildBinaryType.Object:
                    return(".bc");

                case UEBuildBinaryType.PrecompiledHeader:
                    return(".gch");
                }

                return(base.GetBinaryExtension(InBinaryType));
            }
        }
Esempio n. 12
0
 /**
  *	Get the extension to use for the given binary type
  *
  *	@param	InBinaryType		The binary type being built
  *
  *	@return	string				The binary extension (i.e. 'exe' or 'dll')
  */
 public override string GetBinaryExtension(UEBuildBinaryType InBinaryType)
 {
     switch (InBinaryType)
     {
         case UEBuildBinaryType.DynamicLinkLibrary:
             return ".dll";
         case UEBuildBinaryType.Executable:
             return ".exe";
         case UEBuildBinaryType.StaticLibrary:
             return ".lib";
         case UEBuildBinaryType.Object:
             return ".obj";
         case UEBuildBinaryType.PrecompiledHeader:
             return ".pch";
     }
     return base.GetBinaryExtension(InBinaryType);
 }
Esempio n. 13
0
        /// <summary>
        /// Create an instance of the class with the given configuration data
        /// </summary>
        /// <param name="Type"></param>
        /// <param name="OutputFilePaths"></param>
        /// <param name="IntermediateDirectory"></param>
        /// <param name="bAllowExports"></param>
        /// <param name="PrimaryModule"></param>
        /// <param name="bUsePrecompiled"></param>
        public UEBuildBinary(
            UEBuildBinaryType Type,
            IEnumerable <FileReference> OutputFilePaths,
            DirectoryReference IntermediateDirectory,
            bool bAllowExports,
            UEBuildModuleCPP PrimaryModule,
            bool bUsePrecompiled
            )
        {
            this.Type                  = Type;
            this.OutputFilePaths       = new List <FileReference>(OutputFilePaths);
            this.IntermediateDirectory = IntermediateDirectory;
            this.bAllowExports         = bAllowExports;
            this.PrimaryModule         = PrimaryModule;
            this.bUsePrecompiled       = bUsePrecompiled;

            Modules.Add(PrimaryModule);
        }
Esempio n. 14
0
        /// <summary>
        /// Get the extension to use for debug info for the given binary type
        /// </summary>
        /// <param name="InBinaryType"> The binary type being built</param>
        /// <returns>string    The debug info extension (i.e. 'pdb')</returns>
        public override string GetDebugInfoExtension(UEBuildBinaryType InBinaryType)
        {
            if (HTML5Architecture == "-win32")
            {
                switch (InBinaryType)
                {
                case UEBuildBinaryType.DynamicLinkLibrary:
                    return(".pdb");

                case UEBuildBinaryType.Executable:
                    return(".pdb");
                }
                return("");
            }
            else
            {
                return("");
            }
        }
        public override string GetBinaryExtension(UEBuildBinaryType InBinaryType)
        {
            switch (InBinaryType)
            {
            case UEBuildBinaryType.DynamicLinkLibrary:
                return(".so");

            case UEBuildBinaryType.Executable:
                return(".so");

            case UEBuildBinaryType.StaticLibrary:
                return(".a");

            case UEBuildBinaryType.Object:
                return(".o");

            case UEBuildBinaryType.PrecompiledHeader:
                return(".gch");
            }
            return(base.GetBinaryExtension(InBinaryType));
        }
Esempio n. 16
0
        /// <summary>
        /// Get the extension to use for debug info for the given binary type
        /// </summary>
        /// <param name="InBinaryType"> The binary type being built</param>
        /// <returns>string    The debug info extension (i.e. 'pdb')</returns>
        public override string GetDebugInfoExtension(UEBuildBinaryType InBinaryType)
        {
            switch (InBinaryType)
            {
            case UEBuildBinaryType.DynamicLinkLibrary:
                return(BuildConfiguration.bUsePDBFiles ? ".dSYM" : "");

            case UEBuildBinaryType.Executable:
                return(BuildConfiguration.bUsePDBFiles ? ".dSYM" : "");

            case UEBuildBinaryType.StaticLibrary:
                return("");

            case UEBuildBinaryType.Object:
                return("");

            case UEBuildBinaryType.PrecompiledHeader:
                return("");

            default:
                return("");
            }
        }
Esempio n. 17
0
        /** Given a UBT-built binary name (e.g. "Core"), returns a relative path to the binary for the current build configuration (e.g. "../Binaries/Win64/Core-Win64-Debug.lib") */
        public static string[] MakeBinaryPaths(string ModuleName, string BinaryName, UnrealTargetPlatform Platform, 
			UnrealTargetConfiguration Configuration, UEBuildBinaryType BinaryType, TargetRules.TargetType? TargetType, PluginInfo PluginInfo, string AppName, bool bForceNameAsForDevelopment = false, string ExeBinariesSubFolder = null)
        {
            // Determine the binary extension for the platform and binary type.
            var BuildPlatform = UEBuildPlatform.GetBuildPlatform(Platform);
            string BinaryExtension = BuildPlatform.GetBinaryExtension(BinaryType);

            UnrealTargetConfiguration LocalConfig = Configuration;
            if(Configuration == UnrealTargetConfiguration.DebugGame && !String.IsNullOrEmpty(ModuleName) && !RulesCompiler.IsGameModule(ModuleName))
            {
                LocalConfig = UnrealTargetConfiguration.Development;
            }

            string ModuleBinariesSubDir = "";
            if (BinaryType == UEBuildBinaryType.DynamicLinkLibrary && (string.IsNullOrEmpty(ModuleName) == false))
            {
                // Allow for modules to specify sub-folders in the Binaries folder
                var RulesFilename = RulesCompiler.GetModuleFilename(ModuleName);
                // Plugins can be binary-only and can have no rules object
                if (PluginInfo == null || !String.IsNullOrEmpty(RulesFilename))
                {
                    ModuleRules ModuleRulesObj = RulesCompiler.CreateModuleRules(ModuleName, new TargetInfo(Platform, Configuration, TargetType), out RulesFilename);
                    if (ModuleRulesObj != null)
                    {
                        ModuleBinariesSubDir = ModuleRulesObj.BinariesSubFolder;
                    }
                }
            }
            else if ( BinaryType == UEBuildBinaryType.Executable && string.IsNullOrEmpty(ExeBinariesSubFolder) == false )
            {
                ModuleBinariesSubDir = ExeBinariesSubFolder;
            }

            //@todo.Rocket: This just happens to work since exp and lib files go into intermediate...

            // Build base directory string ("../Binaries/<Platform>/")
            string BinariesDirName;
            if(TargetType.HasValue && TargetType.Value == TargetRules.TargetType.Program && UnrealBuildTool.HasUProjectFile() && !ProjectFileGenerator.bGenerateProjectFiles)
            {
                BinariesDirName = Path.Combine( UnrealBuildTool.GetUProjectPath(), "Binaries" );
            }
            else if( PluginInfo != null )
            {
                BinariesDirName = Path.Combine( PluginInfo.Directory, "Binaries" );
            }
            else
            {
                BinariesDirName = Path.Combine( "..", "Binaries" );
            }
            var BaseDirectory = Path.Combine( BinariesDirName, Platform.ToString());
            if (ModuleBinariesSubDir.Length > 0)
            {
                BaseDirectory = Path.Combine(BaseDirectory, ModuleBinariesSubDir);
            }

            string BinarySuffix = "";
            if ((PluginInfo != null) && (BinaryType != UEBuildBinaryType.DynamicLinkLibrary))
            {
                BinarySuffix = "-Static";
            }

            // append the architecture to the end of the binary name
            BinarySuffix = BuildPlatform.ApplyArchitectureName(BinarySuffix);

            string OutBinaryPath = "";
            // Append binary file name
            string Prefix = "";
            if (Platform == UnrealTargetPlatform.Linux && (BinaryType == UEBuildBinaryType.DynamicLinkLibrary || BinaryType == UEBuildBinaryType.StaticLibrary))
            {
                Prefix = "lib";
            }
            if (LocalConfig == UnrealTargetConfiguration.Development || bForceNameAsForDevelopment)
            {
                OutBinaryPath = Path.Combine(BaseDirectory, String.Format("{3}{0}{1}{2}", BinaryName, BinarySuffix, BinaryExtension, Prefix));
            }
            else
            {
                OutBinaryPath = Path.Combine(BaseDirectory, String.Format("{5}{0}-{1}-{2}{3}{4}",
                    BinaryName, Platform.ToString(), LocalConfig.ToString(), BinarySuffix, BinaryExtension, Prefix));
            }

            return BuildPlatform.FinalizeBinaryPaths(OutBinaryPath);
        }
Esempio n. 18
0
        /// <summary>
        /// Adds a binary for the given module. Does not check whether a binary already exists, or whether a binary should be created for this build configuration.
        /// </summary>
        /// <param name="ModuleName">Name of the binary</param>
        /// <param name="BinaryType">Type of binary to be created</param>
        /// <param name="bAllowCompilation">Whether this binary can be compiled. The function will check whether plugin binaries can be compiled.</param>
        /// <param name="bIsCrossTarget">True if module is for supporting a different target-platform</param>
        /// <returns>The new binary</returns>
        private UEBuildBinaryCPP AddBinaryForModule(string ModuleName, UEBuildBinaryType BinaryType, bool bAllowCompilation, bool bIsCrossTarget)
        {
            // Get the plugin info for this module
            PluginInfo Plugin = FindPluginForModule(ModuleName);

            // Get the root output directory and base name (target name/app name) for this binary
            string BaseOutputDirectory;
            if(Plugin != null)
            {
                BaseOutputDirectory = Path.GetFullPath(Plugin.Directory);
            }
            else if(RulesCompiler.IsGameModule(ModuleName) || !bUseSharedBuildEnvironment)
            {
                BaseOutputDirectory = Path.GetFullPath(ProjectDirectory);
            }
            else
            {
                BaseOutputDirectory = Path.GetFullPath(BuildConfiguration.RelativeEnginePath);
            }

            // Get the configuration that this module will be built in. Engine modules compiled in DebugGame will use Development.
            UnrealTargetConfiguration ModuleConfiguration = Configuration;
            if(Configuration == UnrealTargetConfiguration.DebugGame && !RulesCompiler.IsGameModule(ModuleName))
            {
                ModuleConfiguration = UnrealTargetConfiguration.Development;
            }

            // Get the output and intermediate directories for this module
            string OutputDirectory = Path.Combine(BaseOutputDirectory, "Binaries", Platform.ToString());
             			string IntermediateDirectory = Path.Combine(BaseOutputDirectory, BuildConfiguration.PlatformIntermediateFolder, AppName, ModuleConfiguration.ToString());

            // Append a subdirectory if the module rules specifies one
            ModuleRules ModuleRules;
            if(RulesCompiler.TryCreateModuleRules(ModuleName, TargetInfo, out ModuleRules) && !String.IsNullOrEmpty(ModuleRules.BinariesSubFolder))
            {
                OutputDirectory = Path.Combine(OutputDirectory, ModuleRules.BinariesSubFolder);
                IntermediateDirectory = Path.Combine(IntermediateDirectory, ModuleRules.BinariesSubFolder);
            }

            // Get the output filenames
            string BaseBinaryPath = Path.Combine(OutputDirectory, MakeBinaryFileName(AppName + "-" + ModuleName, Platform, ModuleConfiguration, Rules.UndecoratedConfiguration, BinaryType));
            string[] OutputFilePaths = UEBuildPlatform.GetBuildPlatform(Platform).FinalizeBinaryPaths(BaseBinaryPath);

            // Prepare the configuration object
            UEBuildBinaryConfiguration Config = new UEBuildBinaryConfiguration(BinaryType);
            Config.OutputFilePaths = OutputFilePaths;
            Config.IntermediateDirectory = IntermediateDirectory;
            Config.bHasModuleRules = (ModuleRules != null);
            Config.bAllowExports = (BinaryType == UEBuildBinaryType.DynamicLinkLibrary);
            Config.bAllowCompilation = bAllowCompilation;
            Config.bIsCrossTarget = bIsCrossTarget;
            Config.ModuleNames.Add(ModuleName);

            // Create the new binary
            UEBuildBinaryCPP Binary = new UEBuildBinaryCPP(this, Config);
            AppBinaries.Add(Binary);
            return Binary;
        }
Esempio n. 19
0
        bool IsBuildingLibrary(UEBuildBinaryType Type)
        {
            if (BuildConfiguration.bRunUnrealCodeAnalyzer)
            {
                return false;
            }

            return Type == UEBuildBinaryType.StaticLibrary;
        }
Esempio n. 20
0
        public override string[] GetDebugInfoExtensions(ReadOnlyTargetRules InTarget, UEBuildBinaryType InBinaryType)
        {
            if (InTarget.IOSPlatform.bGeneratedSYM)
            {
                IOSProjectSettings ProjectSettings = ReadProjectSettings(InTarget.ProjectFile);

                // which format?
                if (ProjectSettings.bGeneratedSYMBundle)
                {
                    return(new string[] { ".dSYM.zip" });
                }
                else
                {
                    return(new string[] { ".dSYM" });
                }
            }

            return(new string [] {});
        }
Esempio n. 21
0
 /**
  *	Get the extension to use for debug info for the given binary type
  *	
  *	@param	InBinaryType		The binary type being built
  *	
  *	@return	string				The debug info extension (i.e. 'pdb')
  */
 public override string GetDebugInfoExtension( UEBuildBinaryType InBinaryType )
 {
     switch (InBinaryType)
     {
         case UEBuildBinaryType.DynamicLinkLibrary:
         case UEBuildBinaryType.Executable:
             return ".pdb";
     }
     return "";
 }
Esempio n. 22
0
		/// <summary>
		/// Get the extension to use for the given binary type
		/// </summary>
		/// <param name="InBinaryType"> The binary type being built</param>
		/// <returns>string    The binary extension (ie 'exe' or 'dll')</returns>
		public override string GetBinaryExtension(UEBuildBinaryType InBinaryType)
		{
			if (HTML5Architecture == "-win32")
			{
				switch (InBinaryType)
				{
					case UEBuildBinaryType.DynamicLinkLibrary:
						return ".dll";
					case UEBuildBinaryType.Executable:
						return ".exe";
					case UEBuildBinaryType.StaticLibrary:
						return ".lib";
					case UEBuildBinaryType.Object:
						return ".o";
					case UEBuildBinaryType.PrecompiledHeader:
						return ".gch";
				}
				return base.GetBinaryExtension(InBinaryType);
			}
			else
			{
				switch (InBinaryType)
				{
					case UEBuildBinaryType.DynamicLinkLibrary:
						return ".js";
					case UEBuildBinaryType.Executable:
						return ".js";
					case UEBuildBinaryType.StaticLibrary:
						return ".bc";
					case UEBuildBinaryType.Object:
						return ".bc";
					case UEBuildBinaryType.PrecompiledHeader:
						return ".gch";
				}

				return base.GetBinaryExtension(InBinaryType);
			}
		}
Esempio n. 23
0
 /** Given a UBT-built binary name (e.g. "Core"), returns a relative path to the binary for the current build configuration (e.g. "../../Binaries/Win64/Core-Win64-Debug.lib") */
 public string[] MakeBinaryPaths(string ModuleName, string BinaryName, UEBuildBinaryType BinaryType, TargetRules.TargetType? TargetType, PluginInfo PluginInfo, string AppName, bool bForceNameAsForDevelopment = false, string ExeBinariesSubFolder = null)
 {
     if (String.IsNullOrEmpty(ModuleName) && Configuration == UnrealTargetConfiguration.DebugGame && !bCompileMonolithic)
     {
         return MakeBinaryPaths(ModuleName, BinaryName, Platform, UnrealTargetConfiguration.Development, BinaryType, TargetType, PluginInfo, AppName, bForceNameAsForDevelopment);
     }
     else
     {
         return MakeBinaryPaths(ModuleName, BinaryName, Platform, Configuration, BinaryType, TargetType, PluginInfo, AppName, bForceNameAsForDevelopment, ExeBinariesSubFolder);
     }
 }
Esempio n. 24
0
        /// <summary>
        /// The configuration class for a binary build.
        /// </summary>
        /// <param name="InType"></param>
        /// <param name="InOutputFilePath"></param>
        /// <param name="bInAllowExports"></param>
        /// <param name="bInCreateImportLibrarySeparately"></param>
        /// <param name="bInIsCrossTarget">For most binaries, this is false. If this is a cross-platform binary build for a specific platform (for example XB1 DLL for a windows editor) this will be true.</param>
        /// <param name="InProjectFilePath"></param>
        /// <param name="InModuleNames"></param>
        public UEBuildBinaryConfiguration(
				UEBuildBinaryType InType,
				string InOutputFilePath = null,
				string InIntermediateDirectory = null,
				bool bInAllowExports = false,
				bool bInCreateImportLibrarySeparately = false,
				bool bInIncludeDependentLibrariesInLibrary = false,
				bool bInAllowCompilation = true,
                bool bInIsCrossTarget = false,
                bool bInCompileMonolithic = false,
				UnrealTargetConfiguration InTargetConfiguration = UnrealTargetConfiguration.Development,
				string InTargetName = "",
				string InProjectFilePath = "",
				List<string> InModuleNames = null
			)
        {
            Type = InType;
            OutputFilePath = InOutputFilePath;
            IntermediateDirectory = InIntermediateDirectory;
            bAllowExports = bInAllowExports;
            bCreateImportLibrarySeparately = bInCreateImportLibrarySeparately;
            bIncludeDependentLibrariesInLibrary = bInIncludeDependentLibrariesInLibrary;
            bAllowCompilation = bInAllowCompilation;
            bIsCrossTarget = bInIsCrossTarget;
            bCompileMonolithic = bInCompileMonolithic;
            TargetConfiguration = InTargetConfiguration;
            TargetName = InTargetName;
            ProjectFilePath = InProjectFilePath;
            ModuleNames = InModuleNames;
        }
Esempio n. 25
0
        // UEBuildBinary interface.

        bool IsBuildingDll(UEBuildBinaryType Type)
        {
            return(Type == UEBuildBinaryType.DynamicLinkLibrary);
        }
		/// <summary>
		/// The configuration class for a binary build.
		/// </summary>
		/// <param name="InType"></param>
		/// <param name="InOutputFilePath"></param>
		/// <param name="bInAllowExports"></param>
		/// <param name="bInCreateImportLibrarySeparately"></param>
		/// <param name="bInIsCrossTarget">For most binaries, this is false. If this is a cross-platform binary build for a specific platform (for example XB1 DLL for a windows editor) this will be true.</param>
		/// <param name="InProjectFilePath"></param>
		/// <param name="InModuleNames"></param>
		public UEBuildBinaryConfiguration(
				UEBuildBinaryType InType,
				IEnumerable<FileReference> InOutputFilePaths = null,
				DirectoryReference InIntermediateDirectory = null,
				bool bInAllowExports = false,
				bool bInCreateImportLibrarySeparately = false,
				bool bInIncludeDependentLibrariesInLibrary = false,
				bool bInAllowCompilation = true,
				bool bInHasModuleRules = true,
				bool bInIsCrossTarget = false,
				FileReference InProjectFilePath = null,
				IEnumerable<string> InModuleNames = null
			)
		{
			Type = InType;
			if (InOutputFilePaths != null)
			{
				OutputFilePaths.AddRange(InOutputFilePaths);
			}
			IntermediateDirectory = InIntermediateDirectory;
			bAllowExports = bInAllowExports;
			bCreateImportLibrarySeparately = bInCreateImportLibrarySeparately;
			bIncludeDependentLibrariesInLibrary = bInIncludeDependentLibrariesInLibrary;
			bAllowCompilation = bInAllowCompilation;
			bHasModuleRules = bInHasModuleRules;
			bIsCrossTarget = bInIsCrossTarget;
			ProjectFilePath = InProjectFilePath;
			if (InModuleNames != null)
			{
				ModuleNames.AddRange(InModuleNames);
			}
		}
Esempio n. 27
0
 /// <summary>
 /// Get the extension to use for debug info for the given binary type
 /// </summary>
 /// <param name="InTarget">Options for the target being built</param>
 /// <param name="InBinaryType"> The binary type being built</param>
 /// <returns>string    The debug info extension (i.e. 'pdb')</returns>
 public virtual string GetDebugInfoExtension(ReadOnlyTargetRules InTarget, UEBuildBinaryType InBinaryType)
 {
     throw new BuildException("GetDebugInfoExtension for {0} not handled in {1}", InBinaryType.ToString(), this.ToString());
 }
Esempio n. 28
0
 /// <summary>
 /// Get the extension to use for the given binary type
 /// </summary>
 /// <param name="InBinaryType"> The binary type being built</param>
 /// <returns>string    The binary extension (i.e. 'exe' or 'dll')</returns>
 public virtual string GetBinaryExtension(UEBuildBinaryType InBinaryType)
 {
     throw new BuildException("GetBinaryExtensiton for {0} not handled in {1}", InBinaryType.ToString(), this.ToString());
 }
Esempio n. 29
0
 /**
  *	Get the extension to use for debug info for the given binary type
  *
  *	@param	InBinaryType		The binary type being built
  *
  *	@return	string				The debug info extension (i.e. 'pdb')
  */
 public virtual string GetDebugInfoExtension(UEBuildBinaryType InBinaryType)
 {
     throw new BuildException("GetDebugInfoExtension for {0} not handled in {1}", InBinaryType.ToString(), this.ToString());
 }
Esempio n. 30
0
 public override string GetDebugInfoExtension(UEBuildBinaryType InBinaryType)
 {
     return(BuildConfiguration.bGeneratedSYMFile ? ".dSYM" : "");
 }
Esempio n. 31
0
 /// <summary>
 /// Get the extension to use for debug info for the given binary type
 /// </summary>
 /// <param name="InTarget">Rules for the target being built</param>
 /// <param name="InBinaryType"> The binary type being built</param>
 /// <returns>string    The debug info extension (i.e. 'pdb')</returns>
 public override string GetDebugInfoExtension(ReadOnlyTargetRules InTarget, UEBuildBinaryType InBinaryType)
 {
     return("");
 }
Esempio n. 32
0
        /// <summary>
        /// Makes a filename (without path) for a compiled binary (e.g. "Core-Win64-Debug.lib") */
        /// </summary>
        /// <param name="BinaryName">The name of this binary</param>
        /// <param name="Platform">The platform being built for</param>
        /// <param name="Configuration">The configuration being built</param>
        /// <param name="UndecoratedConfiguration">The target configuration which doesn't require a platform and configuration suffix. Development by default.</param>
        /// <param name="BinaryType">Type of binary</param>
        /// <returns>Name of the binary</returns>
        public static string MakeBinaryFileName(string BinaryName, UnrealTargetPlatform Platform, UnrealTargetConfiguration Configuration, UnrealTargetConfiguration UndecoratedConfiguration, UEBuildBinaryType BinaryType)
        {
            StringBuilder Result = new StringBuilder();

            if (Platform == UnrealTargetPlatform.Linux && (BinaryType == UEBuildBinaryType.DynamicLinkLibrary || BinaryType == UEBuildBinaryType.StaticLibrary))
            {
                Result.Append("lib");
            }

            Result.Append(BinaryName);

            if(Configuration != UndecoratedConfiguration)
            {
                Result.AppendFormat("-{0}-{1}", Platform.ToString(), Configuration.ToString());
            }

            IUEBuildPlatform BuildPlatform = UEBuildPlatform.GetBuildPlatform(Platform);
            Result.Append(BuildPlatform.ApplyArchitectureName(""));

            if (BuildConfiguration.bRunUnrealCodeAnalyzer)
            {
                Result.AppendFormat("-{0}.analysis", BuildConfiguration.UCAModuleToAnalyze);
            }
            else
            {
                Result.Append(BuildPlatform.GetBinaryExtension(BinaryType));
            }

            return Result.ToString();
        }
Esempio n. 33
0
 /**
  *	Get the extension to use for debug info for the given binary type
  *
  *	@param	InBinaryType		The binary type being built
  *
  *	@return	string				The debug info extension (i.e. 'pdb')
  */
 public override string GetDebugInfoExtension(UEBuildBinaryType InBinaryType)
 {
     return ".pdb";
 }
Esempio n. 34
0
 /// <summary>
 /// Get the extensions to use for debug info for the given binary type
 /// </summary>
 /// <param name="InTarget">Rules for the target being built</param>
 /// <param name="InBinaryType"> The binary type being built</param>
 /// <returns>string[]    The debug info extensions (i.e. 'pdb')</returns>
 public override string[] GetDebugInfoExtensions(ReadOnlyTargetRules InTarget, UEBuildBinaryType InBinaryType)
 {
     switch (InBinaryType)
     {
     case UEBuildBinaryType.DynamicLinkLibrary:
     case UEBuildBinaryType.Executable:
         if (InTarget.LinuxPlatform.bPreservePSYM)
         {
             return(new string[] { ".psym", ".sym", ".debug" });
         }
         else
         {
             return(new string[] { ".sym", ".debug" });
         }
     }
     return(new string [] {});
 }
Esempio n. 35
0
        /**
         *	Get the extension to use for the given binary type
         *	
         *	@param	InBinaryType		The binrary type being built
         *	
         *	@return	string				The binary extenstion (ie 'exe' or 'dll')
         */
        public override string GetBinaryExtension(UEBuildBinaryType InBinaryType)
        {
            switch (InBinaryType)
            {
                case UEBuildBinaryType.DynamicLinkLibrary: 
                    return ".dll";
                case UEBuildBinaryType.Executable:
                    return ".exe";
                case UEBuildBinaryType.StaticLibrary:
                    return ".lib";
                case UEBuildBinaryType.Object:
					if (!BuildConfiguration.bRunUnrealCodeAnalyzer)
					{
						return ".obj";
					}
					else
					{
						return @".includes";
					}
                case UEBuildBinaryType.PrecompiledHeader:
                    return ".pch";
            }
            return base.GetBinaryExtension(InBinaryType);
        }
Esempio n. 36
0
		/**
		 *	Get the extension to use for debug info for the given binary type
		 *	
		 *	@param	InBinaryType		The binary type being built
		 *	
		 *	@return	string				The debug info extension (i.e. 'pdb')
		 */
		public override string GetDebugInfoExtension(UEBuildBinaryType InBinaryType)
		{
			switch (InBinaryType)
			{
				case UEBuildBinaryType.DynamicLinkLibrary:
					return BuildConfiguration.bGeneratedSYMFile || BuildConfiguration.bUsePDBFiles ? ".dsym" : "";
				case UEBuildBinaryType.Executable:
					return BuildConfiguration.bGeneratedSYMFile || BuildConfiguration.bUsePDBFiles ? ".dsym" : "";
				case UEBuildBinaryType.StaticLibrary:
					return "";
				case UEBuildBinaryType.Object:
					return "";
				case UEBuildBinaryType.PrecompiledHeader:
					return "";
				default:
					return "";
			}
		}
Esempio n. 37
0
 /**
  *	Get the extension to use for debug info for the given binary type
  *
  *	@param	InBinaryType		The binary type being built
  *
  *	@return	string				The debug info extension (i.e. 'pdb')
  */
 public override string GetDebugInfoExtension(UEBuildBinaryType InBinaryType)
 {
     return(".pdb");
 }
Esempio n. 38
0
        /// <summary>
        /// The configuration class for a binary build.
        /// </summary>
        /// <param name="InType"></param>
        /// <param name="InOutputFilePath"></param>
        /// <param name="bInAllowExports"></param>
        /// <param name="bInCreateImportLibrarySeparately"></param>
        /// <param name="bInIsCrossTarget">For most binaries, this is false. If this is a cross-platform binary build for a specific platform (for example XB1 DLL for a windows editor) this will be true.</param>
        /// <param name="InProjectFilePath"></param>
        /// <param name="InModuleNames"></param>
        public UEBuildBinaryConfiguration(
				UEBuildBinaryType InType,
				string[] InOutputFilePaths = null,
				string InIntermediateDirectory = null,
				bool bInAllowExports = false,
				bool bInCreateImportLibrarySeparately = false,
				bool bInIncludeDependentLibrariesInLibrary = false,
				bool bInAllowCompilation = true,
				bool bInHasModuleRules = true,
                bool bInIsCrossTarget = false,
				string InProjectFilePath = "",
				List<string> InModuleNames = null
			)
        {
            Type = InType;
            OutputFilePaths = InOutputFilePaths != null ? (string[])InOutputFilePaths.Clone() : null;
            IntermediateDirectory = InIntermediateDirectory;
            bAllowExports = bInAllowExports;
            bCreateImportLibrarySeparately = bInCreateImportLibrarySeparately;
            bIncludeDependentLibrariesInLibrary = bInIncludeDependentLibrariesInLibrary;
            bAllowCompilation = bInAllowCompilation;
            bHasModuleRules = bInHasModuleRules;
            bIsCrossTarget = bInIsCrossTarget;
            ProjectFilePath = InProjectFilePath;
            if(InModuleNames != null)
            {
                ModuleNames.AddRange(InModuleNames);
            }
        }
Esempio n. 39
0
 public override string GetDebugInfoExtension(UEBuildBinaryType InBinaryType)
 {
     return BuildConfiguration.bGeneratedSYMFile ? ".dSYM" : "";
 }
Esempio n. 40
0
		public override string GetDebugInfoExtension(UEBuildBinaryType InBinaryType)
		{
			if(BuildConfiguration.bGeneratedSYMFile)
			{
				return ".dSYM";
			}

			if(BuildConfiguration.bGeneratedSYMBundle)
			{
				return ".dSYM.zip";
			}

			return "";
		}
Esempio n. 41
0
 bool IsBuildingLibrary(UEBuildBinaryType Type)
 {
     return(Type == UEBuildBinaryType.StaticLibrary);
 }
Esempio n. 42
0
 /**
  *	Get the extension to use for debug info for the given binary type
  *
  *	@param	InBinaryType		The binary type being built
  *
  *	@return	string				The debug info extension (i.e. 'pdb')
  */
 public override string GetDebugInfoExtension(UEBuildBinaryType InBinaryType)
 {
     if (GetActiveArchitecture() == "-win32")
     {
         switch (InBinaryType)
         {
             case UEBuildBinaryType.DynamicLinkLibrary:
                 return ".pdb";
             case UEBuildBinaryType.Executable:
                 return ".pdb";
         }
         return "";
     }
     else
     {
         return "";
     }
 }
 public override string[] GetDebugInfoExtensions(ReadOnlyTargetRules InTarget, UEBuildBinaryType InBinaryType)
 {
     return(new string [] {});
 }
Esempio n. 44
0
        public static string GetPluginSubfolderName(UEBuildBinaryType InBinaryType, string InTargetName)
        {
            string SubFolderName = Path.Combine("Dynamic", InTargetName);
            if (InBinaryType != UEBuildBinaryType.DynamicLinkLibrary)
            {
                SubFolderName = Path.Combine("Static", InTargetName);
            }

            return SubFolderName;
        }