comparison setup.py @ 30408:ce9a3033c118

setup: test setproctitle before building osutil We are going to use setproctitle (provided by FreeBSD) if it's available in the next patch. Therefore provide a macro to give some clues to the C pre-processor so it could choose code path wisely.
author Jun Wu <quark@fb.com>
date Fri, 11 Nov 2016 20:45:40 +0000
parents 9cc438bf7d9a
children 788ea4ac4388
comparison
equal deleted inserted replaced
30407:e1677cc29da6 30408:ce9a3033c118
65 from distutils import log 65 from distutils import log
66 if 'FORCE_SETUPTOOLS' in os.environ: 66 if 'FORCE_SETUPTOOLS' in os.environ:
67 from setuptools import setup 67 from setuptools import setup
68 else: 68 else:
69 from distutils.core import setup 69 from distutils.core import setup
70 from distutils.ccompiler import new_compiler
70 from distutils.core import Command, Extension 71 from distutils.core import Command, Extension
71 from distutils.dist import Distribution 72 from distutils.dist import Distribution
72 from distutils.command.build import build 73 from distutils.command.build import build
73 from distutils.command.build_ext import build_ext 74 from distutils.command.build_ext import build_ext
74 from distutils.command.build_py import build_py 75 from distutils.command.build_py import build_py
551 552
552 common_depends = ['mercurial/bitmanipulation.h', 553 common_depends = ['mercurial/bitmanipulation.h',
553 'mercurial/compat.h', 554 'mercurial/compat.h',
554 'mercurial/util.h'] 555 'mercurial/util.h']
555 556
557 osutil_cflags = []
556 osutil_ldflags = [] 558 osutil_ldflags = []
559
560 # platform specific macros: HAVE_SETPROCTITLE
561 for plat, func in [(re.compile('freebsd'), 'setproctitle')]:
562 if plat.search(sys.platform) and hasfunction(new_compiler(), func):
563 osutil_cflags.append('-DHAVE_%s' % func.upper())
557 564
558 if sys.platform == 'darwin': 565 if sys.platform == 'darwin':
559 osutil_ldflags += ['-framework', 'ApplicationServices'] 566 osutil_ldflags += ['-framework', 'ApplicationServices']
560 567
561 extmodules = [ 568 extmodules = [
573 'mercurial/manifest.c', 580 'mercurial/manifest.c',
574 'mercurial/parsers.c', 581 'mercurial/parsers.c',
575 'mercurial/pathencode.c'], 582 'mercurial/pathencode.c'],
576 depends=common_depends), 583 depends=common_depends),
577 Extension('mercurial.osutil', ['mercurial/osutil.c'], 584 Extension('mercurial.osutil', ['mercurial/osutil.c'],
585 extra_compile_args=osutil_cflags,
578 extra_link_args=osutil_ldflags, 586 extra_link_args=osutil_ldflags,
579 depends=common_depends), 587 depends=common_depends),
580 Extension('hgext.fsmonitor.pywatchman.bser', 588 Extension('hgext.fsmonitor.pywatchman.bser',
581 ['hgext/fsmonitor/pywatchman/bser.c']), 589 ['hgext/fsmonitor/pywatchman/bser.c']),
582 ] 590 ]