• <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   管理


            热RE99久久精品国产66热| 色综合久久88色综合天天| 精品久久久久久久久免费影院| 国产精品一区二区久久精品无码| 国产精品久久久久久影院 | 久久久久人妻一区精品| 久久综合狠狠综合久久97色| 中文字幕人妻色偷偷久久| 久久香蕉国产线看观看乱码| 四虎国产精品成人免费久久| 精品人妻久久久久久888| 国产精品免费看久久久香蕉| 亚洲国产精品成人久久| 久久青青国产| 久久久久久久尹人综合网亚洲 | 亚洲一区二区三区日本久久九| 久久久这里只有精品加勒比| 国产亚洲欧美成人久久片 | 秋霞久久国产精品电影院| 久久笫一福利免费导航| 青青青国产精品国产精品久久久久| 精品无码久久久久国产动漫3d| 99久久久久| 国内精品久久久久久99| 久久久久久伊人高潮影院| 伊人久久大香线焦综合四虎| 亚洲国产精品18久久久久久| 久久久久无码中| 久久综合九色综合精品| 精品久久久久久无码专区不卡| 久久久久久久综合狠狠综合| 久久性精品| 久久伊人五月天论坛| 久久久久久久久久免免费精品 | 久久精品国产亚洲AV高清热| 日韩人妻无码一区二区三区久久99 | 久久天天躁狠狠躁夜夜不卡 | 99久久综合国产精品免费| 久久亚洲欧洲国产综合| 亚洲v国产v天堂a无码久久| 热久久国产欧美一区二区精品|