Skip to content

Commit e6a5d61

Browse files
committed
add extra options
1 parent d6f06a1 commit e6a5d61

File tree

3 files changed

+31
-4
lines changed

3 files changed

+31
-4
lines changed

CHANGES.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
CHANGES
22
=======
33

4+
0.4.2 (2017-03-15)
5+
------------------
6+
7+
- Added "--qbuild" option for "build_rust" command.
8+
Set "quiet" mode for all extensions.
9+
10+
- Added "--debug" and "--release" options for "build_rust" command.
11+
12+
413
0.4.1 (2017-03-10)
514
------------------
615

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from setuptools import setup
22

3-
version = '0.4.1'
3+
version = '0.4.2'
44

55

66
setup(

setuptools_rust/__init__.py

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,21 @@ class build_rust(Command):
101101
('inplace', 'i',
102102
"ignore build-lib and put compiled extensions into the source " +
103103
"directory alongside your pure Python modules"),
104+
('debug', 'd',
105+
"Force debug to true for all rust extensions "),
106+
('release', 'r',
107+
"Force debug to false for all rust extensions "),
108+
('qbuild', None,
109+
"Force enable quiet option for all rust extensions "),
104110
]
111+
boolean_options = ['inplace', 'debug', 'release', 'qbuild']
105112

106113
def initialize_options(self):
107114
self.extensions = ()
108-
self.inplace = False
115+
self.inplace = None
116+
self.debug = None
117+
self.release = None
118+
self.qbuild = None
109119

110120
def finalize_options(self):
111121
self.extensions = [ext for ext in self.distribution.rust_extensions
@@ -147,12 +157,20 @@ def build_extension(self, ext):
147157
else:
148158
debug_build = ext.debug
149159

160+
debug_build = self.debug if self.debug is not None else debug_build
161+
if self.release:
162+
debug_build = False
163+
164+
quiet = self.qbuild or ext.quiet
165+
150166
# build cargo command
151167
args = (["cargo", "rustc", "--lib", "--manifest-path", ext.path,
152168
"--features", " ".join(features)]
153169
+ list(ext.args or []))
154170
if not debug_build:
155171
args.append("--release")
172+
if quiet:
173+
args.append("-q")
156174

157175
args.extend(["--", '--crate-type', 'cdylib'])
158176

@@ -161,7 +179,7 @@ def build_extension(self, ext):
161179
args.extend(["-C", "link-arg=-undefined",
162180
"-C", "link-arg=dynamic_lookup"])
163181

164-
if not ext.quiet:
182+
if not quiet:
165183
print(" ".join(args), file=sys.stderr)
166184

167185
# Execute cargo
@@ -175,7 +193,7 @@ def build_extension(self, ext):
175193
"Unable to execute 'cargo' - this package "
176194
"requires rust to be installed and cargo to be on the PATH")
177195

178-
if not ext.quiet:
196+
if not quiet:
179197
if isinstance(output, bytes):
180198
output = output.decode('latin-1')
181199
print(output, file=sys.stderr)

0 commit comments

Comments
 (0)