diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2023-08-22 20:06:33 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-22 20:06:33 (GMT) |
commit | b539dd3073f9e37de25f73ad19d188cd56cc19b4 (patch) | |
tree | 9d37f050c2092df66a694e1ad2968c340cbcdc79 /Lib/test/test_cppext/setup.py | |
parent | ca47a2183a35d4b71cc062c926b7f96112fdf5ce (diff) | |
download | cpython-b539dd3073f9e37de25f73ad19d188cd56cc19b4.zip cpython-b539dd3073f9e37de25f73ad19d188cd56cc19b4.tar.gz cpython-b539dd3073f9e37de25f73ad19d188cd56cc19b4.tar.bz2 |
[3.12] gh-108303: Add Lib/test/test_cppext/ sub-directory (GH-108325) (#108328)
gh-108303: Add Lib/test/test_cppext/ sub-directory (GH-108325)
* Move test_cppext to its own directory
* Rename setup_testcppext.py to setup.py
* Rename _testcppext.cpp to extension.cpp
* The source (extension.cpp) is now also copied by the test.
(cherry picked from commit 21dda09600848ac280481f7c64f8d9516dc69bb2)
Co-authored-by: Victor Stinner <vstinner@python.org>
Diffstat (limited to 'Lib/test/test_cppext/setup.py')
-rw-r--r-- | Lib/test/test_cppext/setup.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Lib/test/test_cppext/setup.py b/Lib/test/test_cppext/setup.py new file mode 100644 index 0000000..6867094 --- /dev/null +++ b/Lib/test/test_cppext/setup.py @@ -0,0 +1,42 @@ +# gh-91321: Build a basic C++ test extension to check that the Python C API is +# compatible with C++ and does not emit C++ compiler warnings. +import os +import sys + +from setuptools import setup, Extension + + +MS_WINDOWS = (sys.platform == 'win32') + + +SOURCE = 'extension.cpp' +if not MS_WINDOWS: + # C++ compiler flags for GCC and clang + CPPFLAGS = [ + # gh-91321: The purpose of _testcppext extension is to check that building + # a C++ extension using the Python C API does not emit C++ compiler + # warnings + '-Werror', + ] +else: + # Don't pass any compiler flag to MSVC + CPPFLAGS = [] + + +def main(): + cppflags = list(CPPFLAGS) + std = os.environ["CPYTHON_TEST_CPP_STD"] + name = os.environ["CPYTHON_TEST_EXT_NAME"] + + cppflags = [*CPPFLAGS, f'-std={std}'] + + cpp_ext = Extension( + name, + sources=[SOURCE], + language='c++', + extra_compile_args=cppflags) + setup(name='internal' + name, version='0.0', ext_modules=[cpp_ext]) + + +if __name__ == "__main__": + main() |