Python-EFL: some little and stupid cleanup to setup.py and some additions to MANIFEST.in

* Fix clean_generated_files to also include utils
* change format() usage to simple str concat...just to hurt kuuko :)
* remove the usless check for __main__
This commit is contained in:
Davide Andreoli 2013-10-16 22:35:44 +02:00
parent 3b95ccd069
commit f2b7c24f7a
2 changed files with 112 additions and 117 deletions

View File

@ -1 +1,4 @@
include README INSTALL COPYING AUTHORS
recursive-include efl *.c *.h
recursive-include examples *
recursive-include doc *

226
setup.py
View File

@ -8,12 +8,6 @@ from distutils.extension import Extension
from distutils.version import StrictVersion
# Cython
#
# TODO: Move this inside a conditional so that pre-generated .c files
# can be used.
#
# Sphinx
try:
from sphinx.setup_command import BuildDoc
@ -43,46 +37,47 @@ def pkg_config(name, require, min_vers=None):
raise SystemExit("Failed to match version. Found: " + ver + " Needed: " + min_vers)
modules = []
# use cython or pre-generated c files
if os.path.exists(os.path.join(os.getcwd(), "efl", "eo", "efl.eo.pyx")):
module_suffix = "pyx"
module_suffix = ".pyx"
min_ver = "0.17.0"
try:
from Cython.Distutils import build_ext
from Cython.Build import cythonize
import Cython.Compiler.Options
cur_ver = Cython.__version__
assert StrictVersion(cur_ver) >= StrictVersion(min_ver)
#print("Found Cython: %s" % cur_ver)
assert StrictVersion(Cython.__version__) >= StrictVersion(min_ver)
Cython.Compiler.Options.fast_fail = True # stop compilation on first error
Cython.Compiler.Options.annotate = False # HTML file annotation generation
except (ImportError, AssertionError):
raise SystemExit("Requires Cython >= %s (http://cython.org/)" % min_ver)
else:
module_suffix = "c"
module_suffix = ".c"
from distutils.command.build_ext import build_ext
def cythonize(modules, *args, **kwargs):
return modules
class CleanGenerated(Command):
description = "Clean C and html files generated by Cython"
user_options = []
def initialize_options(self): pass
def finalize_options(self): pass
def run(self):
for lib in "eo", "evas", "ecore", "edje", "edje/edit", "emotion", "elementary":
for lib in "eo", "evas", "ecore", "edje", "edje/edit", "emotion", "elementary", "utils":
subprocess.call("rm -rfv efl/{0}/*.c efl/{0}/*.html".format(lib), shell=True)
subprocess.call("rm -rfv efl/dbus_mainloop/dbus_mainloop.c efl/dbus_mainloop/dbus_mainloop.html", shell=True)
modules = []
if set(("build", "build_ext", "install", "bdist", "sdist")) & set(sys.argv):
# Eo
eo_cflags, eo_libs = pkg_config('Eo', 'eo', "1.7.99")
eina_cflags, eina_libs = pkg_config('Eina', 'eina', "1.7.99")
eo_ext = Extension("eo", ["efl/eo/efl.eo.{0}".format(module_suffix)],
eo_ext = Extension("eo", ["efl/eo/efl.eo"+module_suffix],
define_macros = [('EFL_BETA_API_SUPPORT', None)],
include_dirs = ['include/'],
extra_compile_args = eo_cflags,
@ -91,8 +86,8 @@ if set(("build", "build_ext", "install", "bdist", "sdist")) & set(sys.argv):
# Utilities
utils_ext = [
Extension("utils.deprecated", ["efl/utils/deprecated.{0}".format(module_suffix)]),
Extension("utils.conversions", ["efl/utils/conversions.{0}".format(module_suffix)],
Extension("utils.deprecated", ["efl/utils/deprecated"+module_suffix]),
Extension("utils.conversions", ["efl/utils/conversions"+module_suffix],
include_dirs = ['include/'],
extra_compile_args = eo_cflags,
extra_link_args = eo_libs + eina_libs)
@ -101,7 +96,7 @@ if set(("build", "build_ext", "install", "bdist", "sdist")) & set(sys.argv):
# Evas
evas_cflags, evas_libs = pkg_config('Evas', 'evas', "1.7.99")
evas_ext = Extension("evas", ["efl/evas/efl.evas.{0}".format(module_suffix)],
evas_ext = Extension("evas", ["efl/evas/efl.evas"+module_suffix],
include_dirs = ['include/'],
extra_compile_args = evas_cflags,
extra_link_args = evas_libs + eina_libs)
@ -110,7 +105,7 @@ if set(("build", "build_ext", "install", "bdist", "sdist")) & set(sys.argv):
# Ecore
ecore_cflags, ecore_libs = pkg_config('Ecore', 'ecore', "1.7.99")
efile_cflags, efile_libs = pkg_config('EcoreFile', 'ecore-file', "1.7.99")
ecore_ext = Extension("ecore", ["efl/ecore/efl.ecore.{0}".format(module_suffix)],
ecore_ext = Extension("ecore", ["efl/ecore/efl.ecore"+module_suffix],
include_dirs = ['include/'],
extra_compile_args = ecore_cflags + efile_cflags,
extra_link_args = ecore_libs + efile_libs + eina_libs + evas_libs)
@ -118,14 +113,14 @@ if set(("build", "build_ext", "install", "bdist", "sdist")) & set(sys.argv):
# Edje
edje_cflags, edje_libs = pkg_config('Edje', 'edje', "1.7.99")
edje_ext = Extension("edje", ["efl/edje/efl.edje.{0}".format(module_suffix)],
edje_ext = Extension("edje", ["efl/edje/efl.edje"+module_suffix],
include_dirs = ['include/'],
extra_compile_args = edje_cflags,
extra_link_args = edje_libs + eina_libs + evas_libs)
modules.append(edje_ext)
# Edje_Edit
edje_edit_ext = Extension("edje_edit", ["efl/edje/efl.edje_edit.{0}".format(module_suffix)],
edje_edit_ext = Extension("edje_edit", ["efl/edje/efl.edje_edit"+module_suffix],
define_macros = [('EDJE_EDIT_IS_UNSTABLE_AND_I_KNOW_ABOUT_IT', None)],
include_dirs = ['include/'],
extra_compile_args = edje_cflags,
@ -134,7 +129,7 @@ if set(("build", "build_ext", "install", "bdist", "sdist")) & set(sys.argv):
# Emotion
emotion_cflags, emotion_libs = pkg_config('Emotion', 'emotion', "1.7.99")
emotion_ext = Extension("emotion", ["efl/emotion/efl.emotion.{0}".format(module_suffix)],
emotion_ext = Extension("emotion", ["efl/emotion/efl.emotion"+module_suffix],
include_dirs = ['include/'],
extra_compile_args = emotion_cflags,
extra_link_args = emotion_libs + eina_libs + evas_libs)
@ -143,7 +138,7 @@ if set(("build", "build_ext", "install", "bdist", "sdist")) & set(sys.argv):
# Eldbus
# eldbus_cflags, eldbus_libs = pkg_config('Eldbus', 'eldbus', "1.7.99")
# pydbus_cflags, pydbus_libs = pkg_config('dbus-python', 'dbus-python')
# eldbus_ext = Extension("eldbus", ["efl/eldbus/eldbus.{0}".format(module_suffix)],
# eldbus_ext = Extension("eldbus", ["efl/eldbus/eldbus"+module_suffix],
# include_dirs = ['include/'],
# extra_compile_args = eldbus_cflags + pydbus_cflags + ecore_cflags,
# extra_link_args = eldbus_libs)
@ -152,7 +147,7 @@ if set(("build", "build_ext", "install", "bdist", "sdist")) & set(sys.argv):
# dbus mainloop integration
dbus_cflags, dbus_libs = pkg_config('DBus', 'dbus-python', "0.83.0")
dbus_ml_ext = Extension("dbus_mainloop",
["efl/dbus_mainloop/dbus_mainloop.{0}".format(module_suffix),
["efl/dbus_mainloop/dbus_mainloop"+module_suffix,
"efl/dbus_mainloop/e_dbus.c"],
extra_compile_args = dbus_cflags + ecore_cflags,
extra_link_args = dbus_libs + ecore_libs)
@ -160,76 +155,76 @@ if set(("build", "build_ext", "install", "bdist", "sdist")) & set(sys.argv):
# Elementary
elm_exts = [
Extension("elementary.access", ["efl/elementary/access.{0}".format(module_suffix)]),
Extension("elementary.actionslider", ["efl/elementary/actionslider.{0}".format(module_suffix)]),
Extension("elementary.background", ["efl/elementary/background.{0}".format(module_suffix)]),
Extension("elementary.box", ["efl/elementary/box.{0}".format(module_suffix)]),
Extension("elementary.bubble", ["efl/elementary/bubble.{0}".format(module_suffix)]),
Extension("elementary.button", ["efl/elementary/button.{0}".format(module_suffix)]),
Extension("elementary.calendar_elm", ["efl/elementary/calendar_elm.{0}".format(module_suffix)]),
Extension("elementary.check", ["efl/elementary/check.{0}".format(module_suffix)]),
Extension("elementary.clock", ["efl/elementary/clock.{0}".format(module_suffix)]),
Extension("elementary.colorselector", ["efl/elementary/colorselector.{0}".format(module_suffix)]),
Extension("elementary.configuration", ["efl/elementary/configuration.{0}".format(module_suffix)]),
Extension("elementary.conformant", ["efl/elementary/conformant.{0}".format(module_suffix)]),
Extension("elementary.ctxpopup", ["efl/elementary/ctxpopup.{0}".format(module_suffix)]),
Extension("elementary.datetime_elm", ["efl/elementary/datetime_elm.{0}".format(module_suffix)]),
Extension("elementary.dayselector", ["efl/elementary/dayselector.{0}".format(module_suffix)]),
Extension("elementary.diskselector", ["efl/elementary/diskselector.{0}".format(module_suffix)]),
Extension("elementary.entry", ["efl/elementary/entry.{0}".format(module_suffix)]),
Extension("elementary.fileselector_button", ["efl/elementary/fileselector_button.{0}".format(module_suffix)]),
Extension("elementary.fileselector_entry", ["efl/elementary/fileselector_entry.{0}".format(module_suffix)]),
Extension("elementary.fileselector", ["efl/elementary/fileselector.{0}".format(module_suffix)]),
Extension("elementary.flip", ["efl/elementary/flip.{0}".format(module_suffix)]),
Extension("elementary.flipselector", ["efl/elementary/flipselector.{0}".format(module_suffix)]),
Extension("elementary.frame", ["efl/elementary/frame.{0}".format(module_suffix)]),
Extension("elementary.general", ["efl/elementary/general.{0}".format(module_suffix)]),
Extension("elementary.gengrid", ["efl/elementary/gengrid.{0}".format(module_suffix)]),
Extension("elementary.genlist", ["efl/elementary/genlist.{0}".format(module_suffix)]),
Extension("elementary.gesture_layer", ["efl/elementary/gesture_layer.{0}".format(module_suffix)]),
Extension("elementary.grid", ["efl/elementary/grid.{0}".format(module_suffix)]),
Extension("elementary.hover", ["efl/elementary/hover.{0}".format(module_suffix)]),
Extension("elementary.hoversel", ["efl/elementary/hoversel.{0}".format(module_suffix)]),
Extension("elementary.icon", ["efl/elementary/icon.{0}".format(module_suffix)]),
Extension("elementary.image", ["efl/elementary/image.{0}".format(module_suffix)]),
Extension("elementary.index", ["efl/elementary/index.{0}".format(module_suffix)]),
Extension("elementary.innerwindow", ["efl/elementary/innerwindow.{0}".format(module_suffix)]),
Extension("elementary.label", ["efl/elementary/label.{0}".format(module_suffix)]),
Extension("elementary.layout_class", ["efl/elementary/layout_class.{0}".format(module_suffix)]),
Extension("elementary.layout", ["efl/elementary/layout.{0}".format(module_suffix)]),
Extension("elementary.list", ["efl/elementary/list.{0}".format(module_suffix)]),
Extension("elementary.mapbuf", ["efl/elementary/mapbuf.{0}".format(module_suffix)]),
Extension("elementary.map", ["efl/elementary/map.{0}".format(module_suffix)]),
Extension("elementary.menu", ["efl/elementary/menu.{0}".format(module_suffix)]),
Extension("elementary.multibuttonentry", ["efl/elementary/multibuttonentry.{0}".format(module_suffix)]),
Extension("elementary.naviframe", ["efl/elementary/naviframe.{0}".format(module_suffix)]),
Extension("elementary.need", ["efl/elementary/need.{0}".format(module_suffix)]),
Extension("elementary.notify", ["efl/elementary/notify.{0}".format(module_suffix)]),
Extension("elementary.object_item", ["efl/elementary/object_item.{0}".format(module_suffix)]),
Extension("elementary.object", ["efl/elementary/object.{0}".format(module_suffix)]),
Extension("elementary.panel", ["efl/elementary/panel.{0}".format(module_suffix)]),
Extension("elementary.panes", ["efl/elementary/panes.{0}".format(module_suffix)]),
Extension("elementary.photocam", ["efl/elementary/photocam.{0}".format(module_suffix)]),
Extension("elementary.photo", ["efl/elementary/photo.{0}".format(module_suffix)]),
Extension("elementary.plug", ["efl/elementary/plug.{0}".format(module_suffix)]),
Extension("elementary.popup", ["efl/elementary/popup.{0}".format(module_suffix)]),
Extension("elementary.progressbar", ["efl/elementary/progressbar.{0}".format(module_suffix)]),
Extension("elementary.radio", ["efl/elementary/radio.{0}".format(module_suffix)]),
Extension("elementary.scroller", ["efl/elementary/scroller.{0}".format(module_suffix)]),
Extension("elementary.segment_control", ["efl/elementary/segment_control.{0}".format(module_suffix)]),
Extension("elementary.separator", ["efl/elementary/separator.{0}".format(module_suffix)]),
Extension("elementary.slider", ["efl/elementary/slider.{0}".format(module_suffix)]),
Extension("elementary.slideshow", ["efl/elementary/slideshow.{0}".format(module_suffix)]),
Extension("elementary.spinner", ["efl/elementary/spinner.{0}".format(module_suffix)]),
#Extension("elementary.store", ["efl/elementary/store.{0}".format(module_suffix)]),
Extension("elementary.table", ["efl/elementary/table.{0}".format(module_suffix)]),
Extension("elementary.theme", ["efl/elementary/theme.{0}".format(module_suffix)]),
Extension("elementary.thumb", ["efl/elementary/thumb.{0}".format(module_suffix)]),
Extension("elementary.toolbar", ["efl/elementary/toolbar.{0}".format(module_suffix)]),
Extension("elementary.transit", ["efl/elementary/transit.{0}".format(module_suffix)]),
Extension("elementary.video", ["efl/elementary/video.{0}".format(module_suffix)]),
Extension("elementary.web", ["efl/elementary/web.{0}".format(module_suffix)]),
Extension("elementary.window", ["efl/elementary/window.{0}".format(module_suffix)]),
Extension("elementary.access", ["efl/elementary/access"+module_suffix]),
Extension("elementary.actionslider", ["efl/elementary/actionslider"+module_suffix]),
Extension("elementary.background", ["efl/elementary/background"+module_suffix]),
Extension("elementary.box", ["efl/elementary/box"+module_suffix]),
Extension("elementary.bubble", ["efl/elementary/bubble"+module_suffix]),
Extension("elementary.button", ["efl/elementary/button"+module_suffix]),
Extension("elementary.calendar_elm", ["efl/elementary/calendar_elm"+module_suffix]),
Extension("elementary.check", ["efl/elementary/check"+module_suffix]),
Extension("elementary.clock", ["efl/elementary/clock"+module_suffix]),
Extension("elementary.colorselector", ["efl/elementary/colorselector"+module_suffix]),
Extension("elementary.configuration", ["efl/elementary/configuration"+module_suffix]),
Extension("elementary.conformant", ["efl/elementary/conformant"+module_suffix]),
Extension("elementary.ctxpopup", ["efl/elementary/ctxpopup"+module_suffix]),
Extension("elementary.datetime_elm", ["efl/elementary/datetime_elm"+module_suffix]),
Extension("elementary.dayselector", ["efl/elementary/dayselector"+module_suffix]),
Extension("elementary.diskselector", ["efl/elementary/diskselector"+module_suffix]),
Extension("elementary.entry", ["efl/elementary/entry"+module_suffix]),
Extension("elementary.fileselector_button", ["efl/elementary/fileselector_button"+module_suffix]),
Extension("elementary.fileselector_entry", ["efl/elementary/fileselector_entry"+module_suffix]),
Extension("elementary.fileselector", ["efl/elementary/fileselector"+module_suffix]),
Extension("elementary.flip", ["efl/elementary/flip"+module_suffix]),
Extension("elementary.flipselector", ["efl/elementary/flipselector"+module_suffix]),
Extension("elementary.frame", ["efl/elementary/frame"+module_suffix]),
Extension("elementary.general", ["efl/elementary/general"+module_suffix]),
Extension("elementary.gengrid", ["efl/elementary/gengrid"+module_suffix]),
Extension("elementary.genlist", ["efl/elementary/genlist"+module_suffix]),
Extension("elementary.gesture_layer", ["efl/elementary/gesture_layer"+module_suffix]),
Extension("elementary.grid", ["efl/elementary/grid"+module_suffix]),
Extension("elementary.hover", ["efl/elementary/hover"+module_suffix]),
Extension("elementary.hoversel", ["efl/elementary/hoversel"+module_suffix]),
Extension("elementary.icon", ["efl/elementary/icon"+module_suffix]),
Extension("elementary.image", ["efl/elementary/image"+module_suffix]),
Extension("elementary.index", ["efl/elementary/index"+module_suffix]),
Extension("elementary.innerwindow", ["efl/elementary/innerwindow"+module_suffix]),
Extension("elementary.label", ["efl/elementary/label"+module_suffix]),
Extension("elementary.layout_class", ["efl/elementary/layout_class"+module_suffix]),
Extension("elementary.layout", ["efl/elementary/layout"+module_suffix]),
Extension("elementary.list", ["efl/elementary/list"+module_suffix]),
Extension("elementary.mapbuf", ["efl/elementary/mapbuf"+module_suffix]),
Extension("elementary.map", ["efl/elementary/map"+module_suffix]),
Extension("elementary.menu", ["efl/elementary/menu"+module_suffix]),
Extension("elementary.multibuttonentry", ["efl/elementary/multibuttonentry"+module_suffix]),
Extension("elementary.naviframe", ["efl/elementary/naviframe"+module_suffix]),
Extension("elementary.need", ["efl/elementary/need"+module_suffix]),
Extension("elementary.notify", ["efl/elementary/notify"+module_suffix]),
Extension("elementary.object_item", ["efl/elementary/object_item"+module_suffix]),
Extension("elementary.object", ["efl/elementary/object"+module_suffix]),
Extension("elementary.panel", ["efl/elementary/panel"+module_suffix]),
Extension("elementary.panes", ["efl/elementary/panes"+module_suffix]),
Extension("elementary.photocam", ["efl/elementary/photocam"+module_suffix]),
Extension("elementary.photo", ["efl/elementary/photo"+module_suffix]),
Extension("elementary.plug", ["efl/elementary/plug"+module_suffix]),
Extension("elementary.popup", ["efl/elementary/popup"+module_suffix]),
Extension("elementary.progressbar", ["efl/elementary/progressbar"+module_suffix]),
Extension("elementary.radio", ["efl/elementary/radio"+module_suffix]),
Extension("elementary.scroller", ["efl/elementary/scroller"+module_suffix]),
Extension("elementary.segment_control", ["efl/elementary/segment_control"+module_suffix]),
Extension("elementary.separator", ["efl/elementary/separator"+module_suffix]),
Extension("elementary.slider", ["efl/elementary/slider"+module_suffix]),
Extension("elementary.slideshow", ["efl/elementary/slideshow"+module_suffix]),
Extension("elementary.spinner", ["efl/elementary/spinner"+module_suffix]),
#Extension("elementary.store", ["efl/elementary/store"+module_suffix]),
Extension("elementary.table", ["efl/elementary/table"+module_suffix]),
Extension("elementary.theme", ["efl/elementary/theme"+module_suffix]),
Extension("elementary.thumb", ["efl/elementary/thumb"+module_suffix]),
Extension("elementary.toolbar", ["efl/elementary/toolbar"+module_suffix]),
Extension("elementary.transit", ["efl/elementary/transit"+module_suffix]),
Extension("elementary.video", ["efl/elementary/video"+module_suffix]),
Extension("elementary.web", ["efl/elementary/web"+module_suffix]),
Extension("elementary.window", ["efl/elementary/window"+module_suffix]),
]
elm_cflags, elm_libs = pkg_config('Elementary', 'elementary', "1.7.99")
@ -241,26 +236,23 @@ if set(("build", "build_ext", "install", "bdist", "sdist")) & set(sys.argv):
modules = modules + elm_exts
if __name__ == "__main__":
setup(
name = "efl",
version = "1.7.99",
author = "Davide <davemds> Andreoli",
author_email = "dave@gurumeditation.it",
maintainer = "Davide <davemds> Andreoli",
maintainer_email = "dave@gurumeditation.it",
url = "http://www.enlightenment.org",
description = "Python bindings for the EFL stack",
license = "GNU Lesser General Public License (LGPL)",
cmdclass = {'build_ext': build_ext, 'build_doc': BuildDoc, 'clean_generated_files': CleanGenerated},
packages = ["efl", "efl.elementary", "efl.utils"],
package_data = {"efl": ["efl/dbus_mainloop/e_dbus.h"]},
# command_options = {
# "build_doc": {
# "builder": (None, "html"),
# "builder": (None, "coverage"),
# },
# },
ext_package = "efl",
ext_modules = cythonize(modules, include_path=["include"]),
)
setup(
name = "efl",
version = "1.7.99",
author = "Davide <davemds> Andreoli",
author_email = "dave@gurumeditation.it",
maintainer = "Davide <davemds> Andreoli",
maintainer_email = "dave@gurumeditation.it",
url = "http://www.enlightenment.org",
description = "Python bindings for the EFL stack",
license = "GNU Lesser General Public License (LGPL)",
cmdclass = {
'build_ext': build_ext,
'build_doc': BuildDoc,
'clean_generated_files': CleanGenerated
},
packages = ["efl", "efl.elementary", "efl.utils"],
package_data = {"efl": ["efl/dbus_mainloop/e_dbus.h"]},
ext_package = "efl",
ext_modules = cythonize(modules, include_path=["include"]),
)