Marcel Telka
2023-10-06 475cfae83855e0afcac24cd0fcd0fc446844025e
commit | author | age
a6c478 1 #
MT 2 # This file and its contents are supplied under the terms of the
3 # Common Development and Distribution License ("CDDL"), version 1.0.
4 # You may only use this file in accordance with the terms of version
5 # 1.0 of the CDDL.
6 #
7 # A full copy of the text of the CDDL should have accompanied this
8 # source.  A copy of the CDDL is also available via the Internet at
9 # http://www.illumos.org/license/CDDL.
10 #
11
12 #
13 # This file was automatically generated using the following command:
14 #   $WS_TOOLS/python-integrate-project libcst
15 #
16
17 BUILD_STYLE = pyproject
18
19 include ../../../make-rules/shared-macros.mk
20
21 COMPONENT_NAME =        libcst
475cfa 22 HUMAN_VERSION =            1.1.0
a6c478 23 COMPONENT_SUMMARY =        libcst - A concrete syntax tree with AST-like properties for Python 3.5, 3.6, 3.7, 3.8, 3.9, and 3.10 programs.
MT 24 COMPONENT_ARCHIVE_URL =        \
475cfa 25     https://files.pythonhosted.org/packages/81/ef/610498b5e982d9dd64f2af8422ece1be44a946a8dbda15d08087e0e1ff08/libcst-1.1.0.tar.gz
a6c478 26 COMPONENT_ARCHIVE_HASH =    \
475cfa 27     sha256:0acbacb9a170455701845b7e940e2d7b9519db35a86768d86330a0b0deae1086
a6c478 28 COMPONENT_LICENSE =        MIT OR PSF-2.0
MT 29 COMPONENT_LICENSE_FILE =    LICENSE
30
31 TEST_STYLE = pytest
32
33 #
34 # Following dependency loops were detected (where 'A --> B' means 'A needs B to
35 # run tests', and 'A ==> B' means 'A needs B for build and/or run'):
36 #
37 # libcst --> hypothesmith ==> libcst
38 #
39 # To break loops we need to allow this project to integrate without testing in
40 # a case the required projects are not available yet (bootstrap).
41 #
42 PYTHON_TEST_BOOTSTRAP = yes
43
44 include $(WS_MAKE_RULES)/common.mk
45
46 # https://www.illumos.org/issues/15767
47 LD_Z_IGNORE=
48
49 #
50 # Tests are run from build directory that contains cloned copy of sdist.  We
51 # try to ask Python to find tested modules in the proto area (the PYTHONPATH is
52 # set accordingly), but Python (< 3.11) always adds the current directory to
53 # sys.path and there is no known (simple) way how to avoid that.  Except -I,
54 # but that would cause Python to ignore PYTHONPATH too so we would not have
55 # access to the proto area either.  The -P option together with PYTHONSAFEPATH
56 # environment variable were added to Python 3.11 only so we cannot use them yet
57 # for all Python versions we support.
58 #
59 # Since sdist for this project contains the main module in the top-level
60 # directory we cannot force Python to skip it.  But, unfortunately, this module
61 # does not contain built dynamic libraries, so Python cannot find them while
62 # testing.
63 #
64 # To workaround this we rename the main module in the build directory during
65 # testing so Python will need to defer to PYTHONPATH.
66 #
67 COMPONENT_PRE_TEST_ACTION +=    $(MV) $(@D)/libcst $(@D)/libcst-RENAMED ;
68 COMPONENT_POST_TEST_ACTION +=    $(MV) $(@D)/libcst-RENAMED $(@D)/libcst ;
69
70 # We are unable to detect this dependency automatically
71 TEST_REQUIRED_PACKAGES.python += library/python/hypothesmith
72
73 # Auto-generated dependencies
74 PYTHON_REQUIRED_PACKAGES += library/python/pyyaml
75 PYTHON_REQUIRED_PACKAGES += library/python/setuptools
76 PYTHON_REQUIRED_PACKAGES += library/python/setuptools-rust
77 PYTHON_REQUIRED_PACKAGES += library/python/setuptools-scm
78 PYTHON_REQUIRED_PACKAGES += library/python/typing-extensions
79 PYTHON_REQUIRED_PACKAGES += library/python/typing-inspect
80 PYTHON_REQUIRED_PACKAGES += library/python/wheel
81 PYTHON_REQUIRED_PACKAGES += runtime/python
82 REQUIRED_PACKAGES += $(GCC_RUNTIME_PKG)
83 REQUIRED_PACKAGES += system/library