Kaynağa Gözat

add support performing a clean build

Ashish Kulkarni 11 yıl önce
ebeveyn
işleme
d4b162850d
1 değiştirilmiş dosya ile 19 ekleme ve 5 silme
  1. 19 5
      scripts/build.py

+ 19 - 5
scripts/build.py

@@ -174,9 +174,14 @@ BUILDERS = {
 }
 
 BUILDER_FLAGS = {
+    'msvc':          ['clean'],
+    'msvc_winsdk71': ['clean'],
+    'linux_schroot': ['clean'],
+    'mingw64_cross': ['clean'],
 }
 
 FLAG_HELP = {
+    'clean': 'performs a clean build (instead of an incremental build)'
 }
 
 # --------------------------------------------------------------- HELPERS
@@ -279,7 +284,7 @@ def check_msvc(config):
                        and not exists(os.path.join(vcdir, 'bin', 'x86_amd64', 'cl.exe')):
         error("%s: unable to find the amd64 compiler" % version)
 
-def build_msvc(config, basedir):
+def build_msvc(config, basedir, clean):
     msvc, arch = config.split('-')
     vcdir = os.path.join(os.environ[MSVC_LOCATION[msvc]], '..', '..', 'VC')
     vcarg = 'x86'
@@ -299,7 +304,7 @@ def build_msvc(config, basedir):
 
     os.environ.update(eval(stdout.strip()))
 
-    build_msvc_winsdk71(config, basedir)
+    build_msvc_winsdk71(config, basedir, clean)
 
 # --------------------------------------------------------------- MSVC via Windows SDK 7.1
 
@@ -323,7 +328,10 @@ def check_msvc_winsdk71(config):
     if os.environ['TARGET_CPU'] == 'x64' and config == 'msvc2010-win32':
         error("Error: SDK configured for x64 but trying to build 32-bit.")
 
-def build_msvc_winsdk71(config, basedir):
+def build_msvc_winsdk71(config, basedir, clean):
+    if clean:
+        rmdir(os.path.join(basedir, config))
+
     ssl_libs = build_openssl(config, basedir)
 
     ssldir = os.path.join(basedir, config, 'openssl')
@@ -378,7 +386,10 @@ MINGW_W64_PREFIX = {
 def check_mingw64_cross(config):
     shell('%s-gcc --version' % MINGW_W64_PREFIX[config])
 
-def build_mingw64_cross(config, basedir):
+def build_mingw64_cross(config, basedir, clean):
+    if clean:
+        rmdir(os.path.join(basedir, config))
+
     ssl_libs = build_openssl(config, basedir)
 
     ssldir = os.path.join(basedir, config, 'openssl')
@@ -426,7 +437,10 @@ def build_mingw64_cross(config, basedir):
 def check_linux_schroot(config):
     shell('schroot -c wkhtmltopdf-%s -- gcc --version' % config)
 
-def build_linux_schroot(config, basedir):
+def build_linux_schroot(config, basedir, clean):
+    if clean:
+        rmdir(os.path.join(basedir, config))
+
     version, simple_version = get_version(basedir)
 
     dir    = os.path.join(basedir, config)