History

python/setup.py: add command 'generate' with option '--enable-double'

Paul Brossier committed 10 years ago

Commit a89ed311 parent 07867cd5 files · +58 −22Browse files

Showing the changes to python/lib (2 of 5 files). Show all

Unified · Split

2 files
  1. python/lib/gen_external.py +13 −5
  2. python/lib/moresetuptools.py +30 −0
python/lib/gen_external.py+13−5
@@ -1,4 +1,4 @@
1import os1import os, glob
2 2
3header = """// this file is generated! do not modify3header = """// this file is generated! do not modify
4#include "aubio-types.h"4#include "aubio-types.h"
@@ -66,8 +66,9 @@ def get_cpp_objects(): · 61 unmodified lines
66 66
67 return cpp_output, cpp_objects67 return cpp_output, cpp_objects
68 68
69def generate_external(output_path, usedouble = False):69def generate_external(output_path, usedouble = False, overwrite = True):
70 if not os.path.isdir(output_path): os.mkdir(output_path)70 if not os.path.isdir(output_path): os.mkdir(output_path)
71 elif overwrite == False: return glob.glob(os.path.join(output_path, '*.c'))
71 sources_list = []72 sources_list = []
72 cpp_output, cpp_objects = get_cpp_objects()73 cpp_output, cpp_objects = get_cpp_objects()
73 lib = {}74 lib = {}
@@ -160,10 +161,17 @@ void add_generated_objects ( PyObject *m ) · 86 unmodified lines
160 sources_list.append(output_file)161 sources_list.append(output_file)
161 162
162 objlist = "".join(["extern PyTypeObject Py_%sType;\n" % p for p in lib])163 objlist = "".join(["extern PyTypeObject Py_%sType;\n" % p for p in lib])
163 out = """164 out = """// generated list of objects created with gen_external.py
164// generated list of objects created with gen_external.py
165#include <Python.h>
166 165
166#include <Python.h>
167"""
168 if usedouble:
169 out += """
170#ifndef HAVE_AUBIO_DOUBLE
171#define HAVE_AUBIO_DOUBLE 1
172#endif
173"""
174 out += """
167{objlist}175{objlist}
168int generated_objects ( void );176int generated_objects ( void );
169void add_generated_objects( PyObject *m );177void add_generated_objects( PyObject *m );
python/lib/moresetuptools.py+30−0
@@ -0,0 +1,30 @@
1import distutils, os, subprocess
2import setuptools.command.build_py
3import distutils.command.clean
4from distutils.dir_util import remove_tree
5
6class CleanGenerated(distutils.command.clean.clean):
7 def run(self):
8 remove_tree('gen')
9 distutils.command.clean.clean.run(self)
10
11class GenerateCommand(distutils.cmd.Command):
12 description = 'generate gen/gen-*.c files from ../src/aubio.h'
13 user_options = [
14 # The format is (long option, short option, description).
15 ('enable-double', None, 'use HAVE_AUBIO_DOUBLE=1 (default: 0)'),
16 ]
17
18 def initialize_options(self):
19 self.enable_double = False
20
21 def finalize_options(self):
22 if self.enable_double:
23 self.announce(
24 'will generate code for aubio compiled with HAVE_AUBIO_DOUBLE=1',
25 level=distutils.log.INFO)
26
27 def run(self):
28 self.announce( 'Generating code', level=distutils.log.INFO)
29 from .gen_external import generate_external
30 generated_object_files = generate_external('gen', usedouble = self.enable_double)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t