| # Distributed under the OSI-approved BSD 3-Clause License. See accompanying | |
| # file Copyright.txt or https://cmake.org/licensing for details. | |
| cmake_policy(PUSH) | |
| cmake_policy(SET CMP0053 NEW) | |
| cmake_policy(SET CMP0054 NEW) | |
| # Function parse implicit linker options. | |
| # This is used internally by CMake and should not be included by user | |
| # code. | |
| function(cmake_parse_library_architecture lang implicit_dirs implicit_objs output_var) | |
| unset(library_arch) | |
| # Detect library architecture directory name. | |
| if(CMAKE_LIBRARY_ARCHITECTURE_REGEX) | |
| foreach(dir IN LISTS implicit_dirs) | |
| if("${dir}" MATCHES "/lib/${CMAKE_LIBRARY_ARCHITECTURE_REGEX}$") | |
| get_filename_component(arch "${dir}" NAME) | |
| set(library_arch "${arch}") | |
| break() | |
| endif() | |
| endforeach() | |
| foreach(obj IN LISTS implicit_objs) | |
| get_filename_component(dir "${obj}" DIRECTORY) | |
| if("${dir}" MATCHES "(/usr)?/lib/${CMAKE_LIBRARY_ARCHITECTURE_REGEX}$") | |
| get_filename_component(arch "${dir}" NAME) | |
| set(library_arch "${arch}") | |
| break() | |
| endif() | |
| endforeach() | |
| endif() | |
| if(CMAKE_CXX_COMPILER_ID STREQUAL QCC) | |
| foreach(dir ${implicit_dirs}) | |
| if (dir MATCHES "/lib$") | |
| get_filename_component(assumedArchDir "${dir}" DIRECTORY) | |
| get_filename_component(archParentDir "${assumedArchDir}" DIRECTORY) | |
| if (archParentDir STREQUAL CMAKE_SYSROOT) | |
| get_filename_component(archDirName "${assumedArchDir}" NAME) | |
| set(library_arch "${archDirName}") | |
| break() | |
| endif() | |
| endif() | |
| endforeach() | |
| endif() | |
| # Return results. | |
| if(library_arch) | |
| set(${output_var} "${library_arch}" PARENT_SCOPE) | |
| endif() | |
| endfunction() | |
| cmake_policy(POP) |