The following commit has been merged in the debian/experimental branch: commit 615640eda68a9d059e5b15b4f63a4d63dbcd3684 Author: sfalken at apple.com <sfalken at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc> Date: Wed Jul 21 16:39:59 2010 +0000 JavaScriptCore: WebKit on Windows should build optionally with an unversioned ICU DLL https://bugs.webkit.org/show_bug.cgi?id=42722 <rdar://problem/8211743> JavaScriptCore needs to link against unversioned ICU Reviewed by Adam Roben. Dynamically create a new header, ICUVersion.h, as part of build-generated-files.sh. Header contains a preprocessor define (U_DISABLE_RENAMING) indicating to ICU whether the ICU API should be namespaced with the current ICU version number. Proper value is determined by checking for the presence of libicuuc.lib, the unversioned copy of ICU. To get the proper value for U_DISABLE_RENAMING into all source files, we force the include of ICUVersion.h (our generated header) via the compiler options. Since the versioned and unversioned ICU have different filenames (libicuuc.lib vs icuuc.lib) we copy the ICU lib to an intermediate location under obj with a common name. This allows us to link properly with either without adding a new build configuration. * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: Copy ICU libs into a common location with a common name. Add additional library search path to pick up icu lib. Change ICU library filename specified to linker. Add forced include of ICUVersion.h. * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: Generate ICUVersion.h * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: Add forced include of ICUVersion.h. * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: Copy ICU libs into a common location with a common name. Add additional library search path to pick up icu lib. Change ICU library filename specified to linker. Add forced include of ICUVersion.h. * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: Copy ICU libs into a common location with a common name. Add additional library search path to pick up icu lib. Change ICU library filename specified to linker. Add forced include of ICUVersion.h. WebCore: WebKit on Windows should build optionally with an unversioned ICU DLL https://bugs.webkit.org/show_bug.cgi?id=42722 <rdar://problem/8211767> WebKit needs to link against unversioned ICU Reviewed by Adam Roben. To get the proper value for U_DISABLE_RENAMING into all source files, we force the include of ICUVersion.h (our generated header) via the compiler options. * WebCore.vcproj/WebCore.vcproj: Add forced include of ICUVersion.h. * WebCore.vcproj/WebCoreCommon.vsprops: Add forced include of ICUVersion.h. WebKit/win: WebKit on Windows should build optionally with an unversioned ICU DLL https://bugs.webkit.org/show_bug.cgi?id=42722 <rdar://problem/8211767> WebKit needs to link against unversioned ICU Reviewed by Adam Roben. To get the proper value for U_DISABLE_RENAMING into all source files, we force the include of ICUVersion.h (our generated header) via the compiler options. * WebKit.vcproj/WebKit.vcproj: Add forced include of ICUVersion.h. WebKit2: WebKit on Windows should build optionally with an unversioned ICU DLL https://bugs.webkit.org/show_bug.cgi?id=42722 <rdar://problem/8211767> WebKit needs to link against unversioned ICU Reviewed by Adam Roben. To get the proper value for U_DISABLE_RENAMING into all source files, we force the include of ICUVersion.h (our generated header) via the compiler options. Since the versioned and unversioned ICU have different filenames (libicuuc.lib vs icuuc.lib) we copy the ICU lib to an intermediate location under obj with a common name. This allows us to link properly with either without adding a new build configuration. * win/WebKit2Common.vsprops: Copy ICU libs into a common location with a common name. Add additional library search path to pick up icu lib. Change ICU library filename specified to linker. Add forced include of ICUVersion.h. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63833 268f45cc-cd09-0410-ab3c-d52691b4dbfc diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog index cd233fa..5e01de2 100644 --- a/JavaScriptCore/ChangeLog +++ b/JavaScriptCore/ChangeLog @@ -1,5 +1,43 @@ 2010-07-20 Steve Falkenburg <sfalken at apple.com> + Reviewed by Adam Roben. + + WebKit on Windows should build optionally with an unversioned ICU DLL + https://bugs.webkit.org/show_bug.cgi?id=42722 + <rdar://problem/8211743> JavaScriptCore needs to link against unversioned ICU + + Dynamically create a new header, ICUVersion.h, as part of build-generated-files.sh. + Header contains a preprocessor define (U_DISABLE_RENAMING) indicating to ICU whether the ICU API + should be namespaced with the current ICU version number. Proper value is determined + by checking for the presence of libicuuc.lib, the unversioned copy of ICU. + + To get the proper value for U_DISABLE_RENAMING into all source files, we force + the include of ICUVersion.h (our generated header) via the compiler options. + + Since the versioned and unversioned ICU have different filenames (libicuuc.lib vs icuuc.lib) + we copy the ICU lib to an intermediate location under obj with a common name. This + allows us to link properly with either without adding a new build configuration. + + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: + Copy ICU libs into a common location with a common name. + Add additional library search path to pick up icu lib. + Change ICU library filename specified to linker. + Add forced include of ICUVersion.h. + * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: Generate ICUVersion.h + * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: Add forced include of ICUVersion.h. + * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: + Copy ICU libs into a common location with a common name. + Add additional library search path to pick up icu lib. + Change ICU library filename specified to linker. + Add forced include of ICUVersion.h. + * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: + Copy ICU libs into a common location with a common name. + Add additional library search path to pick up icu lib. + Change ICU library filename specified to linker. + Add forced include of ICUVersion.h. + +2010-07-20 Steve Falkenburg <sfalken at apple.com> + Re-save vsprops files after no-op edits in Visual Studio to fix manual edit issues. diff --git a/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops b/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops index 59ed4d9..c92196e 100644 --- a/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops +++ b/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops @@ -8,12 +8,13 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories=""$(WebKitOutputDir)\obj\JavaScriptCore\DerivedSources\";../../;../../API/;../../pcre/;../../parser/;../../bytecompiler/;../../jit/;../../runtime/;../../bytecode/;../../interpreter/;../../wtf/;../../profiler;../../assembler/;../../debugger/;"$(WebKitLibrariesDir)\include";"$(WebKitLibrariesDir)\include\private";"$(WebKitOutputDir)\include";"$(WebKitOutputDir)\include\JavaScriptCore";"$(WebKitOutputDir)\include\private";"$(WebKitLibrariesDir)\include\pthreads"" PreprocessorDefinitions="__STD_C" - ForcedIncludeFiles="" + ForcedIncludeFiles="ICUVersion.h" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="gdi32.lib oleaut32.lib winmm.lib icuin$(LibraryConfigSuffix).lib icuuc$(LibraryConfigSuffix).lib pthreadVC2$(LibraryConfigSuffix).lib WTF$(WebKitConfigSuffix).lib" + AdditionalDependencies="gdi32.lib oleaut32.lib winmm.lib libicuin$(LibraryConfigSuffix).lib libicuuc$(LibraryConfigSuffix).lib pthreadVC2$(LibraryConfigSuffix).lib WTF$(WebKitConfigSuffix).lib" OutputFile="$(OutDir)\$(ProjectName)$(WebKitDLLConfigSuffix).dll" + AdditionalLibraryDirectories=""$(IntDir)\lib"" ModuleDefinitionFile="JavaScriptCore.def" /> <Tool @@ -24,4 +25,8 @@ Name="VCPreBuildEventTool" CommandLine="%SystemDrive%\cygwin\bin\which.exe bash
if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH%
cmd /c
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
" /> + <Tool + Name="VCPreLinkEventTool" + CommandLine="mkdir 2>NUL "$(IntDir)\lib"

