Browse Source

perform an in-place prefix build for Qt in the build script

This removes the need for installing the patched Qt.
Ashish Kulkarni 11 years ago
parent
commit
6808f14aef
1 changed files with 11 additions and 22 deletions
  1. 11 22
      scripts/build.py

+ 11 - 22
scripts/build.py

@@ -75,6 +75,7 @@ QT_CONFIG = {
         '-no-phonon-backend',
         '-no-opengl',
         '-no-declarative',
+        '-no-script',
         '-no-scripttools',
         '-no-sql-ibase',
         '-no-sql-mysql',
@@ -97,7 +98,6 @@ QT_CONFIG = {
 
     'msvc': [
         '-mp',
-        '-no-script',
         '-qt-style-windows',
         '-qt-style-cleanlooks',
         '-no-style-windowsxp',
@@ -110,7 +110,6 @@ QT_CONFIG = {
 
     'posix': [
         '-silent',                  # perform a silent build
-        '-script',                  # "make install" does not copy QtScript/qscriptengine.h
         '-xrender',                 # xrender support is required
         '-largefile',
         '-rpath',
@@ -147,7 +146,6 @@ QT_CONFIG = {
 
     'mingw-w64-cross' : [
         '-silent',                  # perform a silent build
-        '-script',                  # "make install" does not copy QtScript/qscriptengine.h
         '-openssl-linked',          # static linkage for OpenSSL
         '-no-reduce-exports',
         '-no-rpath',
@@ -610,11 +608,8 @@ def build_mingw64_cross(config, basedir):
     ssl_libs = build_openssl(config, basedir)
 
     ssldir = os.path.join(basedir, config, 'openssl')
-    build  = os.path.join(basedir, config, 'qt_build')
     qtdir  = os.path.join(basedir, config, 'qt')
 
-    mkdir_p(build)
-
     configure_args = qt_config('mingw-w64-cross',
         '--prefix=%s'   % qtdir,
         '-I %s/include' % ssldir,
@@ -623,22 +618,22 @@ def build_mingw64_cross(config, basedir):
 
     os.environ['OPENSSL_LIBS'] = '-lssl -lcrypto -L %s/lib %s' % (ssldir, ssl_libs)
 
-    os.chdir(build)
+    mkdir_p(qtdir)
+    os.chdir(qtdir)
+
     if not exists('is_configured'):
         for var in ['CFLAGS', 'CXXFLAGS']:
             os.environ[var] = '-w'
         shell('%s/../qt/configure %s' % (basedir, configure_args))
         shell('touch is_configured')
     shell('make -j%d' % CPU_COUNT)
-    shell('make install')
 
     appdir = os.path.join(basedir, config, 'app')
     mkdir_p(appdir)
     os.chdir(appdir)
     shell('rm -f bin/*')
 
-    # set up cross compiling prefix correctly (isn't set by make install)
-    os.environ['QTDIR'] = qtdir
+    # set up cross compiling prefix correctly
     os.environ['WKHTMLTOX_VERSION'] = version
     shell('%s/bin/qmake -set CROSS_COMPILE %s-' % (qtdir, MINGW_W64_PREFIX[rchop(config, '-dbg')]))
     shell('%s/bin/qmake -spec win32-g++-4.6 %s/../wkhtmltopdf.pro' % (qtdir, basedir))
@@ -661,19 +656,17 @@ def build_linux_schroot(config, basedir):
     script = os.path.join(dir, 'build.sh')
     dist   = os.path.join(dir, 'wkhtmltox-%s' % version)
 
-    mkdir_p(os.path.join(dir, 'qt_build'))
-    mkdir_p(os.path.join(dir, 'app'))
-
     rmdir(dist)
     mkdir_p(os.path.join(dist, 'bin'))
     mkdir_p(os.path.join(dist, 'include', 'wkhtmltox'))
     mkdir_p(os.path.join(dist, 'lib'))
 
-    configure_args = qt_config('posix', '--prefix=../qt')
+    configure_args = qt_config('posix', '--prefix=%s' % os.path.join(dir, 'qt'))
 
     lines = ['#!/bin/bash']
     lines.append('# start of autogenerated build script')
-    lines.append('cd qt_build')
+    lines.append('mkdir -p app qt')
+    lines.append('cd qt')
     if config == 'centos5-i386':
         lines.append('export CFLAGS="-march=i486 -w"')
         lines.append('export CXXFLAGS="-march=i486 -w"')
@@ -685,7 +678,6 @@ def build_linux_schroot(config, basedir):
     lines.append('  touch is_configured')
     lines.append('fi')
     lines.append('if ! make -j%d -q; then\n  make -j%d || exit 1\nfi' % (CPU_COUNT, CPU_COUNT))
-    lines.append('make install || exit 1')
     lines.append('cd ../app')
     lines.append('rm -f bin/*')
     lines.append('export WKHTMLTOX_VERSION=%s' % version)
@@ -715,12 +707,11 @@ def check_posix_local(config):
 def build_posix_local(config, basedir):
     version, simple_version = get_version(basedir)
 
-    build  = os.path.join(basedir, config, 'qt_build')
     app    = os.path.join(basedir, config, 'app')
     qtdir  = os.path.join(basedir, config, 'qt')
     dist   = os.path.join(basedir, config, 'wkhtmltox-%s' % version)
 
-    mkdir_p(build)
+    mkdir_p(qt)
     mkdir_p(app)
 
     rmdir(dist)
@@ -728,16 +719,14 @@ def build_posix_local(config, basedir):
     mkdir_p(os.path.join(dist, 'include', 'wkhtmltox'))
     mkdir_p(os.path.join(dist, 'lib'))
 
-    os.chdir(build)
+    os.chdir(qt)
     if not exists('is_configured'):
-        shell('../../../qt/configure %s' % qt_config('posix', '--prefix=../qt'))
+        shell('../../../qt/configure %s' % qt_config('posix', '--prefix=%s' % qtdir))
         shell('touch is_configured')
 
     if subprocess.call(['make', '-j%d' % CPU_COUNT]):
         shell('make -j%d' % CPU_COUNT)
 
-    shell('make install')
-
     os.chdir(app)
     shell('rm -f bin/*')
     os.environ['WKHTMLTOX_VERSION'] = version