You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.7 KiB
55 lines
1.7 KiB
# 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)
|