if exist "$(WebKitLibrariesDir)\lib\icuuc$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\icuuc$(LibraryConfigSuffix).lib" "$(IntDir)\lib\libicuuc$(LibraryConfigSuffix).lib"
if exist "$(WebKitLibrariesDir)\lib\icuin$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\icuin$(LibraryConfigSuffix).lib" "$(IntDir)\lib\libicuin$(LibraryConfigSuffix).lib"

if exist "$(WebKitLibrariesDir)\lib\libicuuc$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\libicuuc$(LibraryConfigSuffix).lib" "$(IntDir)\lib"
if exist "$(WebKitLibrariesDir)\lib\libicuin$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\libicuin$(LibraryConfigSuffix).lib" "$(IntDir)\lib"

cmd /c
" + /> </VisualStudioPropertySheet> diff --git a/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh b/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh index 5955365..85c3152 100755 --- a/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh +++ b/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh @@ -10,6 +10,16 @@ then echo "#define QUARTZCORE_PRESENT $?" > "${QUARTZCOREPRESENT_H_PATH}" fi +# Determine whether we have the versioned ICU 4.0 or the unversioned ICU 4.4 +UNVERSIONED_ICU_LIB_PATH=$(cygpath -u "${WEBKITLIBRARIESDIR}/lib/libicuuc.lib") +ICUVERSION_H_PATH=$(cygpath -u "${WEBKITOUTPUTDIR}/include/private/ICUVersion.h") +if test \( ! -f "${ICUVERSION_H_PATH}" \) -o \( -f "${UNVERSIONED_ICU_LIB_PATH}" -a \( "${UNVERSIONED_ICU_LIB_PATH}" -nt "${ICUVERSION_H_PATH}" \) \) +then + mkdir -p "$(dirname "${ICUVERSION_H_PATH}")" + test ! -f "${UNVERSIONED_ICU_LIB_PATH}" + echo "#define U_DISABLE_RENAMING $?" > "${ICUVERSION_H_PATH}" +fi + NUMCPUS=`../../../WebKitTools/Scripts/num-cpus` XSRCROOT="`pwd`/../.." diff --git a/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTFCommon.vsprops b/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTFCommon.vsprops index b41682f..c2569ba 100644 --- a/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTFCommon.vsprops +++ b/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTFCommon.vsprops @@ -9,6 +9,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories=""$(WebKitOutputDir)\obj\JavaScriptCore\$(ConfigurationName)\DerivedSources\";../../;"../../os-win32/";../../pcre/;../../parser/;../../wtf/;../../wtf/unicode/;"$(WebKitOutputDir)\include\private";"$(WebKitLibrariesDir)\include";../../../icu/include;../../bindings;../../bindings/c;../../bindings/jni;"$(WebKitOutputDir)\include\JavaScriptCore";"$(WebKitLibrariesDir)\include\pthreads"" PreprocessorDefinitions="__STD_C" + ForcedIncludeFiles="ICUVersion.h" /> <Tool Name="VCLibrarianTool" diff --git a/JavaScriptCore/JavaScriptCore.vcproj/jsc/jscCommon.vsprops b/JavaScriptCore/JavaScriptCore.vcproj/jsc/jscCommon.vsprops index b53b49e..e5cc866 100644 --- a/JavaScriptCore/JavaScriptCore.vcproj/jsc/jscCommon.vsprops +++ b/JavaScriptCore/JavaScriptCore.vcproj/jsc/jscCommon.vsprops @@ -8,11 +8,13 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories=""$(WebKitOutputDir)\include";"$(WebKitOutputDir)\include\private";"$(WebKitOutputDir)\obj\JavaScriptCore\$(ConfigurationName)\DerivedSources\";../../;"../../os-win32/";../../pcre/;../../assembler/;../../API/;../../parser/;../../runtime/;../../VM/;../../bytecode/;../../interpreter/;../../wtf/;../../debugger/;../../bytecompiler/;../../profiler;../../jit/;"$(WebKitLibrariesDir)\include\pthreads";"$(WebKitLibrariesDir)\include"" PreprocessorDefinitions="__STD_C" - ForcedIncludeFiles="" + ForcedIncludeFiles="ICUVersion.h" + ForcedUsingFiles="" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="JavaScriptCore$(WebKitDLLConfigSuffix).lib icuin$(LibraryConfigSuffix).lib icuuc$(LibraryConfigSuffix).lib winmm.lib pthreadVC2$(LibraryConfigSuffix).lib user32.lib" + AdditionalDependencies="JavaScriptCore$(WebKitDLLConfigSuffix).lib libicuin$(LibraryConfigSuffix).lib libicuuc$(LibraryConfigSuffix).lib winmm.lib pthreadVC2$(LibraryConfigSuffix).lib user32.lib" + AdditionalLibraryDirectories=""$(IntDir)\lib"" SubSystem="1" /> <Tool @@ -23,4 +25,8 @@ Name="VCPreBuildEventTool" CommandLine="%SystemDrive%\cygwin\bin\which.exe bash
if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH%
cmd /c
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"
" /> + <Tool + Name="VCPreLinkEventTool" + CommandLine="mkdir 2>NUL "$(IntDir)\lib"

