Mercurial > hg
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 ] |