summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Mitz <mitza-oci@users.noreply.github.com>2010-08-30 19:27:46 +0000
committerAdam Mitz <mitza-oci@users.noreply.github.com>2010-08-30 19:27:46 +0000
commit0fdb82c097151cdb9ec35e235af5a45b42b45493 (patch)
tree927ca1b56a29eb1c4e322e8c5f678f3cadc28566
parentc1c69534e864dacd134cc150ce9fcd0e01d08b99 (diff)
downloadMPC-0fdb82c097151cdb9ec35e235af5a45b42b45493.tar.gz
ChangeLogTag: Mon Aug 30 19:21:23 UTC 2010 Adam Mitz <mitza@ociweb.com>
-rw-r--r--ChangeLog27
-rw-r--r--modules/CDT6ProjectCreator.pm5
-rw-r--r--modules/ProjectCreator.pm10
-rw-r--r--modules/VC10ProjectCreator.pm8
-rw-r--r--templates/nmake.mpd58
5 files changed, 78 insertions, 30 deletions
diff --git a/ChangeLog b/ChangeLog
index 72e911d7..8e1996ce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+Mon Aug 30 19:21:23 UTC 2010 Adam Mitz <mitza@ociweb.com>
+
+ * modules/CDT6ProjectCreator.pm:
+
+ Added the ability to override platform auto-detection using an
+ environment variable.
+
+ * modules/ProjectCreator.pm:
+
+ Added pre_write_output_file() as a hook method that can be overriden
+ by specific ProjectCreators.
+
+ * modules/VC10ProjectCreator.pm:
+
+ Override pre_write_output_file(), but it doesn't do anything yet.
+
+ * templates/nmake.mpd:
+
+ - Normalized start-of-line whitespace to be a tab for all lines that
+ start commands (not inline script files). Nmake itself doesn't
+ care about the start-of-line whitespace but it helps editors.
+ - Use /GX- to disable /EHsc when managed.
+ - Generate a unique temp file name instead of always using
+ tempfile.bat. There appears to be a bug with nmake on some
+ machines where it still has an open file handle and it's trying to
+ delete/overwrite the temp file.
+
Mon Aug 30 15:38:18 UTC 2010 Adam Mitz <mitza@ociweb.com>
* config/qt4_gui.mpb:
diff --git a/modules/CDT6ProjectCreator.pm b/modules/CDT6ProjectCreator.pm
index 118b5dc3..c73c294f 100644
--- a/modules/CDT6ProjectCreator.pm
+++ b/modules/CDT6ProjectCreator.pm
@@ -56,7 +56,10 @@ sub fill_value {
my($self, $name) = @_;
if ($name eq 'platforms') {
- if ($^O eq 'darwin') {
+ if (defined $ENV{'MPC_CDT_PLATFORMS'}) {
+ return $ENV{'MPC_CDT_PLATFORMS'};
+ }
+ elsif ($^O eq 'darwin') {
return 'macosx';
}
elsif ($^O eq 'MSWin32') {
diff --git a/modules/ProjectCreator.pm b/modules/ProjectCreator.pm
index fbe33455..45231ef1 100644
--- a/modules/ProjectCreator.pm
+++ b/modules/ProjectCreator.pm
@@ -4760,6 +4760,12 @@ sub write_project {
}
}
+ ## Hook for implementing type-specific behavior.
+ ($status, $error) = $self->pre_write_output_file($webapp);
+ if (!$status) {
+ return $status, $error;
+ }
+
## We don't need to pass a file name here. write_output_file()
## will determine the file name for itself.
($status, $error) = $self->write_output_file($webapp);
@@ -5567,4 +5573,8 @@ sub warn_useless_project {
return 1;
}
+sub pre_write_output_file {
+ return 1;
+}
+
1;
diff --git a/modules/VC10ProjectCreator.pm b/modules/VC10ProjectCreator.pm
index 11707d73..c5fe6797 100644
--- a/modules/VC10ProjectCreator.pm
+++ b/modules/VC10ProjectCreator.pm
@@ -83,4 +83,12 @@ sub project_file_name {
return $project_file_name;
}
+sub pre_write_output_file {
+ my($self, $webapp) = @_;
+ my $status = 1;
+ my $error;
+
+ return $status, $error;
+}
+
1;
diff --git a/templates/nmake.mpd b/templates/nmake.mpd
index bb173ddf..dd0ac08f 100644
--- a/templates/nmake.mpd
+++ b/templates/nmake.mpd
@@ -92,34 +92,34 @@ REALCLEAN : CLEAN
<%if(pdbl)%>
-@del /f/q "$(OUTDIR)\<%libname_prefix%><%sharedname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%>.pdb"
<%endif%>
- -@del /f/q "<%if(dllout)%><%dllout%><%else%><%libout%><%endif%>\<%libname_prefix%><%sharedname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%dll_ext%>"
- -@del /f/q "$(OUTDIR)\<%libname_prefix%><%sharedname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%lib_ext%>"
- -@del /f/q "$(OUTDIR)\<%libname_prefix%><%sharedname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%>.exp"
- -@del /f/q "$(OUTDIR)\<%libname_prefix%><%sharedname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%>.ilk"
+ -@del /f/q "<%if(dllout)%><%dllout%><%else%><%libout%><%endif%>\<%libname_prefix%><%sharedname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%dll_ext%>"
+ -@del /f/q "$(OUTDIR)\<%libname_prefix%><%sharedname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%lib_ext%>"
+ -@del /f/q "$(OUTDIR)\<%libname_prefix%><%sharedname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%>.exp"
+ -@del /f/q "$(OUTDIR)\<%libname_prefix%><%sharedname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%>.ilk"
<%else%>
<%if(staticname && type_is_dynamic)%>
<%if(pdbl || pdbc)%>
-@del /f/q "$(OUTDIR)\<%libname_prefix%><%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%>.pdb"
<%endif%>
- -@del /f/q "<%if(dllout)%><%dllout%><%else%><%libout%><%endif%>\<%libname_prefix%><%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%dll_ext%>"
+ -@del /f/q "<%if(dllout)%><%dllout%><%else%><%libout%><%endif%>\<%libname_prefix%><%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%dll_ext%>"
<%endif%>
<%endif%>
<%if(staticname && type_is_static || !sharedname && type_is_dynamic)%>
- -@del /f/q "$(OUTDIR)\<%libname_prefix%><%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%lib_ext%>"
- -@del /f/q "$(OUTDIR)\<%libname_prefix%><%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%>.exp"
- -@del /f/q "$(OUTDIR)\<%libname_prefix%><%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%>.ilk"
+ -@del /f/q "$(OUTDIR)\<%libname_prefix%><%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%lib_ext%>"
+ -@del /f/q "$(OUTDIR)\<%libname_prefix%><%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%>.exp"
+ -@del /f/q "$(OUTDIR)\<%libname_prefix%><%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%>.ilk"
<%endif%>
<%if(pdbc && type_is_static)%>
-@del /f/q "<%libout%>\<%libname_prefix%><%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%>.pdb"
<%endif%>
<%if(exename)%>
- -@del /f/q "$(INSTALLDIR)\<%exename%><%if(use_exe_modifier)%><%lib_modifier%><%endif%><%exe_ext%>"
- -@del /f/q "$(INSTALLDIR)\<%exename%><%if(use_exe_modifier)%><%lib_modifier%><%endif%>.ilk"
+ -@del /f/q "$(INSTALLDIR)\<%exename%><%if(use_exe_modifier)%><%lib_modifier%><%endif%><%exe_ext%>"
+ -@del /f/q "$(INSTALLDIR)\<%exename%><%if(use_exe_modifier)%><%lib_modifier%><%endif%>.ilk"
<%endif%>
<%foreach(custom_types)%>
<%foreach(custom_type->input_files)%>
<%foreach(custom_type->input_file->output_files)%>
- -@del /f/q "<%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>\<%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%>"
+ -@del /f/q "<%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>\<%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%>"
<%endfor%>
<%endfor%>
<%endfor%>
@@ -128,12 +128,12 @@ REALCLEAN : CLEAN
<%endif%>
"$(INTDIR)" :
- if not exist "<%intermediate_dir%>\$(NULL)" mkdir "<%intermediate_dir%>"
- if not exist "<%intermediate_dir%>\<%project_name%>\$(NULL)" mkdir "<%intermediate_dir%>\<%project_name%>"
- if not exist "$(INTDIR)\$(NULL)" mkdir "$(INTDIR)"
+ if not exist "<%intermediate_dir%>\$(NULL)" mkdir "<%intermediate_dir%>"
+ if not exist "<%intermediate_dir%>\<%project_name%>\$(NULL)" mkdir "<%intermediate_dir%>\<%project_name%>"
+ if not exist "$(INTDIR)\$(NULL)" mkdir "$(INTDIR)"
CPP=<%cc("cl.exe")%>
-CPP_COMMON=<%if(TreatWChar_tAsBuiltInType)%>/Zc:wchar_t <%endif%>/nologo <%if(add_compile)%><%add_compile%> <%endif%><%if(optimize)%><%optimize_flags("/O2")%><%else%><%debug_flags("/Ob0")%><%endif%> <%compile_flags%><%foreach(DisableSpecificWarnings)%> /wd<%DisableSpecificWarning%><%endfor%><%if(managed)%> /EHsc- /Gm- /clr<%endif%><%if(pdbc)%> /Fd"<%if(type_is_static)%><%libout%>\<%libname_prefix%><%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%>.pdb<%else%>$(INTDIR)/<%endif%>"<%endif%> <%foreach(includes)%>/I "<%include%>" <%endfor%><%foreach(defines cpu_defines common_defines platform_defines macros)%>/D <%define%> <%endfor%><%if(unicode)%>/D UNICODE /D _UNICODE <%endif%><%if(type_is_dynamic)%><%foreach(dynamicflags)%>/D <%dynamicflag%> <%endfor%><%endif%><%if(need_staticflags)%><%foreach(staticflags)%>/D <%staticflag%> <%endfor%><%endif%><%if(macro_for_lib_modifier)%><%if(use_lib_modifier)%><%if(lib_modifier)%>/D MPC_LIB_MODIFIER=\"<%lib_modifier%>\"<%endif%><%endif%><%endif%> /FD /c
+CPP_COMMON=<%if(TreatWChar_tAsBuiltInType)%>/Zc:wchar_t <%endif%>/nologo <%if(add_compile)%><%add_compile%> <%endif%><%if(optimize)%><%optimize_flags("/O2")%><%else%><%debug_flags("/Ob0")%><%endif%> <%compile_flags%><%foreach(DisableSpecificWarnings)%> /wd<%DisableSpecificWarning%><%endfor%><%if(managed)%> /GX- /Gm- /clr<%endif%><%if(pdbc)%> /Fd"<%if(type_is_static)%><%libout%>\<%libname_prefix%><%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%>.pdb<%else%>$(INTDIR)/<%endif%>"<%endif%> <%foreach(includes)%>/I "<%include%>" <%endfor%><%foreach(defines cpu_defines common_defines platform_defines macros)%>/D <%define%> <%endfor%><%if(unicode)%>/D UNICODE /D _UNICODE <%endif%><%if(type_is_dynamic)%><%foreach(dynamicflags)%>/D <%dynamicflag%> <%endfor%><%endif%><%if(need_staticflags)%><%foreach(staticflags)%>/D <%staticflag%> <%endfor%><%endif%><%if(macro_for_lib_modifier)%><%if(use_lib_modifier)%><%if(lib_modifier)%>/D MPC_LIB_MODIFIER=\"<%lib_modifier%>\"<%endif%><%endif%><%endif%> /FD /c
<%if(pch_header)%>CPP_PCH=<%foreach(pch_defines)%>/D <%pch_define%> <%endfor%><%if(pch_source)%>/Yu<%else%>/YX<%endif%>"<%pch_header%>" /Fp"$(INTDIR)\<%transdir(pch_header)%><%basenoextension(pch_header)%>.pch"<%endif%>
CPP_PROJ=$(CPP_COMMON) <%if(pch_header)%>$(CPP_PCH) <%endif%>/Fo"<%fo_flag("$(INTDIR)\\\\")%>"
@@ -165,12 +165,12 @@ LINK32_OBJS= \
"<%if(type_is_dynamic)%><%if(dllout)%><%dllout%><%else%><%libout%><%endif%>\<%libname_prefix%><%if(sharedname)%><%sharedname%><%else%><%staticname%><%endif%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%dll_ext%><%endif%><%if(type_is_static)%>$(OUTDIR)\<%libname_prefix%><%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%lib_ext%><%endif%><%if(exename)%>$(INSTALLDIR)\<%exename%><%if(use_exe_modifier)%><%lib_modifier%><%endif%><%exe_ext%><%endif%>" : $(DEF_FILE) $(LINK32_OBJS)
<%if(prelink)%>
- <%eval(prelink)%>
+ <%eval(prelink)%>
<%endif%>
- $(LINK32) @<<
+ $(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
- if exist "<%if(type_is_dynamic)%><%if(dllout)%><%dllout%><%else%><%libout%><%endif%>\<%sharedname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%dll_ext%>.manifest<%endif%><%if(exename)%>$(INSTALLDIR)\<%exename%><%if(use_exe_modifier)%><%lib_modifier%><%endif%><%exe_ext%>.manifest<%endif%><%if(type_is_static)%>$(OUTDIR)\<%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%lib_ext%>.manifest<%endif%>" mt.exe -manifest "<%if(type_is_dynamic)%><%if(dllout)%><%dllout%><%else%><%libout%><%endif%>\<%sharedname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%dll_ext%>.manifest<%endif%><%if(exename)%>$(INSTALLDIR)\<%exename%><%if(use_exe_modifier)%><%lib_modifier%><%endif%><%exe_ext%>.manifest<%endif%><%if(type_is_static)%>$(OUTDIR)\<%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%lib_ext%>.manifest<%endif%>" -outputresource:$@;<%if(type_is_dynamic)%>2<%endif%><%if(exename)%>1<%endif%><%if(type_is_static)%>2<%endif%>
+ if exist "<%if(type_is_dynamic)%><%if(dllout)%><%dllout%><%else%><%libout%><%endif%>\<%sharedname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%dll_ext%>.manifest<%endif%><%if(exename)%>$(INSTALLDIR)\<%exename%><%if(use_exe_modifier)%><%lib_modifier%><%endif%><%exe_ext%>.manifest<%endif%><%if(type_is_static)%>$(OUTDIR)\<%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%lib_ext%>.manifest<%endif%>" mt.exe -manifest "<%if(type_is_dynamic)%><%if(dllout)%><%dllout%><%else%><%libout%><%endif%>\<%sharedname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%dll_ext%>.manifest<%endif%><%if(exename)%>$(INSTALLDIR)\<%exename%><%if(use_exe_modifier)%><%lib_modifier%><%endif%><%exe_ext%>.manifest<%endif%><%if(type_is_static)%>$(OUTDIR)\<%staticname%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%lib_ext%>.manifest<%endif%>" -outputresource:$@;<%if(type_is_dynamic)%>2<%endif%><%if(exename)%>1<%endif%><%if(type_is_static)%>2<%endif%>
<%endif%>
<%if(prebuild)%>
@@ -192,39 +192,39 @@ CLEAN :
<%if(exeout)%>
"$(INSTALLDIR)" :
- if not exist "$(INSTALLDIR)\$(NULL)" mkdir "$(INSTALLDIR)"
+ if not exist "$(INSTALLDIR)\$(NULL)" mkdir "$(INSTALLDIR)"
<%endif%>
"$(OUTDIR)" :
- if not exist "$(OUTDIR)\$(NULL)" mkdir "$(OUTDIR)"
+ if not exist "$(OUTDIR)\$(NULL)" mkdir "$(OUTDIR)"
.c{$(INTDIR)}.obj::
- $(CPP) @<<
+ $(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
+ $(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
+ $(CPP) @<<
$(CPP_PROJ) $<
<<
.c{$(INTDIR)}.sbr::
- $(CPP) @<<
+ $(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
+ $(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
+ $(CPP) @<<
$(CPP_PROJ) $<
<<
@@ -247,7 +247,7 @@ CPP_SWITCHES=<%if(TreatWChar_tAsBuiltInType)%>/Zc:wchar_t <%endif%>/nologo <%if(
"$(INTDIR)\<%transdir(pch_source)%><%basenoextension(pch_source)%>.obj" "$(INTDIR)\<%transdir(pch_header)%><%basenoextension(pch_header)%>.pch" : $(SOURCE)
<%if(transdir(pch_source))%>
- @if not exist "$(INTDIR)\<%transdir(pch_source)%>$(NULL)" mkdir "$(INTDIR)\<%transdir(pch_source)%>"
+ @if not exist "$(INTDIR)\<%transdir(pch_source)%>$(NULL)" mkdir "$(INTDIR)\<%transdir(pch_source)%>"
<%endif%>
$(CPP) @<<
$(CPP_SWITCHES) /Fo"$(INTDIR)\<%transdir(pch_source)%><%basenoextension(pch_source)%>.obj" $(SOURCE)
@@ -265,7 +265,7 @@ SOURCE="<%source_file%>"
<%if(transdir(source_file))%>
@if not exist "$(INTDIR)\<%transdir(source_file)%>$(NULL)" mkdir "$(INTDIR)\<%transdir(source_file)%>"
<%endif%>
- $(CPP) <%if(pch_header && !flag_overrides(source_file, no_pch))%>$(CPP_PCH) <%endif%>$(CPP_COMMON) <%if(flag_overrides(source_file, buildflags))%><%flag_overrides(source_file, buildflags)%> <%endif%><%if(flag_overrides(source_file, managed))%>/EHsc- /Gm- /clr <%endif%>/Fo"$(INTDIR)\<%transdir(source_file)%><%basenoextension(source_file)%>.obj" $(SOURCE)
+ $(CPP) <%if(pch_header && !flag_overrides(source_file, no_pch))%>$(CPP_PCH) <%endif%>$(CPP_COMMON) <%if(flag_overrides(source_file, buildflags))%><%flag_overrides(source_file, buildflags)%> <%endif%><%if(flag_overrides(source_file, managed))%>/GX- /Gm- /clr <%endif%>/Fo"$(INTDIR)\<%transdir(source_file)%><%basenoextension(source_file)%>.obj" $(SOURCE)
<%endfor%>
<%endif%>
@@ -281,7 +281,7 @@ SOURCE="<%custom_type->input_file%>"
InputPath=<%custom_type->input_file%>
<%foreach(custom_type->input_file->output_files)%>"<%if(flag_overrides(custom_type->input_file, gendir))%><%flag_overrides(custom_type->input_file, gendir)%>\<%basename(custom_type->input_file->output_file)%><%else%><%custom_type->input_file->output_file%><%endif%>" <%endfor%>: $(SOURCE) <%foreach(custom_type->input_file->dependencies)%> "<%custom_type->input_file->dependencie%>"<%endfor%><%if(flag_overrides(custom_type->input_file, dependent))%><%foreach(dep, flag_overrides(custom_type->input_file, dependent))%> "<%dep%><%if(!has_extension(dep))%><%exe_ext%><%endif%>"<%endfor%><%else%><%if(custom_type->dependent)%><%foreach(custom_type->dependent)%> "<%custom_type->dependent%><%if(!has_extension(custom_type->dependent))%><%exe_ext%><%endif%>"<%endfor%><%endif%><%endif%><%if(!need_staticflags)%><%if(flag_overrides(custom_type->input_file, dependent_libs))%><%foreach(dep_lib, flag_overrides(custom_type->input_file, dependent_libs))%> "<%dirname(dep_lib)%>\<%libname_prefix%><%basename(dep_lib)%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%dll_ext%>"<%endfor%><%else%><%if(custom_type->dependent_libs)%><%foreach(custom_type->dependent_libs)%> "<%dirname(custom_type->dependent_lib)%>\<%libname_prefix%><%basename(custom_type->dependent_lib)%><%if(use_lib_modifier)%><%lib_modifier%><%endif%><%dll_ext%>"<%endfor%><%endif%><%endif%><%endif%>
- <<tempfile.bat
+ <<tempfile-<%normalize(platform)%>-<%normalize(configuration)%>-<%normalize(custom_type)%>-<%normalize(custom_type->input_file)%>.bat
@echo off
<%if(custom_type->libpath)%>
PATH=%PATH%;<%custom_type->libpath%>