if exist "$(WebKitLibrariesDir)\lib\icuuc$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\icuuc$(LibraryConfigSuffix).lib" "$(IntDir)\lib\libicuuc$(LibraryConfigSuffix).lib"
if exist "$(WebKitLibrariesDir)\lib\icuin$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\icuin$(LibraryConfigSuffix).lib" "$(IntDir)\lib\libicuin$(LibraryConfigSuffix).lib"

if exist "$(WebKitLibrariesDir)\lib\libicuuc$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\libicuuc$(LibraryConfigSuffix).lib" "$(IntDir)\lib"
if exist "$(WebKitLibrariesDir)\lib\libicuin$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\libicuin$(LibraryConfigSuffix).lib" "$(IntDir)\lib"

cmd /c
" + /> </VisualStudioPropertySheet> diff --git a/JavaScriptCore/JavaScriptCore.vcproj/testapi/testapiCommon.vsprops b/JavaScriptCore/JavaScriptCore.vcproj/testapi/testapiCommon.vsprops index eea643c..a1a7267 100644 --- a/JavaScriptCore/JavaScriptCore.vcproj/testapi/testapiCommon.vsprops +++ b/JavaScriptCore/JavaScriptCore.vcproj/testapi/testapiCommon.vsprops @@ -9,11 +9,12 @@ AdditionalIncludeDirectories=""$(ProjectDir)\..\..\API";"$(WebKitOutputDir)\include\WebCore\ForwardingHeaders";"$(WebKitOutputDir)\include\JavaScriptCore";"$(WebKitOutputDir)\include\private\JavaScriptCore";"$(WebKitOutputDir)\include";"$(WebKitOutputDir)\include\private";"$(WebKitLibrariesDir)\include";"$(WebKitLibrariesDir)\include\private"" WarningLevel="4" Detect64BitPortabilityProblems="true" - ForcedIncludeFiles="" + ForcedIncludeFiles="ICUVersion.h" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="JavaScriptCore$(WebKitDLLConfigSuffix).lib WTF$(WebKitConfigSuffix).lib pthreadVC2$(LibraryConfigSuffix).lib icuin$(LibraryConfigSuffix).lib icuuc$(LibraryConfigSuffix).lib" + AdditionalDependencies="JavaScriptCore$(WebKitDLLConfigSuffix).lib WTF$(WebKitConfigSuffix).lib pthreadVC2$(LibraryConfigSuffix).lib libicuin$(LibraryConfigSuffix).lib libicuuc$(LibraryConfigSuffix).lib" + AdditionalLibraryDirectories=""$(IntDir)\lib"" SubSystem="1" /> <Tool @@ -24,4 +25,8 @@ Name="VCPreBuildEventTool" CommandLine="%SystemDrive%\cygwin\bin\which.exe bash
if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH%
cmd /c
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"
" /> + <Tool + Name="VCPreLinkEventTool" + CommandLine="mkdir 2>NUL "$(IntDir)\lib"

