Put in a first, still wip, version of the python bindings in a merged tree.
This is meant to be the 1.8 version of the wrappers and will include everything
that now is in the python folder.
Atm this include evas, ecore, edje, elementary and emotion (emotion still commented
in the build couse it need some more testing). Eo is used as a base for all the
objects that inherit from it in C, but in real nothing is used from Eo, it is
used more like a container to share code between the libs.
All the docs has been stripped out because we want to use the new sphinx style
docs that Kay has done in his git repo. (Kay: please wait a little bit to include
it, as working on the libs without docs is much more easy)
The new wrappers include a new container module called efl and thus you can live
with both the old and the new installation. This also means that you need to import
the new modules as:
"from efl import evas" (instead of the old "import evas")
The idea here is that you can make your code works with both version doing
something like:
try:
import evas
except:
from efl import evas
...like is done in the gtk bindings
Some stuff has been leaved out on purpose, because was old stuff (like the hacked
evas rotation stuff) or because was not working as expected (like all the ecore.evas.XXX
modules). See the TODO.txt file for more info. Probably some stuff is out just because I
missed them, let me know if you miss something.
Improvements from the old version:
- Py3 compatible (still some work to be done, but really only TODO, no problems to resolv)
- Should also works on other platforms, like windoz (but not tested)
- Unittests greatly improved, you can also run ALL tests at once
- much more simpler :)
I will contine the works in the next weeks and hope someone will help too.
NOTE: I switched back to setup.py instead of autotools, because that is the right way to
compile python stuff. So to build just use:
python setup.py install
or
python3 setup.py install
Enjoy
davemds
SVN revision: 83831
2013-02-11 14:32:50 -08:00
|
|
|
#! /usr/bin/env python
|
2013-11-21 12:17:21 -08:00
|
|
|
# encoding: utf-8
|
Put in a first, still wip, version of the python bindings in a merged tree.
This is meant to be the 1.8 version of the wrappers and will include everything
that now is in the python folder.
Atm this include evas, ecore, edje, elementary and emotion (emotion still commented
in the build couse it need some more testing). Eo is used as a base for all the
objects that inherit from it in C, but in real nothing is used from Eo, it is
used more like a container to share code between the libs.
All the docs has been stripped out because we want to use the new sphinx style
docs that Kay has done in his git repo. (Kay: please wait a little bit to include
it, as working on the libs without docs is much more easy)
The new wrappers include a new container module called efl and thus you can live
with both the old and the new installation. This also means that you need to import
the new modules as:
"from efl import evas" (instead of the old "import evas")
The idea here is that you can make your code works with both version doing
something like:
try:
import evas
except:
from efl import evas
...like is done in the gtk bindings
Some stuff has been leaved out on purpose, because was old stuff (like the hacked
evas rotation stuff) or because was not working as expected (like all the ecore.evas.XXX
modules). See the TODO.txt file for more info. Probably some stuff is out just because I
missed them, let me know if you miss something.
Improvements from the old version:
- Py3 compatible (still some work to be done, but really only TODO, no problems to resolv)
- Should also works on other platforms, like windoz (but not tested)
- Unittests greatly improved, you can also run ALL tests at once
- much more simpler :)
I will contine the works in the next weeks and hope someone will help too.
NOTE: I switched back to setup.py instead of autotools, because that is the right way to
compile python stuff. So to build just use:
python setup.py install
or
python3 setup.py install
Enjoy
davemds
SVN revision: 83831
2013-02-11 14:32:50 -08:00
|
|
|
|
2013-10-16 11:31:50 -07:00
|
|
|
import os
|
Put in a first, still wip, version of the python bindings in a merged tree.
This is meant to be the 1.8 version of the wrappers and will include everything
that now is in the python folder.
Atm this include evas, ecore, edje, elementary and emotion (emotion still commented
in the build couse it need some more testing). Eo is used as a base for all the
objects that inherit from it in C, but in real nothing is used from Eo, it is
used more like a container to share code between the libs.
All the docs has been stripped out because we want to use the new sphinx style
docs that Kay has done in his git repo. (Kay: please wait a little bit to include
it, as working on the libs without docs is much more easy)
The new wrappers include a new container module called efl and thus you can live
with both the old and the new installation. This also means that you need to import
the new modules as:
"from efl import evas" (instead of the old "import evas")
The idea here is that you can make your code works with both version doing
something like:
try:
import evas
except:
from efl import evas
...like is done in the gtk bindings
Some stuff has been leaved out on purpose, because was old stuff (like the hacked
evas rotation stuff) or because was not working as expected (like all the ecore.evas.XXX
modules). See the TODO.txt file for more info. Probably some stuff is out just because I
missed them, let me know if you miss something.
Improvements from the old version:
- Py3 compatible (still some work to be done, but really only TODO, no problems to resolv)
- Should also works on other platforms, like windoz (but not tested)
- Unittests greatly improved, you can also run ALL tests at once
- much more simpler :)
I will contine the works in the next weeks and hope someone will help too.
NOTE: I switched back to setup.py instead of autotools, because that is the right way to
compile python stuff. So to build just use:
python setup.py install
or
python3 setup.py install
Enjoy
davemds
SVN revision: 83831
2013-02-11 14:32:50 -08:00
|
|
|
import sys
|
|
|
|
import subprocess
|
2013-02-19 01:53:30 -08:00
|
|
|
from distutils.core import setup, Command
|
Put in a first, still wip, version of the python bindings in a merged tree.
This is meant to be the 1.8 version of the wrappers and will include everything
that now is in the python folder.
Atm this include evas, ecore, edje, elementary and emotion (emotion still commented
in the build couse it need some more testing). Eo is used as a base for all the
objects that inherit from it in C, but in real nothing is used from Eo, it is
used more like a container to share code between the libs.
All the docs has been stripped out because we want to use the new sphinx style
docs that Kay has done in his git repo. (Kay: please wait a little bit to include
it, as working on the libs without docs is much more easy)
The new wrappers include a new container module called efl and thus you can live
with both the old and the new installation. This also means that you need to import
the new modules as:
"from efl import evas" (instead of the old "import evas")
The idea here is that you can make your code works with both version doing
something like:
try:
import evas
except:
from efl import evas
...like is done in the gtk bindings
Some stuff has been leaved out on purpose, because was old stuff (like the hacked
evas rotation stuff) or because was not working as expected (like all the ecore.evas.XXX
modules). See the TODO.txt file for more info. Probably some stuff is out just because I
missed them, let me know if you miss something.
Improvements from the old version:
- Py3 compatible (still some work to be done, but really only TODO, no problems to resolv)
- Should also works on other platforms, like windoz (but not tested)
- Unittests greatly improved, you can also run ALL tests at once
- much more simpler :)
I will contine the works in the next weeks and hope someone will help too.
NOTE: I switched back to setup.py instead of autotools, because that is the right way to
compile python stuff. So to build just use:
python setup.py install
or
python3 setup.py install
Enjoy
davemds
SVN revision: 83831
2013-02-11 14:32:50 -08:00
|
|
|
from distutils.extension import Extension
|
2014-04-17 15:43:18 -07:00
|
|
|
from distutils.version import StrictVersion, LooseVersion
|
Put in a first, still wip, version of the python bindings in a merged tree.
This is meant to be the 1.8 version of the wrappers and will include everything
that now is in the python folder.
Atm this include evas, ecore, edje, elementary and emotion (emotion still commented
in the build couse it need some more testing). Eo is used as a base for all the
objects that inherit from it in C, but in real nothing is used from Eo, it is
used more like a container to share code between the libs.
All the docs has been stripped out because we want to use the new sphinx style
docs that Kay has done in his git repo. (Kay: please wait a little bit to include
it, as working on the libs without docs is much more easy)
The new wrappers include a new container module called efl and thus you can live
with both the old and the new installation. This also means that you need to import
the new modules as:
"from efl import evas" (instead of the old "import evas")
The idea here is that you can make your code works with both version doing
something like:
try:
import evas
except:
from efl import evas
...like is done in the gtk bindings
Some stuff has been leaved out on purpose, because was old stuff (like the hacked
evas rotation stuff) or because was not working as expected (like all the ecore.evas.XXX
modules). See the TODO.txt file for more info. Probably some stuff is out just because I
missed them, let me know if you miss something.
Improvements from the old version:
- Py3 compatible (still some work to be done, but really only TODO, no problems to resolv)
- Should also works on other platforms, like windoz (but not tested)
- Unittests greatly improved, you can also run ALL tests at once
- much more simpler :)
I will contine the works in the next weeks and hope someone will help too.
NOTE: I switched back to setup.py instead of autotools, because that is the right way to
compile python stuff. So to build just use:
python setup.py install
or
python3 setup.py install
Enjoy
davemds
SVN revision: 83831
2013-02-11 14:32:50 -08:00
|
|
|
|
2013-11-09 03:26:09 -08:00
|
|
|
script_path = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
|
2014-03-05 13:56:11 -08:00
|
|
|
|
2014-03-02 14:09:54 -08:00
|
|
|
# python-efl version
|
2014-05-31 02:07:00 -07:00
|
|
|
VERSION = "1.11"
|
|
|
|
RELEASE = "1.10.99"
|
2014-03-05 13:56:11 -08:00
|
|
|
|
2014-05-10 00:51:15 -07:00
|
|
|
# Add git commit count for dev builds
|
|
|
|
if RELEASE.split(".")[2] == "99":
|
|
|
|
call = subprocess.Popen(
|
|
|
|
["git", "log", "--oneline"], stdout=subprocess.PIPE)
|
|
|
|
out, err = call.communicate()
|
|
|
|
log = out.decode("utf-8").strip()
|
|
|
|
if log:
|
|
|
|
ver = log.count("\n")
|
|
|
|
RELEASE += "a" + str(ver)
|
2014-03-02 14:09:54 -08:00
|
|
|
|
|
|
|
# dependencies
|
2014-04-04 07:57:50 -07:00
|
|
|
CYTHON_MIN_VERSION = "0.19"
|
2014-05-31 02:07:00 -07:00
|
|
|
EFL_MIN_VERSION = "1.10.99"
|
|
|
|
ELM_MIN_VERSION = "1.10.99"
|
2014-06-02 10:16:12 -07:00
|
|
|
EWE_MIN_VERSION = "0.1.0"
|
2013-12-09 23:55:46 -08:00
|
|
|
|
2013-12-02 11:59:33 -08:00
|
|
|
|
2013-12-19 09:22:23 -08:00
|
|
|
# XXX: Force default visibility. See phab T504
|
2013-12-19 12:27:56 -08:00
|
|
|
if os.getenv("CFLAGS") is not None and "-fvisibility=" in os.environ["CFLAGS"]:
|
2013-12-19 09:22:23 -08:00
|
|
|
os.environ["CFLAGS"] += " -fvisibility=default"
|
|
|
|
|
|
|
|
|
2013-11-29 09:31:21 -08:00
|
|
|
# === Sphinx ===
|
2013-02-19 01:53:30 -08:00
|
|
|
try:
|
|
|
|
from sphinx.setup_command import BuildDoc
|
|
|
|
except ImportError:
|
|
|
|
class BuildDoc(Command):
|
2014-04-29 02:20:33 -07:00
|
|
|
description = \
|
|
|
|
"build documentation using sphinx, that must be installed."
|
2013-02-19 01:53:30 -08:00
|
|
|
user_options = []
|
2014-04-29 02:20:33 -07:00
|
|
|
|
|
|
|
def initialize_options(self):
|
|
|
|
pass
|
|
|
|
|
|
|
|
def finalize_options(self):
|
|
|
|
pass
|
|
|
|
|
|
|
|
def run(self):
|
|
|
|
print("Error: sphinx not found")
|
Put in a first, still wip, version of the python bindings in a merged tree.
This is meant to be the 1.8 version of the wrappers and will include everything
that now is in the python folder.
Atm this include evas, ecore, edje, elementary and emotion (emotion still commented
in the build couse it need some more testing). Eo is used as a base for all the
objects that inherit from it in C, but in real nothing is used from Eo, it is
used more like a container to share code between the libs.
All the docs has been stripped out because we want to use the new sphinx style
docs that Kay has done in his git repo. (Kay: please wait a little bit to include
it, as working on the libs without docs is much more easy)
The new wrappers include a new container module called efl and thus you can live
with both the old and the new installation. This also means that you need to import
the new modules as:
"from efl import evas" (instead of the old "import evas")
The idea here is that you can make your code works with both version doing
something like:
try:
import evas
except:
from efl import evas
...like is done in the gtk bindings
Some stuff has been leaved out on purpose, because was old stuff (like the hacked
evas rotation stuff) or because was not working as expected (like all the ecore.evas.XXX
modules). See the TODO.txt file for more info. Probably some stuff is out just because I
missed them, let me know if you miss something.
Improvements from the old version:
- Py3 compatible (still some work to be done, but really only TODO, no problems to resolv)
- Should also works on other platforms, like windoz (but not tested)
- Unittests greatly improved, you can also run ALL tests at once
- much more simpler :)
I will contine the works in the next weeks and hope someone will help too.
NOTE: I switched back to setup.py instead of autotools, because that is the right way to
compile python stuff. So to build just use:
python setup.py install
or
python3 setup.py install
Enjoy
davemds
SVN revision: 83831
2013-02-11 14:32:50 -08:00
|
|
|
|
2013-04-03 05:12:28 -07:00
|
|
|
|
2013-11-29 09:31:21 -08:00
|
|
|
# === pkg-config ===
|
2013-04-03 05:12:28 -07:00
|
|
|
def pkg_config(name, require, min_vers=None):
|
|
|
|
try:
|
|
|
|
sys.stdout.write("Checking for " + name + ": ")
|
2013-12-28 08:26:52 -08:00
|
|
|
|
|
|
|
call = subprocess.Popen(
|
|
|
|
["pkg-config", "--modversion", require], stdout=subprocess.PIPE)
|
|
|
|
out, err = call.communicate()
|
|
|
|
ver = out.decode("utf-8").strip()
|
|
|
|
|
2013-04-03 05:12:28 -07:00
|
|
|
if min_vers is not None:
|
2013-12-28 08:26:52 -08:00
|
|
|
assert 0 == subprocess.call(
|
|
|
|
["pkg-config", "--atleast-version", min_vers, require])
|
|
|
|
|
|
|
|
call = subprocess.Popen(
|
|
|
|
["pkg-config", "--cflags", require], stdout=subprocess.PIPE)
|
|
|
|
out, err = call.communicate()
|
|
|
|
cflags = out.decode("utf-8").split()
|
|
|
|
|
|
|
|
call = subprocess.Popen(
|
|
|
|
["pkg-config", "--libs", require], stdout=subprocess.PIPE)
|
|
|
|
out, err = call.communicate()
|
|
|
|
libs = out.decode("utf-8").split()
|
|
|
|
|
2013-04-03 05:12:28 -07:00
|
|
|
sys.stdout.write("OK, found " + ver + "\n")
|
2013-12-28 08:26:52 -08:00
|
|
|
|
2014-04-09 04:36:20 -07:00
|
|
|
cflags = list(set(cflags))
|
|
|
|
|
2013-04-03 05:12:28 -07:00
|
|
|
return (cflags, libs)
|
|
|
|
except (OSError, subprocess.CalledProcessError):
|
2014-04-06 03:52:52 -07:00
|
|
|
raise SystemExit("Did not find " + name + " with 'pkg-config'.")
|
2013-04-03 05:12:28 -07:00
|
|
|
except (AssertionError):
|
2014-04-29 02:20:33 -07:00
|
|
|
raise SystemExit(
|
|
|
|
name + " version mismatch. Found: " + ver + " Needed: " + min_vers
|
|
|
|
)
|
2013-04-03 05:12:28 -07:00
|
|
|
|
|
|
|
|
2013-10-16 13:35:44 -07:00
|
|
|
# use cython or pre-generated c files
|
2014-04-30 08:59:19 -07:00
|
|
|
|
2014-05-13 11:59:15 -07:00
|
|
|
if os.getenv("DISABLE_CYTHON"):
|
|
|
|
module_suffix = ".c"
|
|
|
|
from distutils.command.build_ext import build_ext
|
2014-04-17 15:43:18 -07:00
|
|
|
|
2014-05-13 11:59:15 -07:00
|
|
|
def cythonize(modules, *args, **kwargs):
|
|
|
|
return modules
|
|
|
|
else:
|
2013-10-16 11:31:50 -07:00
|
|
|
try:
|
|
|
|
from Cython.Distutils import build_ext
|
|
|
|
from Cython.Build import cythonize
|
|
|
|
import Cython.Compiler.Options
|
2014-04-17 15:43:18 -07:00
|
|
|
except ImportError:
|
2014-05-13 11:59:15 -07:00
|
|
|
module_suffix = ".c"
|
|
|
|
from distutils.command.build_ext import build_ext
|
2013-10-16 11:31:50 -07:00
|
|
|
|
2014-05-13 11:59:15 -07:00
|
|
|
def cythonize(modules, *args, **kwargs):
|
|
|
|
return modules
|
|
|
|
else:
|
|
|
|
module_suffix = ".pyx"
|
2014-04-17 15:43:18 -07:00
|
|
|
try:
|
2014-05-13 11:59:15 -07:00
|
|
|
try:
|
|
|
|
assert StrictVersion(Cython.__version__) >= \
|
|
|
|
StrictVersion(CYTHON_MIN_VERSION)
|
|
|
|
except ValueError:
|
|
|
|
print("""
|
|
|
|
Your Cython version string (%s) is weird. We'll attempt to
|
|
|
|
check that it's higher than the minimum required: %s, but
|
|
|
|
this is unreliable.\n
|
|
|
|
If you run into any problems during or after installation it
|
|
|
|
may be caused by version of Cython that's too old.""" % (
|
2014-04-17 15:43:18 -07:00
|
|
|
Cython.__version__, CYTHON_MIN_VERSION
|
2014-05-13 11:59:15 -07:00
|
|
|
)
|
|
|
|
)
|
|
|
|
assert LooseVersion(Cython.__version__) >= \
|
|
|
|
LooseVersion(CYTHON_MIN_VERSION)
|
|
|
|
except AssertionError:
|
|
|
|
raise SystemExit(
|
|
|
|
"Requires Cython >= %s (http://cython.org/)" % (
|
|
|
|
CYTHON_MIN_VERSION
|
|
|
|
)
|
2014-04-17 15:43:18 -07:00
|
|
|
)
|
2014-04-29 02:20:33 -07:00
|
|
|
|
2014-05-13 11:59:15 -07:00
|
|
|
Cython.Compiler.Options.fast_fail = True # Stop compilation on first
|
|
|
|
# error
|
|
|
|
Cython.Compiler.Options.annotate = False # Generates HTML files with
|
|
|
|
# annotated source
|
|
|
|
Cython.Compiler.Options.docstrings = True # Set to False to disable
|
|
|
|
# docstrings
|
2013-03-01 06:06:38 -08:00
|
|
|
|
2013-10-16 13:35:44 -07:00
|
|
|
|
2013-09-20 02:01:50 -07:00
|
|
|
class CleanGenerated(Command):
|
|
|
|
description = "Clean C and html files generated by Cython"
|
|
|
|
user_options = []
|
2014-04-29 02:20:33 -07:00
|
|
|
|
|
|
|
def initialize_options(self):
|
|
|
|
pass
|
|
|
|
|
|
|
|
def finalize_options(self):
|
|
|
|
pass
|
|
|
|
|
2013-09-20 02:01:50 -07:00
|
|
|
def run(self):
|
2014-04-29 02:20:33 -07:00
|
|
|
for lib in ("eo", "evas", "ecore", "edje", "edje/edit", "emotion",
|
|
|
|
"elementary", "utils"):
|
|
|
|
for root, dirs, files in \
|
|
|
|
os.walk(os.path.join(script_path, "efl", lib)):
|
2013-11-21 12:17:21 -08:00
|
|
|
for f in files:
|
|
|
|
if f.endswith(".c") or f.endswith(".html"):
|
|
|
|
path = os.path.join(root, f)
|
|
|
|
os.remove(path)
|
2014-04-29 02:20:33 -07:00
|
|
|
dbus_ml_path = os.path.join(
|
|
|
|
script_path, "efl", "dbus_mainloop", "dbus_mainloop.c")
|
2013-11-21 12:17:21 -08:00
|
|
|
if os.path.exists(dbus_ml_path):
|
|
|
|
os.remove(dbus_ml_path)
|
2013-09-20 02:01:50 -07:00
|
|
|
|
2013-10-16 13:35:44 -07:00
|
|
|
|
|
|
|
modules = []
|
2013-11-21 12:17:21 -08:00
|
|
|
packages = ["efl"]
|
2014-05-31 02:18:32 -07:00
|
|
|
#package_dirs = {} # Use this if you put packages in non-root paths
|
2013-10-16 13:35:44 -07:00
|
|
|
|
2013-10-16 06:30:08 -07:00
|
|
|
if set(("build", "build_ext", "install", "bdist", "sdist")) & set(sys.argv):
|
2013-03-01 06:06:38 -08:00
|
|
|
|
2013-12-02 11:59:33 -08:00
|
|
|
# === Eina ===
|
2014-04-06 03:52:52 -07:00
|
|
|
eina_cflags, eina_libs = pkg_config('Eina', 'eina', EFL_MIN_VERSION)
|
2013-12-02 11:59:33 -08:00
|
|
|
|
2013-11-29 09:31:21 -08:00
|
|
|
# === Eo ===
|
2014-04-06 03:52:52 -07:00
|
|
|
eo_cflags, eo_libs = pkg_config('Eo', 'eo', EFL_MIN_VERSION)
|
2014-04-29 02:20:33 -07:00
|
|
|
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,
|
|
|
|
extra_link_args=eo_libs + eina_libs
|
|
|
|
)
|
2014-04-06 03:52:52 -07:00
|
|
|
modules.append(eo_ext)
|
2013-12-02 11:59:33 -08:00
|
|
|
|
2013-11-29 09:31:21 -08:00
|
|
|
# === Utilities ===
|
2013-09-30 18:56:28 -07:00
|
|
|
utils_ext = [
|
2014-04-29 02:20:33 -07:00
|
|
|
Extension(
|
|
|
|
"utils.deprecated", ["efl/utils/deprecated" + module_suffix],
|
|
|
|
include_dirs=['include/'],
|
|
|
|
extra_compile_args=eina_cflags,
|
|
|
|
extra_link_args=eina_libs
|
|
|
|
),
|
|
|
|
Extension(
|
|
|
|
"utils.conversions", ["efl/utils/conversions" + module_suffix],
|
|
|
|
include_dirs=['include/'],
|
|
|
|
extra_compile_args=eo_cflags,
|
|
|
|
extra_link_args=eo_libs + eina_libs,
|
|
|
|
),
|
|
|
|
Extension(
|
|
|
|
"utils.logger", ["efl/utils/logger" + module_suffix],
|
|
|
|
include_dirs=['include/'],
|
|
|
|
extra_compile_args=eina_cflags,
|
|
|
|
extra_link_args=eina_libs,
|
|
|
|
),
|
|
|
|
]
|
2013-09-30 18:56:28 -07:00
|
|
|
modules += utils_ext
|
2013-11-21 12:17:21 -08:00
|
|
|
packages.append("efl.utils")
|
2013-09-20 02:01:50 -07:00
|
|
|
|
2013-11-29 09:31:21 -08:00
|
|
|
# === Evas ===
|
2014-04-06 03:52:52 -07:00
|
|
|
evas_cflags, evas_libs = pkg_config('Evas', 'evas', EFL_MIN_VERSION)
|
2014-04-29 02:20:33 -07:00
|
|
|
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,
|
|
|
|
)
|
2014-04-06 03:52:52 -07:00
|
|
|
modules.append(evas_ext)
|
2013-12-02 11:59:33 -08:00
|
|
|
|
2013-11-29 09:31:21 -08:00
|
|
|
# === Ecore ===
|
2014-04-06 03:52:52 -07:00
|
|
|
ecore_cflags, ecore_libs = pkg_config('Ecore', 'ecore', EFL_MIN_VERSION)
|
2014-04-29 02:20:33 -07:00
|
|
|
ecore_file_cflags, ecore_file_libs = pkg_config(
|
|
|
|
'EcoreFile', 'ecore-file', EFL_MIN_VERSION)
|
2014-05-13 12:03:54 -07:00
|
|
|
ecore_exts = [
|
2014-05-13 07:59:48 -07:00
|
|
|
Extension(
|
|
|
|
"ecore.__init__", ["efl/ecore/__init__" + module_suffix],
|
|
|
|
include_dirs=['include/'],
|
|
|
|
extra_compile_args=list(set(ecore_cflags + ecore_file_cflags)),
|
|
|
|
extra_link_args=ecore_libs + ecore_file_libs + eina_libs +
|
|
|
|
evas_libs
|
|
|
|
),
|
2014-05-13 12:03:54 -07:00
|
|
|
]
|
|
|
|
try:
|
|
|
|
ecore_input_cflags, ecore_input_libs = pkg_config(
|
|
|
|
'EcoreInput', 'ecore-input', EFL_MIN_VERSION)
|
|
|
|
ecore_x_cflags, ecore_x_libs = pkg_config(
|
|
|
|
'EcoreX', 'ecore-x', EFL_MIN_VERSION)
|
|
|
|
except SystemExit: # FIXME: Change pkg-config to return a value
|
|
|
|
pass
|
|
|
|
else:
|
|
|
|
ecore_exts.append(
|
|
|
|
Extension(
|
|
|
|
"ecore.x", ["efl/ecore/x" + module_suffix],
|
|
|
|
include_dirs=['include/'],
|
|
|
|
extra_compile_args=
|
|
|
|
list(set(
|
|
|
|
ecore_cflags + ecore_file_cflags + ecore_x_cflags +
|
|
|
|
ecore_input_cflags
|
|
|
|
)),
|
|
|
|
extra_link_args=
|
|
|
|
ecore_libs + ecore_file_libs + ecore_x_libs +
|
|
|
|
ecore_input_libs +
|
|
|
|
eina_libs + evas_libs,
|
|
|
|
)
|
|
|
|
)
|
2014-05-13 07:59:48 -07:00
|
|
|
modules += ecore_exts
|
2014-05-13 05:00:46 -07:00
|
|
|
packages.append("efl.ecore")
|
2013-12-02 11:59:33 -08:00
|
|
|
|
2014-04-11 08:12:49 -07:00
|
|
|
# === Ethumb ===
|
2014-04-29 02:20:33 -07:00
|
|
|
ethumb_cflags, ethumb_libs = pkg_config(
|
|
|
|
'Ethumb', 'ethumb', EFL_MIN_VERSION)
|
|
|
|
ethumb_ext = Extension(
|
|
|
|
"ethumb", ["efl/ethumb/efl.ethumb" + module_suffix],
|
|
|
|
include_dirs=['include/'],
|
|
|
|
extra_compile_args=ethumb_cflags,
|
|
|
|
extra_link_args=ethumb_libs + eina_libs,
|
|
|
|
)
|
2014-04-11 08:12:49 -07:00
|
|
|
modules.append(ethumb_ext)
|
|
|
|
|
2014-04-29 02:20:33 -07:00
|
|
|
ethumb_client_cflags, ethumb_client_libs = pkg_config(
|
|
|
|
'Ethumb_Client', 'ethumb_client', EFL_MIN_VERSION)
|
|
|
|
ethumb_client_ext = Extension(
|
|
|
|
"ethumb_client", ["efl/ethumb/efl.ethumb_client" + module_suffix],
|
|
|
|
include_dirs=['include/'],
|
|
|
|
extra_compile_args=ethumb_client_cflags,
|
|
|
|
extra_link_args=ethumb_client_libs + eina_libs,
|
|
|
|
)
|
2014-04-11 08:12:49 -07:00
|
|
|
modules.append(ethumb_client_ext)
|
|
|
|
|
2013-11-29 09:31:21 -08:00
|
|
|
# === Edje ===
|
2014-04-06 03:52:52 -07:00
|
|
|
edje_cflags, edje_libs = pkg_config('Edje', 'edje', EFL_MIN_VERSION)
|
2014-04-29 02:20:33 -07:00
|
|
|
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,
|
|
|
|
)
|
2014-04-06 03:52:52 -07:00
|
|
|
modules.append(edje_ext)
|
|
|
|
|
|
|
|
# --- Edje_Edit ---
|
2014-04-29 02:20:33 -07:00
|
|
|
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,
|
|
|
|
extra_link_args=edje_libs + eina_libs + evas_libs,
|
|
|
|
)
|
2014-04-06 03:52:52 -07:00
|
|
|
modules.append(edje_edit_ext)
|
|
|
|
|
|
|
|
# === Emotion ===
|
2014-04-29 02:20:33 -07:00
|
|
|
emotion_cflags, emotion_libs = pkg_config(
|
|
|
|
'Emotion', 'emotion', EFL_MIN_VERSION)
|
|
|
|
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,
|
|
|
|
)
|
2014-04-06 03:52:52 -07:00
|
|
|
modules.append(emotion_ext)
|
|
|
|
|
2013-11-29 09:31:21 -08:00
|
|
|
# === dbus mainloop integration ===
|
2014-04-06 03:52:52 -07:00
|
|
|
dbus_cflags, dbus_libs = pkg_config('DBus', 'dbus-python', "0.83.0")
|
2014-04-29 02:20:33 -07:00
|
|
|
dbus_ml_ext = Extension(
|
|
|
|
"dbus_mainloop",
|
|
|
|
["efl/dbus_mainloop/dbus_mainloop" + module_suffix,
|
|
|
|
"efl/dbus_mainloop/e_dbus.c"],
|
|
|
|
extra_compile_args=list(set(dbus_cflags + ecore_cflags)),
|
|
|
|
extra_link_args=dbus_libs + ecore_libs,
|
|
|
|
)
|
2014-04-06 03:52:52 -07:00
|
|
|
modules.append(dbus_ml_ext)
|
2013-12-02 11:59:33 -08:00
|
|
|
|
2013-11-29 09:31:21 -08:00
|
|
|
# === Elementary ===
|
2013-11-10 22:28:48 -08:00
|
|
|
elm_mods = (
|
|
|
|
#"access",
|
|
|
|
"actionslider",
|
|
|
|
"background",
|
|
|
|
"box",
|
|
|
|
"bubble",
|
|
|
|
"button",
|
|
|
|
"calendar_elm",
|
|
|
|
"check",
|
|
|
|
"clock",
|
|
|
|
"colorselector",
|
|
|
|
"configuration",
|
|
|
|
"conformant",
|
|
|
|
"ctxpopup",
|
|
|
|
"datetime_elm",
|
|
|
|
"dayselector",
|
|
|
|
"diskselector",
|
|
|
|
"entry",
|
|
|
|
"fileselector_button",
|
|
|
|
"fileselector_entry",
|
|
|
|
"fileselector",
|
|
|
|
"flip",
|
|
|
|
"flipselector",
|
|
|
|
"frame",
|
|
|
|
"general",
|
|
|
|
"gengrid",
|
|
|
|
"genlist",
|
|
|
|
"gesture_layer",
|
2013-12-01 15:09:39 -08:00
|
|
|
#"glview",
|
2013-11-10 22:28:48 -08:00
|
|
|
"grid",
|
|
|
|
"hover",
|
|
|
|
"hoversel",
|
|
|
|
"icon",
|
|
|
|
"image",
|
|
|
|
"index",
|
|
|
|
"innerwindow",
|
|
|
|
"label",
|
|
|
|
"layout_class",
|
|
|
|
"layout",
|
|
|
|
"list",
|
|
|
|
"mapbuf",
|
|
|
|
"map",
|
|
|
|
"menu",
|
|
|
|
"multibuttonentry",
|
|
|
|
"naviframe",
|
|
|
|
"need",
|
|
|
|
"notify",
|
|
|
|
"object_item",
|
|
|
|
"object",
|
|
|
|
"panel",
|
|
|
|
"panes",
|
|
|
|
"photocam",
|
|
|
|
"photo",
|
|
|
|
"plug",
|
|
|
|
"popup",
|
|
|
|
"progressbar",
|
|
|
|
"radio",
|
|
|
|
"scroller",
|
|
|
|
"segment_control",
|
|
|
|
"separator",
|
|
|
|
"slider",
|
|
|
|
"slideshow",
|
|
|
|
"spinner",
|
|
|
|
#"store",
|
|
|
|
"table",
|
|
|
|
"theme",
|
|
|
|
"thumb",
|
|
|
|
"toolbar",
|
|
|
|
"transit",
|
|
|
|
"video",
|
|
|
|
"web",
|
|
|
|
"window",
|
|
|
|
)
|
2013-03-01 06:06:38 -08:00
|
|
|
|
2014-04-29 02:20:33 -07:00
|
|
|
elm_cflags, elm_libs = pkg_config(
|
|
|
|
'Elementary', 'elementary', ELM_MIN_VERSION)
|
2014-04-06 03:52:52 -07:00
|
|
|
for m in elm_mods:
|
2014-04-29 02:20:33 -07:00
|
|
|
e = Extension(
|
|
|
|
"elementary." + m,
|
|
|
|
["efl/elementary/" + m + module_suffix],
|
|
|
|
include_dirs=["include/"],
|
|
|
|
extra_compile_args=elm_cflags,
|
|
|
|
extra_link_args=elm_libs + eina_libs + evas_libs,
|
|
|
|
)
|
2014-04-06 03:52:52 -07:00
|
|
|
modules.append(e)
|
|
|
|
|
|
|
|
packages.append("efl.elementary")
|
|
|
|
|
2014-06-02 10:16:12 -07:00
|
|
|
# === Ewe ===
|
|
|
|
try:
|
|
|
|
ewe_cflags, ewe_libs = pkg_config(
|
|
|
|
'Ewe', 'ewe', EWE_MIN_VERSION
|
|
|
|
)
|
|
|
|
except SystemExit:
|
|
|
|
pass
|
|
|
|
else:
|
|
|
|
ewe_mods = (
|
|
|
|
"__init__",
|
|
|
|
"object_item",
|
|
|
|
"combobox",
|
|
|
|
"entry",
|
|
|
|
"ruler",
|
|
|
|
"statusbar",
|
|
|
|
"tabs"
|
|
|
|
)
|
|
|
|
|
|
|
|
for m in ewe_mods:
|
|
|
|
e = Extension(
|
|
|
|
"ewe." + m,
|
|
|
|
["efl/ewe/" + m + module_suffix],
|
|
|
|
include_dirs=["include/"],
|
|
|
|
extra_compile_args=ewe_cflags,
|
|
|
|
extra_link_args=ewe_libs + eina_libs + evas_libs,
|
|
|
|
)
|
|
|
|
modules.append(e)
|
|
|
|
|
|
|
|
packages.append("efl.ewe")
|
2013-11-22 16:14:22 -08:00
|
|
|
|
2013-10-16 13:35:44 -07:00
|
|
|
setup(
|
2014-04-29 02:20:33 -07:00
|
|
|
name="python-efl",
|
|
|
|
fullname="Python bindings for Enlightenment Foundation Libraries",
|
|
|
|
description="Python bindings for Enlightenment Foundation Libraries",
|
|
|
|
version=RELEASE,
|
|
|
|
author=(
|
|
|
|
"Gustavo Sverzut Barbieri, Simon Busch, Boris 'billiob' Faure, "
|
|
|
|
"Davide Andreoli, Fabiano Fidêncio, Bruno Dilly, Tiago Falcão, "
|
|
|
|
"Joost Albers, Kai Huuhko, Ulisses Furquim"
|
|
|
|
),
|
|
|
|
author_email="dave@gurumeditation.it, kai.huuhko@gmail.com",
|
|
|
|
maintainer="Kai Huuhko, Davide Andreoli",
|
|
|
|
maintainer_email="kai.huuhko@gmail.com, dave@gurumeditation.it",
|
|
|
|
contact="Enlightenment developer mailing list",
|
|
|
|
contact_email="enlightenment-devel@lists.sourceforge.net",
|
|
|
|
url="http://www.enlightenment.org",
|
|
|
|
license="GNU Lesser General Public License (LGPL)",
|
|
|
|
cmdclass={
|
2013-10-16 13:35:44 -07:00
|
|
|
'build_ext': build_ext,
|
|
|
|
'build_doc': BuildDoc,
|
|
|
|
'clean_generated_files': CleanGenerated
|
2014-04-29 02:20:33 -07:00
|
|
|
},
|
|
|
|
command_options={
|
2014-03-02 14:09:54 -08:00
|
|
|
'build_doc': {
|
|
|
|
'version': ('setup.py', VERSION),
|
|
|
|
'release': ('setup.py', RELEASE)
|
2014-04-29 02:20:33 -07:00
|
|
|
}
|
|
|
|
},
|
2014-05-31 02:18:32 -07:00
|
|
|
#package_dir=package_dirs,
|
2014-04-29 02:20:33 -07:00
|
|
|
packages=packages,
|
|
|
|
ext_package="efl", # The prefix for ext modules/packages
|
|
|
|
ext_modules=cythonize(
|
|
|
|
modules,
|
|
|
|
include_path=["include"],
|
|
|
|
compiler_directives={
|
|
|
|
#"c_string_type": "unicode",
|
|
|
|
#"c_string_encoding": "utf-8",
|
|
|
|
"embedsignature": True,
|
|
|
|
}
|
|
|
|
),
|
2013-10-16 13:35:44 -07:00
|
|
|
)
|