2009-12-07 Yaar Schnitman <yaar@chromium.org>
authoreric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 7 Dec 2009 20:17:20 +0000 (20:17 +0000)
committereric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 7 Dec 2009 20:17:20 +0000 (20:17 +0000)
        Reviewed by Darin Fisher.

        fixes to build-webkit --chromium
        https://bugs.webkit.org/show_bug.cgi?id=32179

        * DEPS:
        * WebKit.gyp:
        * gyp_webkit:
2009-12-07  Yaar Schnitman  <yaar@chromium.org>

        Reviewed by Darin Fisher.

        fixes to build-webkit --chromium
        https://bugs.webkit.org/show_bug.cgi?id=32179

        * Scripts/webkitdirs.pm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@51788 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/chromium/ChangeLog
WebKit/chromium/DEPS
WebKit/chromium/WebKit.gyp
WebKit/chromium/gyp_webkit
WebKitTools/ChangeLog
WebKitTools/Scripts/webkitdirs.pm

index 5797d3e5d4849853cd365c766369d63101f2b24b..c17a17586ed6c7ebdf566d56bc496dd970e634a4 100644 (file)
@@ -1,3 +1,14 @@
+2009-12-07  Yaar Schnitman  <yaar@chromium.org>
+
+        Reviewed by Darin Fisher.
+
+        fixes to build-webkit --chromium
+        https://bugs.webkit.org/show_bug.cgi?id=32179
+
+        * DEPS:
+        * WebKit.gyp:
+        * gyp_webkit:
+
 2009-12-07  Mikhail Naganov  <mnaganov@chromium.org>
 
         Reviewed by Pavel Feldman.
index 07e385baf90b4487bcc422b9986144fb0e517bea..fc90187860db5ae487f81801b05e73d18844642f 100644 (file)
@@ -143,6 +143,14 @@ deps_os = {
     'third_party/pthreads-win32':
       Var('chromium_deps_svn')+'/pthreads-win32@'+Var('pthreads-win32_rev'),
   },
+  'unix': {
+    # Linux, actually.
+    'third_party/harfbuzz':
+      Var('chromium_svn')+'/third_party/harfbuzz@'+Var('chromium_rev'),
+
+    'tools/xdisplaycheck':
+      Var('chromium_svn')+'/tools/xdisplaycheck@'+Var('chromium_rev'),
+  },
 }
 
 skip_child_includes = [
index d7bd30db8da2a6237d9e42d3059ccf595fb91dab..7c0d9132da962b73bd9d003fb041129d8d369a02 100644 (file)
@@ -40,6 +40,9 @@
                 # Webkit is being built outside of the full chromium project.
                 # e.g. via build-webkit --chromium
                 'chromium_src_dir': '.',
+                # FIXME: To enable shared_library in linux all code (including
+                # dependencies) must be complied with -fPIC flag. That is
+                # pending on changes in gyp.
                 'webkit_target_type': 'shared_library',
             },{
                 # WebKit is checked out in src/chromium/third_party/WebKit
             ['OS=="mac"', {
                 'chromium_code': 1,
             }],
+            # FIXME: To enable shared_library in linux all code (including
+            # dependencies) must be complied with -fPIC flag. That is
+            # pending on changes in gyp.
+            ['OS=="linux" or OS=="freebsd"', {
+              'webkit_target_type': 'static_library',
+            }],
         ],
     },
     'targets': [
index 810af543768cfb389f6a7cf53753822266ad088a..ef182399de093a590eef85289790b07ea17ca66c 100644 (file)
@@ -32,6 +32,7 @@
 
 import glob
 import os
+import platform
 import shlex
 import sys
 
@@ -76,6 +77,10 @@ if __name__ == '__main__':
   # Add includes.
   args.extend(['-I' + i for i in additional_include_files(args)])
 
+  # On linux, we want gyp to output a makefile (default is scons).
+  if (platform.system() == 'Linux'):
+    args.extend(['-fmake'])
+
   # Other command args:
   args.extend([
                # gyp variable defines.
@@ -87,7 +92,7 @@ if __name__ == '__main__':
                '--depth=./',
 
                # gyp file to execute.
-               'webkit.gyp'])
+               'WebKit.gyp'])
 
   print 'Updating webkit projects from gyp files...'
   sys.stdout.flush()
