Skip to content

Commit 0a03dce

Browse files
committed
Escape strings for _sysconfigdata template
1 parent c19785a commit 0a03dce

2 files changed

Lines changed: 64 additions & 25 deletions

File tree

graalpython/graalpy-pyconfig/CMakeLists.txt

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,15 @@ function(graalpy_sysconfig_env_value name)
107107
endif()
108108
endfunction()
109109

110+
function(graalpy_sysconfig_python_string name)
111+
set(value "${${name}}")
112+
string(REPLACE "\\" "\\\\" value "${value}")
113+
string(REPLACE "\"" "\\\"" value "${value}")
114+
string(REPLACE "\n" "\\n" value "${value}")
115+
string(REPLACE "\r" "\\r" value "${value}")
116+
set(${name}_PYTHON_STRING "${value}" PARENT_SCOPE)
117+
endfunction()
118+
110119
graalpy_sysconfig_value("OPT" "-DNDEBUG")
111120
graalpy_sysconfig_value("ARFLAGS" "rc")
112121
graalpy_sysconfig_value("USE_GNU_SOURCE" "-D_GNU_SOURCE=1")
@@ -142,5 +151,35 @@ graalpy_sysconfig_env_value("LDCXXSHARED")
142151
graalpy_sysconfig_env_value("LDSHARED")
143152
graalpy_sysconfig_value("LDLIBRARY" "libpython.${GRAALPY_SYSCONFIG_SOABI}${GRAALPY_SYSCONFIG_SHLIB_SUFFIX}")
144153

154+
set(GRAALPY_SYSCONFIG_STRING_NAMES
155+
ABIFLAGS
156+
AR
157+
ARFLAGS
158+
CC
159+
CCSHARED
160+
CFLAGS
161+
CFLAGS_DEFAULT
162+
CXX
163+
EXE
164+
EXT_SUFFIX
165+
LD
166+
LDCXXSHARED
167+
LDLIBRARY
168+
LDFLAGS
169+
LDSHARED
170+
MACOSX_DEPLOYMENT_TARGET
171+
MULTIARCH
172+
NM
173+
OPT
174+
RANLIB
175+
SHLIB_SUFFIX
176+
SOABI
177+
USE_GNU_SOURCE
178+
VERSION
179+
)
180+
foreach(name IN LISTS GRAALPY_SYSCONFIG_STRING_NAMES)
181+
graalpy_sysconfig_python_string("GRAALPY_SYSCONFIG_${name}")
182+
endforeach()
183+
145184
configure_file("pyconfig_template.h" "pyconfig.h" @ONLY)
146185
configure_file("_sysconfigdata_template.py" "${GRAALPY_SYSCONFIGDATA_NAME}.py" @ONLY)

graalpython/graalpy-pyconfig/_sysconfigdata_template.py

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -40,41 +40,41 @@
4040
# system configuration generated and used by the sysconfig module
4141

