• <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 閱讀(2959) 評論(0)  編輯 收藏 引用
            国产亚州精品女人久久久久久| 久久精品人人做人人妻人人玩| 国产精品久久久久久吹潮| 久久香蕉超碰97国产精品| 久久精品国产亚洲AV麻豆网站| 99久久99这里只有免费费精品| 91精品国产9l久久久久| 狠狠色综合网站久久久久久久| 久久久久免费视频| 久久精品无码午夜福利理论片| 亚洲国产精品久久久久婷婷软件 | 久久久久亚洲?V成人无码| 婷婷久久综合| 无码日韩人妻精品久久蜜桃| 国产一区二区三区久久| 亚洲精品NV久久久久久久久久| 亚洲精品乱码久久久久久蜜桃不卡 | 久久综合亚洲色HEZYO社区| 亚洲中文字幕无码久久综合网| 色成年激情久久综合| 亚洲AV日韩AV天堂久久| 久久99精品免费一区二区| 久久久精品2019免费观看| 伊人色综合久久天天人守人婷| 久久最新精品国产| 色综合久久久久无码专区| 人妻中文久久久久| 国产精品内射久久久久欢欢| 久久精品亚洲一区二区三区浴池 | 99久久国产综合精品女同图片| 国产成人99久久亚洲综合精品 | 99久久99久久久精品齐齐| 久久精品国产色蜜蜜麻豆| 久久久久亚洲AV综合波多野结衣| 91精品国产91久久久久福利| 久久青青草原亚洲av无码app| 久久精品国产99国产精品导航| 久久综合九色欧美综合狠狠| 久久久久久亚洲精品无码| 久久一区二区免费播放| 亚洲精品久久久www|