diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-12-28 13:37:31 +0100 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-12-29 19:02:24 +0200 |
commit | 4f6453bc327d91c29956459951a06bcdc73ba040 (patch) | |
tree | 2eecc6438dfa3399c67b67a0ea58ef8a49720481 /mesonbuild/cmake/traceparser.py | |
parent | d67423ab11bbcd0e81d81005608a97363804f6a2 (diff) | |
download | meson-4f6453bc327d91c29956459951a06bcdc73ba040.zip meson-4f6453bc327d91c29956459951a06bcdc73ba040.tar.gz meson-4f6453bc327d91c29956459951a06bcdc73ba040.tar.bz2 |
cmake: Use trace for missing link flags (fixes #6386)
This is neccessary for static libraries, since the
CMake file API does not add link flags here.
Diffstat (limited to 'mesonbuild/cmake/traceparser.py')
-rw-r--r-- | mesonbuild/cmake/traceparser.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/mesonbuild/cmake/traceparser.py b/mesonbuild/cmake/traceparser.py index 50cabab..84b2120 100644 --- a/mesonbuild/cmake/traceparser.py +++ b/mesonbuild/cmake/traceparser.py @@ -89,6 +89,7 @@ class CMakeTraceParser: 'target_compile_definitions': self._cmake_target_compile_definitions, 'target_compile_options': self._cmake_target_compile_options, 'target_include_directories': self._cmake_target_include_directories, + 'target_link_libraries': self._cmake_target_link_libraries, 'target_link_options': self._cmake_target_link_options, 'add_dependencies': self._cmake_add_dependencies, } @@ -432,6 +433,10 @@ class CMakeTraceParser: # DOC: https://cmake.org/cmake/help/latest/command/target_link_options.html self._parse_common_target_options('target_link_options', 'LINK_OPTIONS', 'INTERFACE_LINK_OPTIONS', tline) + def _cmake_target_link_libraries(self, tline: CMakeTraceLine) -> None: + # DOC: https://cmake.org/cmake/help/latest/command/target_link_libraries.html + self._parse_common_target_options('target_link_options', 'LINK_LIBRARIES', 'INTERFACE_LINK_LIBRARIES', tline) + def _parse_common_target_options(self, func: str, private_prop: str, interface_prop: str, tline: CMakeTraceLine, ignore: Optional[List[str]] = None, paths: bool = False): if ignore is None: ignore = ['BEFORE'] @@ -453,14 +458,14 @@ class CMakeTraceParser: if i in ignore: continue - if i in ['INTERFACE', 'PUBLIC', 'PRIVATE']: + if i in ['INTERFACE', 'LINK_INTERFACE_LIBRARIES', 'PUBLIC', 'PRIVATE', 'LINK_PUBLIC', 'LINK_PRIVATE']: mode = i continue - if mode in ['INTERFACE', 'PUBLIC']: + if mode in ['INTERFACE', 'LINK_INTERFACE_LIBRARIES', 'PUBLIC', 'LINK_PUBLIC']: interface += [i] - if mode in ['PUBLIC', 'PRIVATE']: + if mode in ['PUBLIC', 'PRIVATE', 'LINK_PRIVATE']: private += [i] if paths: |