File: setup.py

package info (click to toggle)
routino 3.4.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 9,148 kB
  • sloc: ansic: 22,554; javascript: 7,897; xml: 5,980; perl: 2,597; cs: 921; makefile: 828; sh: 503; cpp: 382; python: 376
file content (57 lines) | stat: -rw-r--r-- 2,372 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# Python interface setup script
#
# Part of the Routino routing software.
#
# This file Copyright 2018, 2022, 2024 Andrew M. Bishop
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

import os
import re
from setuptools import setup, Extension

routino_router = Extension('routino._router',
                           sources = ['src/_router.c'],
                           depends = ['../src/routino.h'],
                           include_dirs = ['../src'],
                           library_dirs = ['../src'],
                           libraries = ['routino'])

# Note: the database needs access to all symbols, not just those
# exported by the libroutino library so it must link with the object
# files and not just the library.

lib_files = []

for file in os.listdir('../src'):
    if re.search("-lib.o", file) and not re.search("-slim-lib.o", file):
        lib_files.append("../src/" + file)

routino_database = Extension('routino._database',
                             sources = ['src/_database.cc', 'src/database.cc'],
                             depends = ['../src/types.h', '../src/nodes.h', '../src/segments.h', '../src/ways.h', '../src/relations.h', '../src/routino.h'],
                             include_dirs = ['../src'],
                             extra_objects = lib_files,
                             library_dirs = ['../src'])

setup (name = 'Routino',
       version = '1.0',
       author="Andrew M. Bishop", author_email='amb@routino.org',
       url='http://routino.org/',
       description = 'Interfaces to Routino in Python',
       packages = ['routino'],
       package_dir = {'routino': 'src'},
       py_modules = ['routino', 'routino.router', 'routino.database'],
       ext_modules = [routino_router, routino_database])