• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            C++博客 聯系 聚合 管理  

            Blog Stats

            文章分類(17)

            收藏夾(2)

            文章檔案(18)

            相冊

            Blogs

            citywanderer

            執行編譯qtwebkit命令:./Tools/Scripts/build-webkit --qt --no-video --debug

            ./Tools/Scripts/build-webkit  590
            588     } elsif (isQt()) { 
            589         #FIXME: $dir should probably be $project.
            590         $result = buildQMakeQtProject($dir, $clean, @options);

            Tools/Scripts/webkitdirs.pm  1788
            1788 sub buildQMakeQtProject($$@)
            1789 {       
            1790     my ($project, $clean, @buildArgs= @_;
            1791         
            1792     return buildQMakeProject("", $clean, @buildArgs);
            1793 }  

            一、Source/DerivedSources.pro 
            Tools/Scripts/webkitdirs.pm  1660
            1659     print "Calling '$qmakebin @dsQmakeArgs' in " . $dir . "\n\n";
            #Calling 'qmake -r OUTPUT_DIR=/root/QtWebKit-2.2.0/WebKitBuild/Debug -r /root/QtWebKit-2.2.0/Source/DerivedSources.pro -o Makefile.DerivedSources' in /root/QtWebKit-2.2.0/WebKitBuild/Debug
            1660     my $result = system "$qmakebin @dsQmakeArgs";
            1661     if ($result ne 0) {
            1662         die "Failed while running $qmakebin to generate derived sources!\n";
            1663     }
            Source/DerivedSources.pro 的內容:
            linux-pl6d:~/QtWebKit-2.2.0 # cat Source/DerivedSources.pro 
            TEMPLATE = subdirs
            CONFIG 
            += ordered

            SUBDIRS 
            += \
                    JavaScriptCore
            /DerivedSources.pro \
                    WebCore
            /DerivedSources.pro \
                    WebKit
            /qt/Api/DerivedSources.pro

            webkit2
            : SUBDIRS += WebKit2/DerivedSources.pro

            for(subpro, SUBDIRS) {
                subdir 
            = $${dirname(subpro)}
                subtarget 
            = $$replace(subpro, [^a-zA-Z0-9_], -)
                
            eval($${subtarget}.makefile = "Makefile.DerivedSources")
                
            eval(generated_files-$${subtarget}.commands = (cd $$subdir && $(MAKE) -f Makefile.DerivedSources generated_files))
                QMAKE_EXTRA_TARGETS 
            += generated_files-$${subtarget}
                generated_files
            .depends += generated_files-$${subtarget}
            }

            QMAKE_EXTRA_TARGETS 
            += generated_files
            執行Source/DerivedSources.pro 之后生成三個目錄(JavaScriptCore WebCore WebKit/qt/Api)下的makefile文件(例如:/usr/bin/qmake OUTPUT_DIR=/root/QtWebKit-2.2.0/WebKitBuild/Debug -o Makefile.DerivedSources ../Source/JavaScriptCore/DerivedSources.pro

            二、執行三個目錄下的makefile
            1685     for my $subdir (@subdirs) {
            1686         my $dsMakefile = "Makefile.DerivedSources";
            1687         print "Calling '$make $makeargs -C $subdir -f $dsMakefile generated_files' in " . $dir . "/$subdir\n\n";
            #Calling 'make  -C JavaScriptCore -f Makefile.DerivedSources generated_files' in /root/QtWebKit-2.2.0/WebKitBuild/Debug/JavaScriptCore
            1688         if ($make eq "nmake") {
            1689             my $subdirWindows = $subdir;
            1690             $subdirWindows =~ s:/:\\:g;
            1691             $result = system "pushd $subdirWindows && $make $makeargs -f $dsMakefile generated_files && popd";
            1692         } else {
            1693             $result = system "$make $makeargs -C $subdir -f $dsMakefile generated_files";
            1694         }
            1695         if ($result ne 0) {
            1696             die "Failed to generate ${subdir}'s derived sources!\n";
            1697         }
            1698     }
            1、JavaScriptCore:
            dir="JavaScriptCore";
            qmake OUTPUT_DIR=/root/TestQtWebKit-2.2.0/QtWebKit-2.2.0/WebKitBuild/Debug -o $dir/Makefile.DerivedSources  Source/$dir/DerivedSources.pro;
            make  -C $dir -f Makefile.DerivedSources generated_files;
            在$dir/generated目錄下生成hashtable頭文件:DatePrototype.lut.hJSONObject.lut.h……
            2、WebCore
            dir="";qmake;make;同上
            執行Source/WebCore/bindings/scripts/generate-bindings.pl腳本,輸入參數為Source/WebCore/目錄下的各種idl文件
            83 $codeGen->ProcessDocument($document, $defines);
            Source/WebCore/bindings/scripts/CodeGenerator.pm
            148         $codeGenerator->GenerateInterface($class, $defines);
            Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
            生成WebCore/generated目錄下的各種JS頭文件、cpp文件,例如:JSComment.h JSComment.cpp等等 
             117     # Open files for writing
             118     my $headerFileName = "$outputDir/JS$name.h";
             
            119     my $implFileName = "$outputDir/JS$name.cpp";
             
            120     my $depsFileName = "$outputDir/JS$name.dep";
             
            121 
             
            122     # Remove old dependency file.
             123     unlink($depsFileName);
             
            124 
             
            125     open($IMPL, ">$implFileName"|| die "Couldn't open file $implFileName";
             
            126     open($HEADER, ">$headerFileName"|| die "Couldn't open file $headerFileName";
             
            127     if (@depsContent) {
             
            128         open($DEPS, ">$depsFileName"|| die "Couldn't open file $depsFileName";
             
            129     }

              84 sub finish
              
            85 {   
              
            86     my $object = shift;
              
            87     
              
            88     # Commit changes!
              89     $object->WriteData();
              
            90 }
             3、WebKit/qt/Api
            dir="";qmake;make;同上
            生成include/QtWebKit/目錄下文件:qwebframe.h QWebHitTestResult

            四、Source/WebKit.pro 生成makefile
            1725     $result = system "$qmakebin @buildArgs";

            qmake -r OUTPUT_DIR=/root/TestQtWebKit-2.2.0/QtWebKit-2.2.0/WebKitBuild/Debug CONFIG-=release CONFIG+=debug /root/TestQtWebKit-2.2.0/QtWebKit-2.2.0/Source/WebKit.pro
            根據Source/WebKit/qt/declarative/、Source/WebKit/qt/tests/目錄下的所有pro文件生成WebKitBuild/Debug/WebKit/qt目錄下的Makefile文件

            五、Tools/Tools.pro 生成Makefile
            qmake -r OUTPUT_DIR=/root/TestQtWebKit-2.2.0/QtWebKit-2.2.0/WebKitBuild/Debug CONFIG-=release CONFIG+=debug /root/TestQtWebKit-2.2.0/QtWebKit-2.2.0/Tools/Tools.pro -o Makefile.Tools

            六、Source/WebKit/qt/examples/examples.pro
            qmake -r OUTPUT_DIR=/root/TestQtWebKit-2.2.0/QtWebKit-2.2.0/WebKitBuild/Debug CONFIG-=release CONFIG+=debug /root/TestQtWebKit-2.2.0/QtWebKit-2.2.0/Source/WebKit/qt/examples/examples.pro

            七、執行make
            Tools/Scripts/webkitdirs.pm
            1780       $result = system "$make $makeargs";

            如下目錄下執行
            Source/JavaScriptCore Source/JavaScriptGlue Source/ThirdParty/ANGLE Source/WebCore Source/WebKit Source/WebKit2 Tools















               
            posted on 2012-02-06 23:20 citywanderer 閱讀(2966) 評論(0)  編輯 收藏 引用
            97久久国产亚洲精品超碰热| 久久经典免费视频| 久久精品国产亚洲AV无码偷窥| 国产精品国色综合久久| 久久66热人妻偷产精品9| 精品国产VA久久久久久久冰 | 91久久婷婷国产综合精品青草| 色综合久久久久综合99| 精品久久久久久亚洲精品 | 亚洲AV无码久久精品狠狠爱浪潮| 99久久er这里只有精品18| 欧美成a人片免费看久久| 国产91色综合久久免费| 日韩人妻无码一区二区三区久久99| 久久精品无码专区免费青青| 久久精品无码一区二区三区免费| 亚洲国产欧洲综合997久久| 国产精品美女久久久免费| 久久久久久九九99精品| 久久人人爽人人爽人人av东京热 | 久久久久免费精品国产| 久久国产精品国语对白| 久久久精品午夜免费不卡| 亚洲国产另类久久久精品黑人| 亚洲国产成人久久笫一页| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产精品热久久无码av| 亚洲国产精品综合久久一线| 久久精品男人影院| AV狠狠色丁香婷婷综合久久| 久久毛片一区二区| 无码人妻少妇久久中文字幕| 久久国产香蕉视频| 亚洲国产精品久久久久| 久久精品视频网| 亚洲一区中文字幕久久| 天天综合久久久网| 亚洲国产精品久久66| 国产激情久久久久影院| 国产精品成人无码久久久久久| 精品国产福利久久久|