From 98c2dc18cfb0c2ac4ea5f99fdb29096914f9b6cf Mon Sep 17 00:00:00 2001 From: "binji@chromium.org" Date: Mon, 1 Oct 2012 19:28:23 +0000 Subject: [NaCl SDK] Add --no-clobber-examples to improve iteration time when working on examples. BUG=none R=noelallen@chromium.org Review URL: https://codereview.chromium.org/10993082 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@159536 0039d316-1c4b-4281-b951-d872f2087c98 --- native_client_sdk/src/build_tools/build_sdk.py | 31 +++++++++++++++------- native_client_sdk/src/build_tools/generate_make.py | 4 +++ 2 files changed, 25 insertions(+), 10 deletions(-) (limited to 'native_client_sdk') diff --git a/native_client_sdk/src/build_tools/build_sdk.py b/native_client_sdk/src/build_tools/build_sdk.py index d7e9588..fc3be22 100755 --- a/native_client_sdk/src/build_tools/build_sdk.py +++ b/native_client_sdk/src/build_tools/build_sdk.py @@ -581,7 +581,7 @@ LIB_DICT = { 'win': ['x86_32'] } -def BuildStepCopyExamples(pepperdir, toolchains, build_experimental): +def BuildStepCopyExamples(pepperdir, toolchains, build_experimental, clobber): buildbot_common.BuildStep('Copy examples') if not os.path.exists(os.path.join(pepperdir, 'tools')): @@ -590,11 +590,13 @@ def BuildStepCopyExamples(pepperdir, toolchains, build_experimental): buildbot_common.ErrorExit('Examples depend on missing toolchains.') exampledir = os.path.join(pepperdir, 'examples') - buildbot_common.RemoveDir(exampledir) + if clobber: + buildbot_common.RemoveDir(exampledir) buildbot_common.MakeDir(exampledir) libdir = os.path.join(pepperdir, 'lib') - buildbot_common.RemoveDir(libdir) + if clobber: + buildbot_common.RemoveDir(libdir) buildbot_common.MakeDir(libdir) plat = getos.GetPlatform() @@ -610,7 +612,8 @@ def BuildStepCopyExamples(pepperdir, toolchains, build_experimental): srcdir = os.path.join(pepperdir, 'src') - buildbot_common.RemoveDir(srcdir) + if clobber: + buildbot_common.RemoveDir(srcdir) buildbot_common.MakeDir(srcdir) @@ -781,11 +784,12 @@ TEST_LIBRARY_LIST = [ 'gtest_ppapi', ] -def BuildStepCopyTests(pepperdir, toolchains, build_experimental): +def BuildStepCopyTests(pepperdir, toolchains, build_experimental, clobber): buildbot_common.BuildStep('Copy Tests') testingdir = os.path.join(pepperdir, 'testing') - buildbot_common.RemoveDir(testingdir) + if clobber: + buildbot_common.RemoveDir(testingdir) buildbot_common.MakeDir(testingdir) args = ['--dstroot=%s' % pepperdir, '--master'] @@ -875,6 +879,9 @@ def main(args): parser = optparse.OptionParser() parser.add_option('--examples', help='Only build the examples.', action='store_true', dest='only_examples', default=False) + parser.add_option('--clobber-examples', + help='Don\'t examples directory before copying new files', + action='store_true', dest='clobber_examples', default=False) parser.add_option('--update', help='Only build the updater.', action='store_true', dest='only_updater', default=False) parser.add_option('--test-examples', @@ -924,10 +931,12 @@ def main(args): print 'Building PEPPER %s at %s' % (pepper_ver, clnumber) if options.only_examples: - BuildStepCopyExamples(pepperdir, toolchains, options.build_experimental) + BuildStepCopyExamples(pepperdir, toolchains, options.build_experimental, + options.clobber_examples) BuildStepBuildLibraries(pepperdir, platform, 'src') BuildStepBuildExamples(pepperdir, platform) - BuildStepCopyTests(pepperdir, toolchains, options.build_experimental) + BuildStepCopyTests(pepperdir, toolchains, options.build_experimental, + options.clobber_examples) BuildStepBuildTests(pepperdir, platform) if options.test_examples: BuildStepRunPyautoTests(pepperdir, platform, pepper_ver) @@ -944,7 +953,8 @@ def main(args): BuildStepBuildToolchains(pepperdir, platform, arch, pepper_ver, toolchains) InstallHeaders(os.path.join(pepperdir, 'include'), None, 'libs') BuildStepCopyBuildHelpers(pepperdir, platform) - BuildStepCopyExamples(pepperdir, toolchains, options.build_experimental) + BuildStepCopyExamples(pepperdir, toolchains, options.build_experimental, + True) # Ship with libraries prebuilt, so run that first. BuildStepBuildLibraries(pepperdir, platform, 'src') @@ -957,7 +967,8 @@ def main(args): # the examples and test from this directory instead of the original. pepperdir = BuildStepTestUpdater(platform, pepper_ver, clnumber, tarfile) BuildStepBuildExamples(pepperdir, platform) - BuildStepCopyTests(pepperdir, toolchains, options.build_experimental) + BuildStepCopyTests(pepperdir, toolchains, options.build_experimental, + True) BuildStepBuildTests(pepperdir, platform) if options.test_examples: BuildStepRunPyautoTests(pepperdir, platform, pepper_ver) diff --git a/native_client_sdk/src/build_tools/generate_make.py b/native_client_sdk/src/build_tools/generate_make.py index 887b8eae7..3e78365 100755 --- a/native_client_sdk/src/build_tools/generate_make.py +++ b/native_client_sdk/src/build_tools/generate_make.py @@ -417,6 +417,10 @@ def FindAndCopyFiles(src_files, root, search_dirs, dst_dir): ErrorMsgFunc('Failed to find: ' + src_name) return None dst_file = os.path.join(dst_dir, src_name) + if os.path.exists(dst_file): + if os.stat(src_file).st_mtime <= os.stat(dst_file).st_mtime: + print 'Skipping "%s", destination "%s" is newer.' % (src_file, dst_file) + continue buildbot_common.CopyFile(src_file, dst_file) -- cgit v1.1