| 14 | |
| 15 | |
| 16 | class build(Command): |
| 17 | |
| 18 | description = "build everything needed to install" |
| 19 | |
| 20 | user_options = [ |
| 21 | ('build-base=', 'b', |
| 22 | "base directory for build library"), |
| 23 | ('build-purelib=', None, |
| 24 | "build directory for platform-neutral distributions"), |
| 25 | ('build-platlib=', None, |
| 26 | "build directory for platform-specific distributions"), |
| 27 | ('build-lib=', None, |
| 28 | "build directory for all distribution (defaults to either " + |
| 29 | "build-purelib or build-platlib"), |
| 30 | ('build-scripts=', None, |
| 31 | "build directory for scripts"), |
| 32 | ('build-temp=', 't', |
| 33 | "temporary build directory"), |
| 34 | ('plat-name=', 'p', |
| 35 | "platform name to build for, if supported " |
| 36 | "(default: %s)" % get_platform()), |
| 37 | ('compiler=', 'c', |
| 38 | "specify the compiler type"), |
| 39 | ('parallel=', 'j', |
| 40 | "number of parallel build jobs"), |
| 41 | ('debug', 'g', |
| 42 | "compile extensions and libraries with debugging information"), |
| 43 | ('force', 'f', |
| 44 | "forcibly build everything (ignore file timestamps)"), |
| 45 | ('executable=', 'e', |
| 46 | "specify final destination interpreter path (build.py)"), |
| 47 | ] |
| 48 | |
| 49 | boolean_options = ['debug', 'force'] |
| 50 | |
| 51 | help_options = [ |
| 52 | ('help-compiler', None, |
| 53 | "list available compilers", show_compilers), |
| 54 | ] |
| 55 | |
| 56 | def initialize_options(self): |
| 57 | self.build_base = 'build' |
| 58 | # these are decided only after 'build_base' has its final value |
| 59 | # (unless overridden by the user or client) |
| 60 | self.build_purelib = None |
| 61 | self.build_platlib = None |
| 62 | self.build_lib = None |
| 63 | self.build_temp = None |
| 64 | self.build_scripts = None |
| 65 | self.compiler = None |
| 66 | self.plat_name = None |
| 67 | self.debug = None |
| 68 | self.force = 0 |
| 69 | self.executable = None |
| 70 | self.parallel = None |
| 71 | |
| 72 | def finalize_options(self): |
| 73 | if self.plat_name is None: |