88from conan .internal .api .install .generators import relativize_path
99from conan .internal .model .pkg_type import PackageType
1010from conan .internal .graph .graph import CONTEXT_BUILD , CONTEXT_HOST
11+ from conan .tools .cmake .utils import cmake_escape_value
1112
1213
1314class TargetConfigurationTemplate2 :
@@ -181,8 +182,7 @@ def _get_cmake_lib(self, info, components, pkg_folder, pkg_folder_var):
181182 for i in info .includedirs ) if info .includedirs else ""
182183 requires = self ._requires (info , components )
183184 assert isinstance (requires , dict )
184- defines = " " .join (info .defines )
185- # TODO: Missing escaping?
185+ defines = " " .join (cmake_escape_value (f ) for f in info .defines )
186186 # FIXME: Filter by lib traits!!!!!
187187 if not self ._require .headers : # If not depending on headers, paths and
188188 includedirs = defines = None
@@ -191,10 +191,10 @@ def _get_cmake_lib(self, info, components, pkg_folder, pkg_folder_var):
191191 "includedirs" : includedirs ,
192192 "defines" : defines ,
193193 "requires" : requires ,
194- "cxxflags" : " " .join (info .cxxflags ),
195- "cflags" : " " .join (info .cflags ),
196- "sharedlinkflags" : " " .join (info .sharedlinkflags ),
197- "exelinkflags" : " " .join (info .exelinkflags ),
194+ "cxxflags" : " " .join (cmake_escape_value ( f ) for f in info .cxxflags ),
195+ "cflags" : " " .join (cmake_escape_value ( f ) for f in info .cflags ),
196+ "sharedlinkflags" : " " .join (cmake_escape_value ( v ) for v in info .sharedlinkflags ),
197+ "exelinkflags" : " " .join (cmake_escape_value ( v ) for v in info .exelinkflags ),
198198 "system_libs" : " " .join (info .system_libs ),
199199 "sources" : " " .join (sources )
200200 }
@@ -306,11 +306,6 @@ def escape(p_):
306306 return escape (p )
307307 return f"${{{ pkg_folder_var } }}/{ escape (p )} "
308308
309- @staticmethod
310- def _escape_cmake_string (values ):
311- return " " .join (v .replace ("\\ " , "\\ \\ " ).replace ('$' , '\\ $' ).replace ('"' , '\\ "' )
312- for v in values )
313-
314309 @property
315310 def _template (self ):
316311 # TODO: CMake 3.24: Apple Frameworks: https://cmake.org/cmake/help/latest/manual/cmake-generator-expressions.7.html#genex:LINK_LIBRARY
0 commit comments