[Bf-blender-cvs] [83124856d05] master: Cmake/macOS: strictly disallow searching in frameworks

Ankit Meel noreply at git.blender.org
Mon Oct 19 15:17:39 CEST 2020


Commit: 83124856d05ee4da605ab247e6286755690e54dd
Author: Ankit Meel
Date:   Mon Oct 19 18:45:44 2020 +0530
Branches: master
https://developer.blender.org/rB83124856d05ee4da605ab247e6286755690e54dd

Cmake/macOS: strictly disallow searching in frameworks

This is a stricter version of the change made in
{rBbb872b25f219d1a9bc2446228b6dc}

Cmake must never look into Frameworks when the system
library guards (`without_system_libs_begin`/`without_system_libs_end`)
are present.

OpenAL didn't follow this and OpenAL.framework in Xcode would be used.
The Cmake's `FindOpenAL.cmake` looks for both library (in this case,
the .framework file), and include dir.
Precompiled libraries don't contain the former. So `find_package`
cannot be used, or it becomes the hack that {rBb2c707747da9} removed.
So hardcode the include dir path, and other variables.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D9267

===================================================================

M	build_files/cmake/macros.cmake
M	build_files/cmake/platform/platform_apple.cmake

===================================================================

diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index e75505e9885..8498c68c21c 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -1243,7 +1243,7 @@ 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)
+    set(CMAKE_FIND_FRAMEWORK NEVER)
   endif()
 endmacro()
 
diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
index 36e6d71bfb2..0413b89f6bd 100644
--- a/build_files/cmake/platform/platform_apple.cmake
+++ b/build_files/cmake/platform/platform_apple.cmake
@@ -73,12 +73,12 @@ if(EXISTS ${LIBDIR})
 endif()
 
 if(WITH_OPENAL)
-  find_package(OpenAL)
-  if(OPENAL_FOUND)
-    set(WITH_OPENAL ON)
-  else()
-    set(WITH_OPENAL OFF)
-  endif()
+  # Hardcoding this is better than CMake searching in `~/Library/Frameworks`
+  # or `/Library/Frameworks` or Xcode SDK's frameworks.
+  set(OPENAL_INCLUDE_DIR "${LIBDIR}/openal/include/AL")
+  set(OPENAL_LIBRARY)
+  set(OPENAL_FOUND TRUE)
+  print_found_status("OpenAL" "${OPENAL_INCLUDE_DIR}")
 endif()
 
 if(WITH_ALEMBIC)



More information about the Bf-blender-cvs mailing list