File: setup.py

package info (click to toggle)
python-atom 0.12.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,616 kB
  • sloc: cpp: 9,040; python: 6,249; makefile: 123
file content (63 lines) | stat: -rw-r--r-- 2,007 bytes parent folder | download
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
58
59
60
61
62
63
# --------------------------------------------------------------------------------------
# Copyright (c) 2013-2025, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file LICENSE, distributed with this software.
# --------------------------------------------------------------------------------------

from setuptools import Extension, setup

try:
    from cppy import CppyBuildExt
except ImportError as e:
    raise RuntimeError(
        "Missing setup required dependencies: cppy. "
        "Installing through pip as recommended ensure one never hits this issue."
    ) from e

ext_modules = [
    Extension(
        "atom.catom",
        [
            "atom/src/atomlist.cpp",
            "atom/src/atomdict.cpp",
            "atom/src/atomset.cpp",
            "atom/src/atomref.cpp",
            "atom/src/catom.cpp",
            "atom/src/catommodule.cpp",
            "atom/src/defaultvaluebehavior.cpp",
            "atom/src/delattrbehavior.cpp",
            "atom/src/enumtypes.cpp",
            "atom/src/eventbinder.cpp",
            "atom/src/getattrbehavior.cpp",
            "atom/src/getstatebehavior.cpp",
            "atom/src/member.cpp",
            "atom/src/memberchange.cpp",
            "atom/src/methodwrapper.cpp",
            "atom/src/observerpool.cpp",
            "atom/src/postgetattrbehavior.cpp",
            "atom/src/postsetattrbehavior.cpp",
            "atom/src/postvalidatebehavior.cpp",
            "atom/src/propertyhelper.cpp",
            "atom/src/setattrbehavior.cpp",
            "atom/src/signalconnector.cpp",
            "atom/src/validatebehavior.cpp",
        ],
        include_dirs=["src"],
        language="c++",
    ),
    Extension(
        "atom.datastructures.sortedmap",
        ["atom/src/sortedmap.cpp"],
        include_dirs=["src"],
        language="c++",
    ),
]


setup(
    use_scm_version=True,
    ext_modules=ext_modules,
    cmdclass={"build_ext": CppyBuildExt},
)