summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2019-01-24 22:15:32 +0100
committerJussi Pakkanen <jpakkane@gmail.com>2019-01-24 23:15:32 +0200
commit28edc7ef61f6c4cdc74f68128a4b3f97bda060a6 (patch)
tree18436c49d1df42bf33a516a8eb7685225c3f1d2a
parentded59c081979dce433e3456c18ce6dbc3ae954c7 (diff)
downloadmeson-28edc7ef61f6c4cdc74f68128a4b3f97bda060a6.tar.gz
Try multiple CMAKE_LIBRARY_ARCHITECTURE. Closes #4812
-rw-r--r--mesonbuild/dependencies/data/CMakeLists.txt29
1 files changed, 18 insertions, 11 deletions
diff --git a/mesonbuild/dependencies/data/CMakeLists.txt b/mesonbuild/dependencies/data/CMakeLists.txt
index 144ffda64..6f51681f2 100644
--- a/mesonbuild/dependencies/data/CMakeLists.txt
+++ b/mesonbuild/dependencies/data/CMakeLists.txt
@@ -1,24 +1,31 @@
cmake_minimum_required(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} )
# Inspired by CMakeDetermineCompilerABI.cmake to set CMAKE_LIBRARY_ARCHITECTURE
+set(LIB_ARCH_LIST)
if(CMAKE_LIBRARY_ARCHITECTURE_REGEX)
- if(NOT DEFINED CMAKE_LIBRARY_ARCHITECTURE)
- file(GLOB implicit_dirs RELATIVE /lib /lib/*-linux-gnu* )
- foreach(dir ${implicit_dirs})
- if("${dir}" MATCHES "${CMAKE_LIBRARY_ARCHITECTURE_REGEX}")
- set(CMAKE_LIBRARY_ARCHITECTURE "${dir}")
- break()
- endif()
- endforeach()
- endif()
+ file(GLOB implicit_dirs RELATIVE /lib /lib/*-linux-gnu* )
+ foreach(dir ${implicit_dirs})
+ if("${dir}" MATCHES "${CMAKE_LIBRARY_ARCHITECTURE_REGEX}")
+ list(APPEND LIB_ARCH_LIST "${dir}")
+ endif()
+ endforeach()
endif()
-find_package("${NAME}" QUIET)
-
set(PACKAGE_FOUND FALSE)
set(_packageName "${NAME}")
string(TOUPPER "${_packageName}" PACKAGE_NAME)
+while(TRUE)
+ find_package("${NAME}" QUIET)
+
+ if(${_packageName}_FOUND OR ${PACKAGE_NAME}_FOUND OR "${LIB_ARCH_LIST}" STREQUAL "")
+ break()
+ endif()
+
+ list(GET LIB_ARCH_LIST 0 CMAKE_LIBRARY_ARCHITECTURE)
+ list(REMOVE_AT LIB_ARCH_LIST 0)
+endwhile()
+
if(${_packageName}_FOUND OR ${PACKAGE_NAME}_FOUND)
set(PACKAGE_FOUND TRUE)