summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcomex <comexk@gmail.com>2014-10-29 00:11:57 -0400
committercomex <comexk@gmail.com>2014-11-14 15:00:50 -0500
commitefb2f361aa1d93cf1772ece2f672ddf367d0dc19 (patch)
tree9819238c2b7a6703b1a3e1e58e975a460d91611e
parentcb0af4057e78defd12822092c6fd9bf074b60164 (diff)
Don't murder the default PATH and CMAKE_SYSTEM_PREFIX_PATH on OS X. Just prioritize /usr.
Changing PATH basically screws everything up, and while the attempt to avoid MacPorts copies of system libraries was well-intentioned, it made the OS X buildbot unable to pick up ffmpeg and libusb. It's sufficient to put /usr first to make sure we use the system copies of duplicated libraries.
-rw-r--r--CMakeLists.txt19
1 files changed, 15 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e039121ac4..08dce87c62 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,6 +11,9 @@ option(ENABLE_QT "Enable Qt (use the experimental Qt interface)" OFF)
option(ENABLE_PCH "Use PCH to speed up compilation" ON)
option(ENABLE_LTO "Enables Link Time Optimization" OFF)
option(ENABLE_GENERIC "Enables generic build that should run on any little-endian host" OFF)
+if(APPLE)
+ option(OSX_USE_DEFAULT_SEARCH_PATH "Don't prioritize system library paths" OFF)
+endif()
option(ENCODE_FRAMEDUMPS "Encode framedumps in AVI format" ON)
@@ -219,10 +222,18 @@ if(ENABLE_LTO)
endif()
if(APPLE)
- # Ignore MacPorts and Fink and any other locally installed packages that
- # might prevent building a distributable binary.
- set(CMAKE_SYSTEM_PREFIX_PATH /usr)
- set(ENV{PATH} /usr/bin:/bin:/usr/sbin:/sbin)
+ if(NOT OSX_USE_DEFAULT_SEARCH_PATH)
+ # Hack up the path to prioritize the path to built-in OS libraries to
+ # increase the chance of not depending on a bunch of copies of them
+ # installed by MacPorts, Fink, Homebrew, etc, and ending up copying
+ # them into the bundle. Since we optionally depend on libraries which
+ # are not part of OS X (ffmpeg, libusb, etc.), however, don't remove
+ # the default path entirely as was done in a previous version of this
+ # file. This is still kinda evil, since it defeats the user's path
+ # settings...
+ # See http://www.cmake.org/cmake/help/v3.0/command/find_program.html
+ set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};/usr")
+ endif()
# Some of our code contains Objective C constructs.
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -x objective-c -stdlib=libc++")