Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnkit Meel <ankitjmeel@gmail.com>2020-10-16 11:05:58 +0300
committerAnkit Meel <ankitjmeel@gmail.com>2020-10-16 11:11:29 +0300
commitbb872b25f219d1a9bc2446228b6dc7a9248d7f20 (patch)
tree2d3f4901aebfe44c0e601d9fc65d078a56722155
parent3ffe65a7fb990836ae389289ae9bd7a675fea980 (diff)
CMake/macOS: Search for headers in Frameworks last.
https://devtalk.blender.org/t/libpng-version-mismatch/15799/ By default, `CMAKE_FIND_FRAMEWORK` is `FIRST`. CMake searches headers and libraries separately. So library is found in LIBDIR, and headers like those in Mono are detected before the headers in LIBDIR, and we get a version mismatch. So set the priority of Frameworks to `LAST`. https://gitlab.kitware.com/cmake/cmake/-/issues/18921 https://gitlab.kitware.com/cmake/cmake/-/issues/16427 {rBbac91956ae97} tried to fix the same issue, but it didn't work. It's fine to keep the changes made there, just removing the comment that may give false sense of security.
-rw-r--r--build_files/cmake/macros.cmake8
-rw-r--r--build_files/cmake/platform/platform_apple.cmake2
2 files changed, 8 insertions, 2 deletions
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index a3f3feeaaa2..e75505e9885 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -1241,8 +1241,16 @@ endmacro()
macro(without_system_libs_begin)
set(CMAKE_IGNORE_PATH "${CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES};${CMAKE_SYSTEM_INCLUDE_PATH};${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES};${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}")
+ if(APPLE)
+ # Avoid searching for headers in frameworks (like Mono), and libraries in LIBDIR.
+ set(CMAKE_FIND_FRAMEWORK LAST)
+ endif()
endmacro()
macro(without_system_libs_end)
unset(CMAKE_IGNORE_PATH)
+ if(APPLE)
+ # FIRST is the default.
+ set(CMAKE_FIND_FRAMEWORK FIRST)
+ endif()
endmacro()
diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
index f755c70a859..36e6d71bfb2 100644
--- a/build_files/cmake/platform/platform_apple.cmake
+++ b/build_files/cmake/platform/platform_apple.cmake
@@ -227,8 +227,6 @@ if(WITH_SDL)
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework ForceFeedback")
endif()
-# Use CMP0074 for our benefit. Stop CMake from searching libraries in one
-# place and headers in another.
set(PNG_ROOT ${LIBDIR}/png)
find_package(PNG REQUIRED)