From 8ab270bf43f038bba4f992031508b065fa83f390 Mon Sep 17 00:00:00 2001
From: Lars Wendler <polynomial-c@gentoo.org>
Date: Fri, 1 Mar 2019 23:11:41 +0100
Subject: [PATCH] Set some proper paths to make cmake find our tools.

The ebuild now adds an extra / at the end of $EPREFIX so that it is
never the empty string (so that CMAKE_SYSTEM_PREFIX_PATH remains
correct)

Original patch by Heiko Przybyl.
Updated by Chris Reffett (cmake-2.8.8)
Updated by Johannes Huber (cmake-2.8.9)
Updated by Michael Palimaka (cmake-2.8.10)
Updated by Chris Reffett (cmake-2.8.11)
Updated by Michael Palimaka (cmake-3.0.0)
Updated by Lars Wendler (cmake-3.9.0_rc2)
Updated by Benda Xu (cmake-3.13.4)
Updated by Lars Wendler (cmake-3.14.0_rc1)
Updated by Lars Wendler (cmake-3.14.0_rc2)
Updated by Lars Wendler (cmake-3.14.0_rc3
---
 Modules/Platform/Darwin.cmake    | 12 +++++++----
 Modules/Platform/UnixPaths.cmake | 35 ++++++++++++++++++++++++--------
 2 files changed, 35 insertions(+), 12 deletions(-)

diff --git a/Modules/Platform/Darwin.cmake b/Modules/Platform/Darwin.cmake
index 5590433a3b..b04383e51d 100644
--- a/Modules/Platform/Darwin.cmake
+++ b/Modules/Platform/Darwin.cmake
@@ -116,9 +116,9 @@ set(CMAKE_C_FRAMEWORK_SEARCH_FLAG -F)
 set(CMAKE_CXX_FRAMEWORK_SEARCH_FLAG -F)
 set(CMAKE_Fortran_FRAMEWORK_SEARCH_FLAG -F)
 
-# default to searching for frameworks first
+# default to searching for frameworks last
 if(NOT DEFINED CMAKE_FIND_FRAMEWORK)
-  set(CMAKE_FIND_FRAMEWORK FIRST)
+  set(CMAKE_FIND_FRAMEWORK LAST)
 endif()
 
 # Older OS X linkers do not report their framework search path
@@ -140,6 +140,8 @@ endif()
 
 # set up the default search directories for frameworks
 set(CMAKE_SYSTEM_FRAMEWORK_PATH
+  @GENTOO_PORTAGE_EPREFIX@Frameworks
+  @GENTOO_PORTAGE_EPREFIX@usr/lib
   ~/Library/Frameworks
   )
 if(_CMAKE_OSX_SYSROOT_PATH)
@@ -186,13 +188,15 @@ if(CMAKE_OSX_SYSROOT)
   endif()
 endif()
 
-# default to searching for application bundles first
+# default to searching for application bundles last
 if(NOT DEFINED CMAKE_FIND_APPBUNDLE)
-  set(CMAKE_FIND_APPBUNDLE FIRST)
+  set(CMAKE_FIND_APPBUNDLE LAST)
 endif()
 # set up the default search directories for application bundles
 set(_apps_paths)
 foreach(_path
+  @GENTOO_PORTAGE_EPREFIX@Applications
+  @GENTOO_PORTAGE_EPREFIX@usr/bin
   "~/Applications"
   "/Applications"
   "${OSX_DEVELOPER_ROOT}/../Applications" # Xcode 4.3+
diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake
index 97f744d521..8d11827371 100644
--- a/Modules/Platform/UnixPaths.cmake
+++ b/Modules/Platform/UnixPaths.cmake
@@ -23,7 +23,8 @@ get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
 # search types.
 list(APPEND CMAKE_SYSTEM_PREFIX_PATH
   # Standard
-  /usr/local /usr /
+  @GENTOO_PORTAGE_EPREFIX@usr/local @GENTOO_PORTAGE_EPREFIX@usr @GENTOO_PORTAGE_EPREFIX@
+  @GENTOO_HOST@/usr/local /usr /
 
   # CMake install location
   "${_CMAKE_INSTALL_DIR}"
@@ -50,17 +51,33 @@ list(APPEND CMAKE_SYSTEM_PREFIX_PATH
 
 # List common include file locations not under the common prefixes.
 list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
-  # X11
-  /usr/include/X11
+  @GENTOO_PORTAGE_EPREFIX@usr/include
   )
 
 list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
-  # X11
-  /usr/lib/X11
+  @GENTOO_PORTAGE_GCCLIBDIR@/gcc
+  @GENTOO_PORTAGE_GCCLIBDIR@
+  @GENTOO_PORTAGE_EPREFIX@usr/lib64
+  @GENTOO_PORTAGE_EPREFIX@usr/libx32
+  @GENTOO_PORTAGE_EPREFIX@usr/lib32
+  @GENTOO_PORTAGE_EPREFIX@usr/lib
+  @GENTOO_PORTAGE_EPREFIX@lib
+  )
+
+list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
+  @GENTOO_PORTAGE_EPREFIX@usr/bin
+  @GENTOO_PORTAGE_EPREFIX@bin
   )
 
 list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
-  /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64
+  @GENTOO_PORTAGE_GCCLIBDIR@/gcc
+  @GENTOO_PORTAGE_GCCLIBDIR@
+  @GENTOO_PORTAGE_EPREFIX@usr/lib64
+  @GENTOO_PORTAGE_EPREFIX@usr/libx32
+  @GENTOO_PORTAGE_EPREFIX@usr/lib32
+  @GENTOO_PORTAGE_EPREFIX@usr/lib
+  @GENTOO_PORTAGE_EPREFIX@lib
+  @GENTOO_HOST@/lib /usr/lib /usr/lib32 /usr/lib64 /usr/libx32
   )
 
 if(CMAKE_SYSROOT_COMPILE)
@@ -73,11 +90,13 @@ endif()
 # parsing the implicit directory information from compiler output.
 set(_CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES_INIT
   ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}
-  "${_cmake_sysroot_compile}/usr/include"
+  @GENTOO_PORTAGE_EPREFIX@usr/include
+  @GENTOO_HOST@/usr/include
   )
 set(_CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES_INIT
   ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}
-  "${_cmake_sysroot_compile}/usr/include"
+  @GENTOO_PORTAGE_EPREFIX@usr/include
+  @GENTOO_HOST@/usr/include
   )
 set(_CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES_INIT
   ${CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES}
-- 
2.21.0

