bpo-40370: Use the same compile and link args as the interpreter used in test_peg_generator (GH-19674)
This commit is contained in:
parent
1221135289
commit
9e6a1312c1
|
@ -8,6 +8,7 @@ import sys
|
|||
|
||||
from test import test_tools
|
||||
from test.test_peg_generator.ast_dump import ast_dump
|
||||
from test import support
|
||||
from pathlib import PurePath, Path
|
||||
from typing import Sequence
|
||||
|
||||
|
@ -23,6 +24,9 @@ with test_tools.imports_under_tool('peg_generator'):
|
|||
|
||||
class TestCParser(unittest.TestCase):
|
||||
def setUp(self):
|
||||
cmd = support.missing_compiler_executable()
|
||||
if cmd is not None:
|
||||
self.skipTest('The %r command is not found' % cmd)
|
||||
self.tmp_path = tempfile.mkdtemp()
|
||||
|
||||
def tearDown(self):
|
||||
|
|
|
@ -2,6 +2,7 @@ import pathlib
|
|||
import shutil
|
||||
import tokenize
|
||||
import sys
|
||||
import sysconfig
|
||||
|
||||
from typing import Optional, Tuple
|
||||
|
||||
|
@ -22,6 +23,14 @@ from pegen.tokenizer import Tokenizer
|
|||
MOD_DIR = pathlib.Path(__file__).parent
|
||||
|
||||
|
||||
def get_extra_flags(compiler_flags, compiler_py_flags_nodist):
|
||||
flags = sysconfig.get_config_var(compiler_flags)
|
||||
py_flags_nodist = sysconfig.get_config_var(compiler_py_flags_nodist)
|
||||
if flags is None or py_flags_nodist is None:
|
||||
return []
|
||||
return f'{flags} {py_flags_nodist}'.split()
|
||||
|
||||
|
||||
def compile_c_extension(
|
||||
generated_source_path: str,
|
||||
build_dir: Optional[str] = None,
|
||||
|
@ -43,9 +52,8 @@ def compile_c_extension(
|
|||
|
||||
source_file_path = pathlib.Path(generated_source_path)
|
||||
extension_name = source_file_path.stem
|
||||
extra_compile_args = []
|
||||
if not sys.platform.startswith('win'):
|
||||
extra_compile_args.append("-std=c99")
|
||||
extra_compile_args = get_extra_flags('CFLAGS', 'PY_CFLAGS_NODIST')
|
||||
extra_link_args = get_extra_flags('LDFLAGS', 'PY_LDFLAGS_NODIST')
|
||||
if keep_asserts:
|
||||
extra_compile_args.append("-UNDEBUG")
|
||||
extension = [
|
||||
|
@ -66,6 +74,7 @@ def compile_c_extension(
|
|||
str(MOD_DIR.parent.parent.parent / "Parser" / "pegen"),
|
||||
],
|
||||
extra_compile_args=extra_compile_args,
|
||||
extra_link_args=extra_link_args,
|
||||
)
|
||||
]
|
||||
dist = Distribution({"name": extension_name, "ext_modules": extension})
|
||||
|
|
Loading…
Reference in New Issue