index 02cd2761a70e9c1e45278f831c737ea39b43dbd3..55bfd5e9f4885d947b903de3af427044eba70a27 100644 (file)
@@ -1,3 +1,12 @@
+2009-12-07  Yaar Schnitman  <yaar@chromium.org>
+
+        Reviewed by Darin Fisher.
+
+        fixes to build-webkit --chromium
+        https://bugs.webkit.org/show_bug.cgi?id=32179
+
+        * Scripts/webkitdirs.pm:
+
 2009-12-07  Eric Seidel  <eric@webkit.org>
 
         No review, just adding two recently approved committers.
index 9e0c271fe7e285fe77e9651eab83e2fde0e2869b..ae3370879ff500a32877a94785558f11c27b5704 100644 (file)
@@ -1131,9 +1131,6 @@ sub buildVisualStudioProject
     }
 
     my $useenv = "/useenv";
-    if (isChromium()) {
-        $useenv = "";
-    }
 
     my @command = ($vcBuildPath, $useenv, $winProjectPath, $action, $config);
 
@@ -1405,6 +1402,46 @@ sub buildGtkProject($$@)
     return buildAutotoolsProject($clean, @buildArgs);
 }
 
+sub buildChromiumMakefile($$$)
+{
+    my ($dir, $target, $clean) = @_;
+    chdir $dir;
+    if ($clean) {
+        return system qw(rm -rf out);
+    }
+    my $config = configuration();
+    my @command = ("make", "-j4", "BUILDTYPE=$config", $target);
+    print join(" ", @command) . "\n";
+    return system @command;
+}
+
+sub buildChromiumVisualStudioProject($$)
+{
+    my ($projectPath, $clean) = @_;
+
+    my $config = configuration();
+    my $action = "/build";
+    $action = "/clean" if $clean;
+
+    # Find Visual Studio installation.
+    my $vsInstallDir;
+    my $programFilesPath = $ENV{'PROGRAMFILES'} || "C:\\Program Files";
+    if ($ENV{'VSINSTALLDIR'}) {
+        $vsInstallDir = $ENV{'VSINSTALLDIR'};
+    } else {
+        $vsInstallDir = "$programFilesPath/Microsoft Visual Studio 8";
+    }
+    $vsInstallDir = `cygpath "$vsInstallDir"` if isCygwin();
+    chomp $vsInstallDir;
+    $vcBuildPath = "$vsInstallDir/Common7/IDE/devenv.com";
+
+    # Create command line and execute it.
+    my @command = ($vcBuildPath, $projectPath, $action, $config);
+    print "Building results into: ", baseProductDir(), "\n";
+    print join(" ", @command), "\n";
+    return system @command;
+}
+
 sub buildChromium($@)
 {
     my ($clean, @options) = @_;
@@ -1412,19 +1449,15 @@ sub buildChromium($@)
     my $result = 1;
     if (isDarwin()) {
         # Mac build - builds the root xcode project.
-        $result = buildXCodeProject("WebKit/chromium/webkit",
-                                    $clean,
-                                    (@options));
-    } elsif (isCygwin()) {
+        $result = buildXCodeProject("WebKit/chromium/WebKit", $clean, (@options));
+    } elsif (isCygwin() || isWindows()) {
         # Windows build - builds the root visual studio solution.
-        $result = buildVisualStudioProject("WebKit/chromium/webkit.sln",
-                                           $clean);
+        $result = buildChromiumVisualStudioProject("WebKit/chromium/WebKit.sln", $clean);
     } elsif (isLinux()) {
-        # Linux build
-        # FIXME support linux.
-        print STDERR "Linux build is not supported. Yet.";
+        # Linux build - build using make.
+        $ result = buildChromiumMakefile("WebKit/chromium/", "WebKit", $clean);
     } else {
-        print STDERR "This platform is not supported by chromium.";
+        print STDERR "This platform is not supported by chromium.\n";
     }
     return $result;
 }