• <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++博客 聯(lián)系 聚合 管理  

            Blog Stats

            文章分類(17)

            收藏夾(2)

            文章檔案(18)

            相冊(cè)

            Blogs

            citywanderer

            執(zhí)行編譯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 的內(nèi)容:
            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
            執(zhí)行Source/DerivedSources.pro 之后生成三個(gè)目錄(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

            二、執(zhí)行三個(gè)目錄下的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;同上
            執(zhí)行Source/WebCore/bindings/scripts/generate-bindings.pl腳本,輸入?yún)?shù)為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
            根據(jù)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

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

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















               
            posted on 2012-02-06 23:20 citywanderer 閱讀(2959) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            国内精品人妻无码久久久影院| 亚洲伊人久久综合中文成人网| 久久免费精品一区二区| 久久久久久国产精品美女| 亚洲精品第一综合99久久 | 欧美伊人久久大香线蕉综合| 久久国产高潮流白浆免费观看| 国产精品日韩深夜福利久久| 亚洲精品美女久久久久99| 国产日韩久久免费影院| 久久精品一本到99热免费| 香蕉久久影院| 国内精品久久久久久麻豆| 久久综合噜噜激激的五月天| 久久露脸国产精品| av午夜福利一片免费看久久| 久久天天躁狠狠躁夜夜avapp| 久久国产视频网| 日本福利片国产午夜久久| 久久国产乱子伦免费精品| 亚洲中文久久精品无码ww16| 日韩亚洲国产综合久久久| 国产精品热久久毛片| 久久99国产精品久久久| 久久精品无码专区免费青青| 色8久久人人97超碰香蕉987| 国内精品伊人久久久久妇| 久久婷婷人人澡人人| 久久国产乱子伦精品免费午夜| 97精品国产91久久久久久| 国产综合久久久久| 久久精品亚洲日本波多野结衣| 浪潮AV色综合久久天堂| 99久久精品免费看国产一区二区三区 | 国产精品久久永久免费| 97精品久久天干天天天按摩| 久久精品aⅴ无码中文字字幕重口| 亚洲精品美女久久777777| 久久久久久国产精品免费无码| 久久国产精品无码一区二区三区| 欧美亚洲色综久久精品国产|