if exist "$(WebKitLibrariesDir)\lib\icuuc$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\icuuc$(LibraryConfigSuffix).lib" "$(IntDir)\lib\libicuuc$(LibraryConfigSuffix).lib"
if exist "$(WebKitLibrariesDir)\lib\icuin$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\icuin$(LibraryConfigSuffix).lib" "$(IntDir)\lib\libicuin$(LibraryConfigSuffix).lib"

if exist "$(WebKitLibrariesDir)\lib\libicuuc$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\libicuuc$(LibraryConfigSuffix).lib" "$(IntDir)\lib"
if exist "$(WebKitLibrariesDir)\lib\libicuin$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\libicuin$(LibraryConfigSuffix).lib" "$(IntDir)\lib"

cmd /c
" + /> </VisualStudioPropertySheet> diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog index dccbab8..b8574b7 100644 --- a/WebCore/ChangeLog +++ b/WebCore/ChangeLog @@ -1,3 +1,18 @@ +2010-07-20 Steve Falkenburg <sfalken at apple.com> + + Reviewed by Adam Roben. + + WebKit on Windows should build optionally with an unversioned ICU DLL + https://bugs.webkit.org/show_bug.cgi?id=42722 + <rdar://problem/8211767> WebKit needs to link against unversioned ICU + + To get the proper value for U_DISABLE_RENAMING into all source files, we force + the include of ICUVersion.h (our generated header) via the compiler options. + + * WebCore.vcproj/WebCore.vcproj: + Add forced include of ICUVersion.h. + * WebCore.vcproj/WebCoreCommon.vsprops: Add forced include of ICUVersion.h. + 2010-07-21 Ilya Tikhonovsky <loislo at chromium.org> Reviewed by Pavel Feldman. diff --git a/WebCore/WebCore.vcproj/WebCore.vcproj b/WebCore/WebCore.vcproj/WebCore.vcproj index d34d969..00c718f 100644 --- a/WebCore/WebCore.vcproj/WebCore.vcproj +++ b/WebCore/WebCore.vcproj/WebCore.vcproj @@ -364,7 +364,7 @@ Name="VCCLCompilerTool" UsePrecompiledHeader="0" DisableSpecificWarnings="4065;4273;4565;4701;4702" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -374,7 +374,7 @@ Name="VCCLCompilerTool" UsePrecompiledHeader="0" DisableSpecificWarnings="4065;4273;4565;4701;4702" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -384,7 +384,7 @@ Name="VCCLCompilerTool" UsePrecompiledHeader="0" DisableSpecificWarnings="4065;4273;4565;4701;4702" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -394,7 +394,7 @@ Name="VCCLCompilerTool" UsePrecompiledHeader="0" DisableSpecificWarnings="4065;4273;4565;4701;4702" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -404,7 +404,7 @@ Name="VCCLCompilerTool" UsePrecompiledHeader="0" DisableSpecificWarnings="4065;4273;4565;4701;4702" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -414,7 +414,7 @@ Name="VCCLCompilerTool" UsePrecompiledHeader="0" DisableSpecificWarnings="4065;4273;4565;4701;4702" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> </File> @@ -20910,7 +20910,7 @@ Name="VCCLCompilerTool" UsePrecompiledHeader="0" DisableSpecificWarnings="4065;4273;4565;4701;4702" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -20920,7 +20920,7 @@ Name="VCCLCompilerTool" UsePrecompiledHeader="0" DisableSpecificWarnings="4065;4273;4565;4701;4702" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -20930,7 +20930,7 @@ Name="VCCLCompilerTool" UsePrecompiledHeader="0" DisableSpecificWarnings="4065;4273;4565;4701;4702" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -20940,7 +20940,7 @@ Name="VCCLCompilerTool" UsePrecompiledHeader="0" DisableSpecificWarnings="4065;4273;4565;4701;4702" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -20950,7 +20950,7 @@ Name="VCCLCompilerTool" UsePrecompiledHeader="0" DisableSpecificWarnings="4065;4273;4565;4701;4702" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -20960,7 +20960,7 @@ Name="VCCLCompilerTool" UsePrecompiledHeader="0" DisableSpecificWarnings="4065;4273;4565;4701;4702" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> </File> @@ -23824,7 +23824,7 @@ <Tool Name="VCCLCompilerTool" UsePrecompiledHeader="0" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -23833,7 +23833,7 @@ <Tool Name="VCCLCompilerTool" UsePrecompiledHeader="0" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -23842,7 +23842,7 @@ <Tool Name="VCCLCompilerTool" UsePrecompiledHeader="0" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -23851,7 +23851,7 @@ <Tool Name="VCCLCompilerTool" UsePrecompiledHeader="0" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -23860,7 +23860,7 @@ <Tool Name="VCCLCompilerTool" UsePrecompiledHeader="0" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -23869,7 +23869,7 @@ <Tool Name="VCCLCompilerTool" UsePrecompiledHeader="0" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> </File> @@ -32067,7 +32067,7 @@ <Tool Name="VCCLCompilerTool" UsePrecompiledHeader="0" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -32076,7 +32076,7 @@ <Tool Name="VCCLCompilerTool" UsePrecompiledHeader="0" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -32085,7 +32085,7 @@ <Tool Name="VCCLCompilerTool" UsePrecompiledHeader="0" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -32094,7 +32094,7 @@ <Tool Name="VCCLCompilerTool" UsePrecompiledHeader="0" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -32103,7 +32103,7 @@ <Tool Name="VCCLCompilerTool" UsePrecompiledHeader="0" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> <FileConfiguration @@ -32112,7 +32112,7 @@ <Tool Name="VCCLCompilerTool" UsePrecompiledHeader="0" - ForcedIncludeFiles="$(NOINHERIT)" + ForcedIncludeFiles="$(NOINHERIT);ICUVersion.h" /> </FileConfiguration> </File> diff --git a/WebCore/WebCore.vcproj/WebCoreCommon.vsprops b/WebCore/WebCore.vcproj/WebCoreCommon.vsprops index 75d4dea..537e129 100644 --- a/WebCore/WebCore.vcproj/WebCoreCommon.vsprops +++ b/WebCore/WebCore.vcproj/WebCoreCommon.vsprops @@ -12,7 +12,7 @@ UsePrecompiledHeader="2" PrecompiledHeaderThrough="WebCorePrefix.h" ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb" - ForcedIncludeFiles="WebCorePrefix.h" + ForcedIncludeFiles="WebCorePrefix.h;ICUVersion.h" /> <Tool Name="VCPostBuildEventTool" diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog index a43fbb7..44869dc 100644 --- a/WebKit/win/ChangeLog +++ b/WebKit/win/ChangeLog @@ -1,3 +1,16 @@ +2010-07-20 Steve Falkenburg <sfalken at apple.com> + + Reviewed by Adam Roben. + + WebKit on Windows should build optionally with an unversioned ICU DLL + https://bugs.webkit.org/show_bug.cgi?id=42722 + <rdar://problem/8211767> WebKit needs to link against unversioned ICU + + To get the proper value for U_DISABLE_RENAMING into all source files, we force + the include of ICUVersion.h (our generated header) via the compiler options. + + * WebKit.vcproj/WebKit.vcproj: Add forced include of ICUVersion.h. + 2010-07-21 Adam Roben <aroben at apple.com> Update WebKit.sln for InjectedBundle's Debug_Internal configuration diff --git a/WebKit/win/WebKit.vcproj/WebKit.vcproj b/WebKit/win/WebKit.vcproj/WebKit.vcproj index 7316805..50f5921 100644 --- a/WebKit/win/WebKit.vcproj/WebKit.vcproj +++ b/WebKit/win/WebKit.vcproj/WebKit.vcproj @@ -46,7 +46,7 @@ PrecompiledHeaderThrough="WebKitPrefix.h" ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb" DisableSpecificWarnings="4819" - ForcedIncludeFiles="WebKitPrefix.h" + ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h" /> <Tool Name="VCManagedResourceCompilerTool" @@ -111,7 +111,7 @@ PrecompiledHeaderThrough="WebKitPrefix.h" ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb" DisableSpecificWarnings="4819" - ForcedIncludeFiles="WebKitPrefix.h" + ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h" /> <Tool Name="VCManagedResourceCompilerTool" @@ -176,7 +176,7 @@ ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb" Detect64BitPortabilityProblems="false" DisableSpecificWarnings="4819" - ForcedIncludeFiles="WebKitPrefix.h" + ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h" /> <Tool Name="VCManagedResourceCompilerTool" @@ -240,7 +240,7 @@ PrecompiledHeaderThrough="WebKitPrefix.h" ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb" DisableSpecificWarnings="4819" - ForcedIncludeFiles="WebKitPrefix.h" + ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h" /> <Tool Name="VCManagedResourceCompilerTool" @@ -306,7 +306,7 @@ PrecompiledHeaderThrough="WebKitPrefix.h" ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb" DisableSpecificWarnings="4819" - ForcedIncludeFiles="WebKitPrefix.h" + ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h" /> <Tool Name="VCManagedResourceCompilerTool" @@ -371,7 +371,7 @@ ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb" Detect64BitPortabilityProblems="false" DisableSpecificWarnings="4819" - ForcedIncludeFiles="WebKitPrefix.h" + ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h" /> <Tool Name="VCManagedResourceCompilerTool" diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog index 88bbfd0..ce01314 100644 --- a/WebKit2/ChangeLog +++ b/WebKit2/ChangeLog @@ -1,3 +1,24 @@ +2010-07-20 Steve Falkenburg <sfalken at apple.com> + + Reviewed by Adam Roben. + + WebKit on Windows should build optionally with an unversioned ICU DLL + https://bugs.webkit.org/show_bug.cgi?id=42722 + <rdar://problem/8211767> WebKit needs to link against unversioned ICU + + To get the proper value for U_DISABLE_RENAMING into all source files, we force + the include of ICUVersion.h (our generated header) via the compiler options. + + Since the versioned and unversioned ICU have different filenames (libicuuc.lib vs icuuc.lib) + we copy the ICU lib to an intermediate location under obj with a common name. This + allows us to link properly with either without adding a new build configuration. + + * win/WebKit2Common.vsprops: + Copy ICU libs into a common location with a common name. + Add additional library search path to pick up icu lib. + Change ICU library filename specified to linker. + Add forced include of ICUVersion.h. + 2010-07-21 Adam Roben <aroben at apple.com> Windows build fix diff --git a/WebKit2/win/WebKit2Common.vsprops b/WebKit2/win/WebKit2Common.vsprops index fd6a56d..d289c9b 100644 --- a/WebKit2/win/WebKit2Common.vsprops +++ b/WebKit2/win/WebKit2Common.vsprops @@ -11,12 +11,13 @@ UsePrecompiledHeader="2" PrecompiledHeaderThrough="WebKit2Prefix.h" DisableSpecificWarnings="4819" - ForcedIncludeFiles="WebKit2Prefix.h" + ForcedIncludeFiles="WebKit2Prefix.h;ICUVersion.h" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="delayimp.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib usp10.lib comctl32.lib version.lib shlwapi.lib libxml2$(LibraryConfigSuffix).lib libxslt$(LibraryConfigSuffix).lib icuin$(LibraryConfigSuffix).lib icuuc$(LibraryConfigSuffix).lib SQLite3$(LibraryConfigSuffix).lib pthreadVC2$(LibraryConfigSuffix).lib JavaScriptCore$(WebKitDLLConfigSuffix).lib WebCore$(WebKitConfigSuffix).lib WebKitLib$(WebKitConfigSuffix).lib WebKitGUID$(WebKitConfigSuffix).lib msimg32.lib crypt32.lib iphlpapi.lib winmm.lib comsuppw.lib rpcrt4.lib" + AdditionalDependencies="delayimp.lib kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib usp10.lib comctl32.lib version.lib shlwapi.lib libxml2$(LibraryConfigSuffix).lib libxslt$(LibraryConfigSuffix).lib libicuin$(LibraryConfigSuffix).lib libicuuc$(LibraryConfigSuffix).lib SQLite3$(LibraryConfigSuffix).lib pthreadVC2$(LibraryConfigSuffix).lib JavaScriptCore$(WebKitDLLConfigSuffix).lib WebCore$(WebKitConfigSuffix).lib WebKitLib$(WebKitConfigSuffix).lib WebKitGUID$(WebKitConfigSuffix).lib msimg32.lib crypt32.lib iphlpapi.lib winmm.lib comsuppw.lib rpcrt4.lib" OutputFile="$(OutDir)\$(ProjectName)$(WebKitDLLConfigSuffix).dll" + AdditionalLibraryDirectories=""$(IntDir)\lib"" DelayLoadDLLs="usp10.dll;comctl32.dll;version.dll;libxslt$(LibraryConfigSuffix).dll;SQLite3$(LibraryConfigSuffix).dll;msimg32.dll;iphlpapi.dll" /> <Tool @@ -28,6 +29,10 @@ CommandLine="%SystemDrive%\cygwin\bin\which.exe bash
if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH%
cmd /c
if exist "$(WebKitOutputDir)\buildfailed" grep XX$(ProjectName)XX "$(WebKitOutputDir)\buildfailed"
if errorlevel 1 exit 1
echo XX$(ProjectName)XX > "$(WebKitOutputDir)\buildfailed"

touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" /Fo"$(IntDir)\tmp.obj" 2>&1 | findstr D9040
if ERRORLEVEL 1 (set EnablePREfast="true") else (set EnablePREfast="false")
if ERRORLEVEL 1 (set AnalyzeWithLargeStack="/analyze:65536") else (set AnalyzeWithLargeStack="")

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore"

bash "$(WebKitLibrariesDir)\tools\scripts\auto-version.sh" "$(IntDir)"
" /> <Tool + Name="VCPreLinkEventTool" + CommandLine="mkdir 2>NUL "$(IntDir)\lib"

if exist "$(WebKitLibrariesDir)\lib\icuuc$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\icuuc$(LibraryConfigSuffix).lib" "$(IntDir)\lib\libicuuc$(LibraryConfigSuffix).lib"
if exist "$(WebKitLibrariesDir)\lib\icuin$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\icuin$(LibraryConfigSuffix).lib" "$(IntDir)\lib\libicuin$(LibraryConfigSuffix).lib"

if exist "$(WebKitLibrariesDir)\lib\libicuuc$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\libicuuc$(LibraryConfigSuffix).lib" "$(IntDir)\lib"
if exist "$(WebKitLibrariesDir)\lib\libicuin$(LibraryConfigSuffix).lib" copy /y "$(WebKitLibrariesDir)\lib\libicuin$(LibraryConfigSuffix).lib" "$(IntDir)\lib"

cmd /c
" + /> + <Tool Name="VCResourceCompilerTool" AdditionalIncludeDirectories="$(WebKitOutputDir)\obj\WebKit2\" /> -- WebKit Debian packaging
联系客服