4242
build_time_vars = {
43-
"ABIFLAGS": "@GRAALPY_SYSCONFIG_ABIFLAGS@",
44-
"ARFLAGS": "@GRAALPY_SYSCONFIG_ARFLAGS@",
45-
"CCSHARED": "@GRAALPY_SYSCONFIG_CCSHARED@",
46-
"CFLAGS": "@GRAALPY_SYSCONFIG_CFLAGS@",
47-
"CFLAGS_DEFAULT": "@GRAALPY_SYSCONFIG_CFLAGS_DEFAULT@",
48-
"EXE": "@GRAALPY_SYSCONFIG_EXE@",
49-
"EXT_SUFFIX": "@GRAALPY_SYSCONFIG_EXT_SUFFIX@",
50-
"LDLIBRARY": "@GRAALPY_SYSCONFIG_LDLIBRARY@",
51-
"LDFLAGS": "@GRAALPY_SYSCONFIG_LDFLAGS@",
43+
"ABIFLAGS": "@GRAALPY_SYSCONFIG_ABIFLAGS_PYTHON_STRING@",
44+
"ARFLAGS": "@GRAALPY_SYSCONFIG_ARFLAGS_PYTHON_STRING@",
45+
"CCSHARED": "@GRAALPY_SYSCONFIG_CCSHARED_PYTHON_STRING@",
46+
"CFLAGS": "@GRAALPY_SYSCONFIG_CFLAGS_PYTHON_STRING@",
47+
"CFLAGS_DEFAULT": "@GRAALPY_SYSCONFIG_CFLAGS_DEFAULT_PYTHON_STRING@",
48+
"EXE": "@GRAALPY_SYSCONFIG_EXE_PYTHON_STRING@",
49+
"EXT_SUFFIX": "@GRAALPY_SYSCONFIG_EXT_SUFFIX_PYTHON_STRING@",
50+
"LDLIBRARY": "@GRAALPY_SYSCONFIG_LDLIBRARY_PYTHON_STRING@",
51+
"LDFLAGS": "@GRAALPY_SYSCONFIG_LDFLAGS_PYTHON_STRING@",
5252
"LIBPYTHON": "",
5353
"LIBS": "",
54-
"MACOSX_DEPLOYMENT_TARGET": "@GRAALPY_SYSCONFIG_MACOSX_DEPLOYMENT_TARGET@",
55-
"MULTIARCH": "@GRAALPY_SYSCONFIG_MULTIARCH@",
56-
"OPT": "@GRAALPY_SYSCONFIG_OPT@",
54+
"MACOSX_DEPLOYMENT_TARGET": "@GRAALPY_SYSCONFIG_MACOSX_DEPLOYMENT_TARGET_PYTHON_STRING@",
55+
"MULTIARCH": "@GRAALPY_SYSCONFIG_MULTIARCH_PYTHON_STRING@",
56+
"OPT": "@GRAALPY_SYSCONFIG_OPT_PYTHON_STRING@",
5757
"Py_GIL_DISABLED": @GRAALPY_SYSCONFIG_GIL_DISABLED@,
5858
"Py_DEBUG": 0,
5959
"Py_ENABLE_SHARED": 0,
6060
"Py_HASH_ALGORITHM": 0,
61-
"SHLIB_SUFFIX": "@GRAALPY_SYSCONFIG_SHLIB_SUFFIX@",
62-
"SO": "@GRAALPY_SYSCONFIG_EXT_SUFFIX@",
63-
"SOABI": "@GRAALPY_SYSCONFIG_SOABI@",
61+
"SHLIB_SUFFIX": "@GRAALPY_SYSCONFIG_SHLIB_SUFFIX_PYTHON_STRING@",
62+
"SO": "@GRAALPY_SYSCONFIG_EXT_SUFFIX_PYTHON_STRING@",
63+
"SOABI": "@GRAALPY_SYSCONFIG_SOABI_PYTHON_STRING@",
6464
"SYSLIBS": "",
65-
"USE_GNU_SOURCE": "@GRAALPY_SYSCONFIG_USE_GNU_SOURCE@",
66-
"VERSION": "@GRAALPY_SYSCONFIG_VERSION@",
65+
"USE_GNU_SOURCE": "@GRAALPY_SYSCONFIG_USE_GNU_SOURCE_PYTHON_STRING@",
66+
"VERSION": "@GRAALPY_SYSCONFIG_VERSION_PYTHON_STRING@",
6767
}
6868

6969
for _key, _value in {
70-
"AR": "@GRAALPY_SYSCONFIG_AR@",
71-
"CC": "@GRAALPY_SYSCONFIG_CC@",
72-
"CXX": "@GRAALPY_SYSCONFIG_CXX@",
73-
"LD": "@GRAALPY_SYSCONFIG_LD@",
74-
"LDCXXSHARED": "@GRAALPY_SYSCONFIG_LDCXXSHARED@",
75-
"LDSHARED": "@GRAALPY_SYSCONFIG_LDSHARED@",
76-
"NM": "@GRAALPY_SYSCONFIG_NM@",
77-
"RANLIB": "@GRAALPY_SYSCONFIG_RANLIB@",
70+
"AR": "@GRAALPY_SYSCONFIG_AR_PYTHON_STRING@",
71+
"CC": "@GRAALPY_SYSCONFIG_CC_PYTHON_STRING@",
72+
"CXX": "@GRAALPY_SYSCONFIG_CXX_PYTHON_STRING@",
73+
"LD": "@GRAALPY_SYSCONFIG_LD_PYTHON_STRING@",
74+
"LDCXXSHARED": "@GRAALPY_SYSCONFIG_LDCXXSHARED_PYTHON_STRING@",
75+
"LDSHARED": "@GRAALPY_SYSCONFIG_LDSHARED_PYTHON_STRING@",
76+
"NM": "@GRAALPY_SYSCONFIG_NM_PYTHON_STRING@",
77+
"RANLIB": "@GRAALPY_SYSCONFIG_RANLIB_PYTHON_STRING@",
7878
}.items():
7979
if _value:
8080
build_time_vars[_key] = _value

0 commit comments

Comments
 (0)