--- Modules/Platform/Darwin.cmake.orig +++ Modules/Platform/Darwin.cmake @@ -265,7 +265,9 @@ endforeach() endif() endif() -list(APPEND CMAKE_SYSTEM_PREFIX_PATH - /sw # Fink - /opt/local # MacPorts - ) + +# prepend the MacPorts prefix to CMAKE_SYSTEM_PREFIX_PATH +# might already exist after this if the user has specified it +list(INSERT CMAKE_SYSTEM_PREFIX_PATH 0 + __PREFIX__ +) --- Modules/Platform/UnixPaths.cmake.orig +++ Modules/Platform/UnixPaths.cmake @@ -30,22 +30,39 @@ # synchronized list(APPEND CMAKE_SYSTEM_PREFIX_PATH # Standard - /usr/local /usr / + /usr / +) - # CMake install location - "${_CMAKE_INSTALL_DIR}" - ) -if (NOT CMAKE_FIND_NO_INSTALL_PREFIX) +# CMake install location +# append the _CMAKE_INSTALL_DIR if not already in the list +list(FIND CMAKE_SYSTEM_PREFIX_PATH "${_CMAKE_INSTALL_DIR}" HAS_ENTRY) +if(${HAS_ENTRY} EQUAL -1) list(APPEND CMAKE_SYSTEM_PREFIX_PATH - # Project install destination. - "${CMAKE_INSTALL_PREFIX}" + "${_CMAKE_INSTALL_DIR}" ) - if(CMAKE_STAGING_PREFIX) +endif() +unset(HAS_ENTRY) + +if(NOT CMAKE_FIND_NO_INSTALL_PREFIX) + # append the CMAKE_INSTALL_PREFIX if not already in the list + list(FIND CMAKE_SYSTEM_PREFIX_PATH "${CMAKE_INSTALL_PREFIX}" HAS_ENTRY) + if(${HAS_ENTRY} EQUAL -1) list(APPEND CMAKE_SYSTEM_PREFIX_PATH - # User-supplied staging prefix. - "${CMAKE_STAGING_PREFIX}" + # Project install destination. + "${CMAKE_INSTALL_PREFIX}" ) endif() + unset(HAS_ENTRY) + if(CMAKE_STAGING_PREFIX) + # append the CMAKE_STAGING_PREFIX if not already in the list + list(FIND CMAKE_SYSTEM_PREFIX_PATH "${CMAKE_STAGING_PREFIX}" HAS_ENTRY) + if(${HAS_ENTRY} EQUAL -1) + list(APPEND CMAKE_SYSTEM_PREFIX_PATH + # User-supplied staging prefix. + "${CMAKE_STAGING_PREFIX}" + ) + endif() + endif() endif() _cmake_record_install_prefix()