From patchwork Fri Sep 13 02:16:28 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: setup: check if mercurial/util.h has been modified when building extesions From: elson.wei@gmail.com X-Patchwork-Id: 2432 Message-Id: To: mercurial-devel@selenic.com Date: Fri, 13 Sep 2013 10:16:28 +0800 # HG changeset patch # User Wei, Elson # Date 1379037657 -28800 # Fri Sep 13 10:00:57 2013 +0800 # Node ID f3beb092c0285cd118c4af05688495f05aca8f3a # Parent 2568e12faa83466c0a350eb6fe64ba5ce7eaa77d setup: check if mercurial/util.h has been modified when building extesions If mercurial/utils.h has been modified but *.c don't, No extesion is built. diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -423,14 +423,21 @@ pymodules = [] +common_depends = ['mercurial/util.h'] + extmodules = [ - Extension('mercurial.base85', ['mercurial/base85.c']), - Extension('mercurial.bdiff', ['mercurial/bdiff.c']), - Extension('mercurial.diffhelpers', ['mercurial/diffhelpers.c']), - Extension('mercurial.mpatch', ['mercurial/mpatch.c']), + Extension('mercurial.base85', ['mercurial/base85.c'], + depends=common_depends), + Extension('mercurial.bdiff', ['mercurial/bdiff.c'], + depends=common_depends), + Extension('mercurial.diffhelpers', ['mercurial/diffhelpers.c'], + depends=common_depends), + Extension('mercurial.mpatch', ['mercurial/mpatch.c'], + depends=common_depends), Extension('mercurial.parsers', ['mercurial/dirs.c', 'mercurial/parsers.c', - 'mercurial/pathencode.c']), + 'mercurial/pathencode.c'], + depends=common_depends), ] osutil_ldflags = [] @@ -443,7 +450,8 @@ pymodules.append('mercurial.pure.osutil') else: extmodules.append(Extension('mercurial.osutil', ['mercurial/osutil.c'], - extra_link_args=osutil_ldflags)) + extra_link_args=osutil_ldflags, + depends=common_depends)) # the -mno-cygwin option has been deprecated for years Mingw32CCompiler = cygwinccompiler.Mingw32CCompiler @@ -467,7 +475,8 @@ if hasfunction(cc, 'inotify_add_watch'): inotify = Extension('hgext.inotify.linux._inotify', ['hgext/inotify/linux/_inotify.c'], - ['mercurial']) + ['mercurial'], + depends=common_depends) inotify.optional = True extmodules.append(inotify) packages.extend(['hgext.inotify', 'hgext.inotify.linux'])