Orb/Doxygen/tmake/lib/win32-msvc/generic.t
changeset 0 42188c7ea2d9
equal deleted inserted replaced
-1:000000000000 0:42188c7ea2d9
       
     1 #!
       
     2 #! This is a tmake template for building Win32 applications or libraries.
       
     3 #!
       
     4 #${
       
     5     if ( Config("qt") ) {
       
     6 	if ( !(Project("DEFINES") =~ /QT_NODLL/) &&
       
     7 	     ((Project("DEFINES") =~ /QT_(?:MAKE)?DLL/) ||
       
     8 	      ($ENV{"QT_DLL"} && !$ENV{"QT_NODLL"})) ) {
       
     9 	    Project('TMAKE_QT_DLL = 1');
       
    10 	    if ( (Project("TARGET") eq "qt") && Project("TMAKE_LIB_FLAG") ) {
       
    11 		Project('CONFIG += dll');
       
    12 	    }
       
    13 	}
       
    14     }
       
    15     if ( Config("dll") || Project("TMAKE_APP_FLAG") ) {
       
    16 	Project('CONFIG -= staticlib');
       
    17 	Project('TMAKE_APP_OR_DLL = 1');
       
    18     } else {
       
    19 	Project('CONFIG += staticlib');
       
    20     }
       
    21     if ( Config("warn_off") ) {
       
    22 	Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_WARN_OFF');
       
    23 	Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_WARN_OFF');
       
    24     } elsif ( Config("warn_on") ) {
       
    25 	Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_WARN_ON');
       
    26 	Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_WARN_ON');
       
    27     }
       
    28     if ( Config("debug") ) {
       
    29 	Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_DEBUG');
       
    30 	Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_DEBUG');
       
    31 	Project('TMAKE_LFLAGS += $$TMAKE_LFLAGS_DEBUG');
       
    32     } elsif ( Config("release") ) {
       
    33 	Project('TMAKE_CFLAGS += $$TMAKE_CFLAGS_RELEASE');
       
    34 	Project('TMAKE_CXXFLAGS += $$TMAKE_CXXFLAGS_RELEASE');
       
    35 	Project('TMAKE_LFLAGS += $$TMAKE_LFLAGS_RELEASE');
       
    36     }
       
    37     if ( Config("qt") || Config("opengl") ) {
       
    38 	Project('CONFIG += windows' );
       
    39     }
       
    40     if ( Config("qt") ) {
       
    41 	Project('CONFIG *= moc');
       
    42 	AddIncludePath(Project("TMAKE_INCDIR_QT"));
       
    43 	if ( Config("release") ) {
       
    44 	    Project('DEFINES += NO_DEBUG');
       
    45 	}
       
    46 	if ( Config("opengl") ) {
       
    47 	    Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT_OPENGL');
       
    48 	}
       
    49 	if ( (Project("TARGET") eq "qt") && Project("TMAKE_LIB_FLAG") ) {
       
    50 	    if ( Project("TMAKE_QT_DLL") ) {
       
    51 		Project('DEFINES -= QT_DLL');
       
    52 		Project('DEFINES *= QT_MAKEDLL');
       
    53 		Project('TMAKE_LFLAGS += $$TMAKE_LFLAGS_QT_DLL');
       
    54 	    }
       
    55 	} else {
       
    56 	    if ( Project("TMAKE_QT_DLL") ) {
       
    57 		Project('DEFINES *= QT_DLL');
       
    58 	    }
       
    59 	    Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT');
       
    60 	    if ( Project("TMAKE_QT_DLL") ) {
       
    61 		my $qtver =FindHighestLibVersion($ENV{"QTDIR"} . "/lib", "qt");
       
    62 		Project("TMAKE_LIBS /= s/qt.lib/qt${qtver}.lib/");
       
    63 		if ( !Config("dll") ) {
       
    64 		    Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT_DLL');
       
    65 		}
       
    66 	    }
       
    67 	}
       
    68     }
       
    69     if ( Config("opengl") ) {
       
    70 	Project('TMAKE_LIBS *= $$TMAKE_LIBS_OPENGL');
       
    71     }
       
    72     if ( Config("dll") ) {
       
    73 	Project('TMAKE_LFLAGS_CONSOLE_ANY = $$TMAKE_LFLAGS_CONSOLE_DLL');
       
    74 	Project('TMAKE_LFLAGS_WINDOWS_ANY = $$TMAKE_LFLAGS_WINDOWS_DLL');
       
    75 	if ( Project("TMAKE_LIB_FLAG") ) {
       
    76 	    my $ver = Project("VERSION");
       
    77 	    $ver =~ s/\.//g;
       
    78 	    $project{"TARGET_EXT"} = "${ver}.dll";
       
    79 	} else {
       
    80 	    $project{"TARGET_EXT"} = ".dll";
       
    81 	}
       
    82     } else {
       
    83 	Project('TMAKE_LFLAGS_CONSOLE_ANY = $$TMAKE_LFLAGS_CONSOLE');
       
    84 	Project('TMAKE_LFLAGS_WINDOWS_ANY = $$TMAKE_LFLAGS_WINDOWS');
       
    85 	if ( Project("TMAKE_APP_FLAG") ) {
       
    86 	    $project{"TARGET_EXT"} = ".exe";
       
    87 	} else {
       
    88 	    $project{"TARGET_EXT"} = ".lib";
       
    89 	}
       
    90     }
       
    91     if ( Config("windows") ) {
       
    92 	if ( Config("console") ) {
       
    93 	    Project('TMAKE_LFLAGS *= $$TMAKE_LFLAGS_CONSOLE_ANY');
       
    94 	    Project('TMAKE_LIBS   *= $$TMAKE_LIBS_CONSOLE');
       
    95 	} else {
       
    96 	    Project('TMAKE_LFLAGS *= $$TMAKE_LFLAGS_WINDOWS_ANY');
       
    97 	}
       
    98 	Project('TMAKE_LIBS   *= $$TMAKE_LIBS_WINDOWS');
       
    99     } else {
       
   100 	Project('TMAKE_LFLAGS *= $$TMAKE_LFLAGS_CONSOLE_ANY');
       
   101 	Project('TMAKE_LIBS   *= $$TMAKE_LIBS_CONSOLE');
       
   102     }
       
   103     if ( Config("moc") ) {
       
   104 	$moc_aware = 1;
       
   105     }
       
   106     Project('TMAKE_LIBS += $$LIBS');
       
   107     Project('TMAKE_FILETAGS = HEADERS SOURCES DEF_FILE RC_FILE TARGET TMAKE_LIBS DESTDIR DLLDESTDIR $$FILETAGS');
       
   108     foreach ( split(/\s/,Project("TMAKE_FILETAGS")) ) {
       
   109 	$project{$_} =~ s-[/\\]+-\\-g;
       
   110     }
       
   111     if ( Project("DEF_FILE") ) {
       
   112 	Project('TMAKE_LFLAGS *= /DEF:$$DEF_FILE');
       
   113     }
       
   114     if ( Project("RC_FILE") ) {
       
   115 	if ( Project("RES_FILE") ) {
       
   116 	    tmake_error("Both .rc and .res file specified.\n" .
       
   117 			"Please specify one of them, not both.");
       
   118 	}
       
   119 	$project{"RES_FILE"} = $project{"RC_FILE"};
       
   120 	$project{"RES_FILE"} =~ s/\.rc$/.res/i;
       
   121 	Project('TARGETDEPS += $$RES_FILE');
       
   122     }
       
   123     if ( Project("RES_FILE") ) {
       
   124 	Project('TMAKE_LIBS *= $$RES_FILE');
       
   125     }
       
   126     StdInit();
       
   127     if ( Project("VERSION") ) {
       
   128 	$project{"VER_MAJ"} = $project{"VERSION"};
       
   129 	$project{"VER_MAJ"} =~ s/\.\d+$//;
       
   130 	$project{"VER_MIN"} = $project{"VERSION"};
       
   131 	$project{"VER_MIN"} =~ s/^\d+\.//;
       
   132     }
       
   133     Project('debug:TMAKE_CLEAN += $$TARGET.pdb vc*.pdb $$TARGET.ilk');
       
   134 #$}
       
   135 #!
       
   136 # Makefile for building #$ Expand("TARGET")
       
   137 # Generated by tmake at #$ Now();
       
   138 #     Project: #$ Expand("PROJECT");
       
   139 #    Template: #$ Expand("TEMPLATE");
       
   140 #############################################################################
       
   141 
       
   142 ####### Compiler, tools and options
       
   143 
       
   144 CC	=	#$ Expand("TMAKE_CC");
       
   145 CXX	=	#$ Expand("TMAKE_CXX");
       
   146 CFLAGS	=	#$ Expand("TMAKE_CFLAGS"); ExpandGlue("DEFINES","-D"," -D","");
       
   147 CXXFLAGS=	#$ Expand("TMAKE_CXXFLAGS"); ExpandGlue("DEFINES","-D"," -D","");
       
   148 INCPATH	=	#$ ExpandPath("INCPATH",'-I',' -I','');
       
   149 #$ !Project("TMAKE_APP_OR_DLL") && DisableOutput();
       
   150 LINK	=	#$ Expand("TMAKE_LINK");
       
   151 LFLAGS	=	#$ Expand("TMAKE_LFLAGS");
       
   152 LIBS	=	#$ Expand("TMAKE_LIBS");
       
   153 #$ !Project("TMAKE_APP_OR_DLL") && EnableOutput();
       
   154 #$ Project("TMAKE_APP_OR_DLL") && DisableOutput();
       
   155 LIB	=	#$ Expand("TMAKE_LIB");
       
   156 #$ Project("TMAKE_APP_OR_DLL") && EnableOutput();
       
   157 MOC	=	#$ Expand("TMAKE_MOC");
       
   158 
       
   159 ZIP	=	#$ Expand("TMAKE_ZIP");
       
   160 
       
   161 ####### Files
       
   162 
       
   163 HEADERS =	#$ ExpandList("HEADERS");
       
   164 SOURCES =	#$ ExpandList("SOURCES");
       
   165 OBJECTS =	#$ ExpandList("OBJECTS");
       
   166 SRCMOC	=	#$ ExpandList("SRCMOC");
       
   167 OBJMOC	=	#$ ExpandList("OBJMOC");
       
   168 DIST	=	#$ ExpandList("DISTFILES");
       
   169 TARGET	=	#$ ExpandGlue("TARGET",$project{"DESTDIR"},"",$project{"TARGET_EXT"});
       
   170 
       
   171 ####### Implicit rules
       
   172 
       
   173 .SUFFIXES: .cpp .cxx .cc .c
       
   174 
       
   175 .cpp.obj:
       
   176 	#$ Expand("TMAKE_RUN_CXX_IMP");
       
   177 
       
   178 .cxx.obj:
       
   179 	#$ Expand("TMAKE_RUN_CXX_IMP");
       
   180 
       
   181 .cc.obj:
       
   182 	#$ Expand("TMAKE_RUN_CXX_IMP");
       
   183 
       
   184 .c.obj:
       
   185 	#$ Expand("TMAKE_RUN_CC_IMP");
       
   186 
       
   187 ####### Build rules
       
   188 
       
   189 all: #$ ExpandGlue("ALL_DEPS",""," "," "); $text .= '$(TARGET)';
       
   190 
       
   191 $(TARGET): $(OBJECTS) $(OBJMOC) #$ Expand("TARGETDEPS");
       
   192 #$ Project("TMAKE_APP_OR_DLL") || DisableOutput();
       
   193 	$(LINK) $(LFLAGS) /OUT:$(TARGET) @<<
       
   194 	    $(OBJECTS) $(OBJMOC) $(LIBS)
       
   195 #$ Project("TMAKE_APP_OR_DLL") || EnableOutput();
       
   196 #$ Project("TMAKE_APP_OR_DLL") && DisableOutput();
       
   197 	$(LIB) /OUT:$(TARGET) @<<
       
   198 	    $(OBJECTS) $(OBJMOC)
       
   199 #$ Project("TMAKE_APP_OR_DLL") && EnableOutput();
       
   200 <<
       
   201 #$ (Config("dll") && Project("DLLDESTDIR")) || DisableOutput();
       
   202 	-copy $(TARGET) #$ Expand("DLLDESTDIR");
       
   203 #$ (Config("dll") && Project("DLLDESTDIR")) || EnableOutput();
       
   204 #$ Project("RC_FILE") || DisableOutput();
       
   205 
       
   206 #$ Substitute("\$\$RES_FILE: \$\$RC_FILE\n\t\$\$TMAKE_RC \$\$RC_FILE");
       
   207 #$ Project("RC_FILE") || EnableOutput();
       
   208 
       
   209 moc: $(SRCMOC)
       
   210 
       
   211 #$ TmakeSelf();
       
   212 
       
   213 dist:
       
   214 	#$ Substitute('$(ZIP) $$PROJECT.zip $$PROJECT.pro $(SOURCES) $(HEADERS) $(DIST)');
       
   215 
       
   216 clean:
       
   217 	#$ ExpandGlue("OBJECTS","-del ","\n\t-del ","");
       
   218 	#$ ExpandGlue("SRCMOC" ,"-del ","\n\t-del ","");
       
   219 	#$ ExpandGlue("OBJMOC" ,"-del ","\n\t-del ","");
       
   220 	-del $(TARGET)
       
   221 	#$ ExpandGlue("TMAKE_CLEAN","-del ","\n\t-del ","");
       
   222 	#$ ExpandGlue("CLEAN_FILES","-del ","\n\t-del ","");
       
   223 
       
   224 ####### Compile
       
   225 
       
   226 #$ BuildObj(Project("OBJECTS"),Project("SOURCES"));
       
   227 #$ BuildMocObj(Project("OBJMOC"),Project("SRCMOC"));
       
   228 #$ BuildMocSrc(Project("HEADERS"));
       
   229 #$ BuildMocSrc(Project("SOURCES"));