Merge trunk HEAD (r46369)
[reactos.git] / reactos / tools / rbuild / backend / mingw / mingw.h
index 2c7e23b..e73973f 100644 (file)
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
-#ifndef MINGW_H
-#define MINGW_H
+
+#pragma once
 
 #include "../backend.h"
 
@@ -45,10 +45,12 @@ public:
        std::string AddDirectoryTarget ( const std::string& directory,
                                         Directory* directoryTree );
        const Module& GetAliasedModuleOrModule ( const Module& module ) const;
+       bool compilerNeedsHelper;
        std::string compilerPrefix;
        std::string compilerCommand;
        std::string nasmCommand;
        std::string binutilsPrefix;
+       bool binutilsNeedsHelper;
        std::string binutilsCommand;
        bool usePipe, manualBinutilsSetting;
        Directory* intermediateDirectory;
@@ -62,15 +64,9 @@ private:
        void CreateMakefile ();
        void CloseMakefile () const;
        void GenerateHeader () const;
-       void GenerateProjectCFlagsMacro ( const char* assignmentOperation,
-                                         const IfableData& data ) const;
-       void GenerateGlobalCFlagsAndProperties ( const char* op,
-                                                const IfableData& data ) const;
-       void GenerateProjectGccOptionsMacro ( const char* assignmentOperation,
-                                             IfableData& data ) const;
-       void GenerateProjectGccOptions ( const char* assignmentOperation,
-                                        IfableData& data ) const;
-       std::string GenerateProjectLFLAGS () const;
+       void GenerateGlobalProperties ( const char* assignmentOperation,
+                                                                         const IfableData& data ) const;
+       std::string GenerateProjectLDFLAGS () const;
        void GenerateDirectories ();
        void GenerateGlobalVariables () const;
        bool IncludeInAllTarget ( const Module& module ) const;
@@ -121,6 +117,9 @@ private:
        void GenerateDirectoryTargets ();
        FILE* fMakefile;
        bool use_pch;
+       bool DetectMicrosoftCompiler ( std::string& version, std::string& path );
+       bool DetectMicrosoftLinker ( std::string& version, std::string& path );
+       void GenerateInstallerFileList();
 };
 
 
@@ -142,7 +141,7 @@ private:
        const Project& project;
 };
 
-typedef struct ModuleHandlerInformations
+struct ModuleHandlerInformations
 {
        HostType DefaultHost;
        const char* cflags;
@@ -151,5 +150,3 @@ typedef struct ModuleHandlerInformations
 };
 
 extern const struct ModuleHandlerInformations ModuleHandlerInformations[];
-
-#endif /* MINGW_H */