From 5c4f3c236596d2f460f6299fd20729b0a1631507 Mon Sep 17 00:00:00 2001
From: Florent Pruvost <florent.pruvost@inria.fr>
Date: Thu, 9 Jan 2020 17:33:23 +0100
Subject: [PATCH] add a check about headers directory if variable empty even if
 found with pkg-config, can happen if directory of headers already in some
 environment variables, avoid to use PKG_CONFIG_ALLOW_SYSTEM_CFLAGS

---
 modules/find/FindAL4SAN.cmake    |  3 +++
 modules/find/FindCHAMELEON.cmake |  3 +++
 modules/find/FindEZTRACE.cmake   |  3 +++
 modules/find/FindFABULOUS.cmake  |  3 +++
 modules/find/FindFFTW.cmake      | 12 ++++++++++++
 modules/find/FindFXT.cmake       |  3 +++
 modules/find/FindGTG.cmake       |  3 +++
 modules/find/FindHQR.cmake       |  3 +++
 modules/find/FindHWLOC.cmake     |  3 +++
 modules/find/FindPAPI.cmake      |  3 +++
 modules/find/FindPARSEC.cmake    |  3 +++
 modules/find/FindPASTIX.cmake    |  3 +++
 modules/find/FindPETSC.cmake     |  3 +++
 modules/find/FindSIMGRID.cmake   |  3 +++
 modules/find/FindSLEPC.cmake     |  3 +++
 modules/find/FindSPM.cmake       |  3 +++
 modules/find/FindSTARPU.cmake    |  7 +++++++
 17 files changed, 64 insertions(+)

diff --git a/modules/find/FindAL4SAN.cmake b/modules/find/FindAL4SAN.cmake
index badefdd..817e090 100644
--- a/modules/find/FindAL4SAN.cmake
+++ b/modules/find/FindAL4SAN.cmake
@@ -88,6 +88,9 @@ if(PKG_CONFIG_EXECUTABLE)
   endif()
 
   if (AL4SAN_FOUND AND AL4SAN_LIBRARIES)
+    if (NOT AL4SAN_INCLUDE_DIRS)
+      pkg_get_variable(AL4SAN_INCLUDE_DIRS al4san includedir)
+    endif()
     set(AL4SAN_FOUND_WITH_PKGCONFIG "TRUE")
     find_pkgconfig_libraries_absolute_path(AL4SAN)
   else()
diff --git a/modules/find/FindCHAMELEON.cmake b/modules/find/FindCHAMELEON.cmake
index 6480f86..1c1453f 100644
--- a/modules/find/FindCHAMELEON.cmake
+++ b/modules/find/FindCHAMELEON.cmake
@@ -178,6 +178,9 @@ if(PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_GIVEN_BY_USER)
   endif()
 
   if (CHAMELEON_FOUND AND CHAMELEON_LIBRARIES)
+    if (NOT CHAMELEON_INCLUDE_DIRS)
+      pkg_get_variable(CHAMELEON_INCLUDE_DIRS chameleon includedir)
+    endif()
     set(CHAMELEON_FOUND_WITH_PKGCONFIG "TRUE")
     find_pkgconfig_libraries_absolute_path(CHAMELEON)
   else()
diff --git a/modules/find/FindEZTRACE.cmake b/modules/find/FindEZTRACE.cmake
index 19fb409..8f68461 100644
--- a/modules/find/FindEZTRACE.cmake
+++ b/modules/find/FindEZTRACE.cmake
@@ -98,6 +98,9 @@ if( PKG_CONFIG_EXECUTABLE AND NOT EZTRACE_GIVEN_BY_USER )
         "\n   the PKG_CONFIG_PATH environment variable.${ColourReset}")
     endif()
     if (EZTRACE_FOUND AND EZTRACE_LIBRARIES)
+      if (NOT EZTRACE_INCLUDE_DIRS)
+        pkg_get_variable(EZTRACE_INCLUDE_DIRS eztrace includedir)
+      endif()
       set(EZTRACE_FOUND_WITH_PKGCONFIG "TRUE")
       find_pkgconfig_libraries_absolute_path(EZTRACE)
     else()
diff --git a/modules/find/FindFABULOUS.cmake b/modules/find/FindFABULOUS.cmake
index ef219f1..cc8ce29 100644
--- a/modules/find/FindFABULOUS.cmake
+++ b/modules/find/FindFABULOUS.cmake
@@ -123,6 +123,9 @@ if( PKG_CONFIG_EXECUTABLE AND NOT FABULOUS_GIVEN_BY_USER )
   endif()
 
   if (FABULOUS_FOUND AND FABULOUS_LIBRARIES)
+    if (NOT FABULOUS_INCLUDE_DIRS)
+      pkg_get_variable(FABULOUS_INCLUDE_DIRS fabulous_c_api includedir)
+    endif()
     set(FABULOUS_FOUND_WITH_PKGCONFIG "TRUE")
     find_pkgconfig_libraries_absolute_path(FABULOUS)
   else()
diff --git a/modules/find/FindFFTW.cmake b/modules/find/FindFFTW.cmake
index 7d4c8f1..d7997da 100644
--- a/modules/find/FindFFTW.cmake
+++ b/modules/find/FindFFTW.cmake
@@ -253,6 +253,9 @@ if (NOT FFTW_LOOK_FOR_MKL AND NOT FFTW_LOOK_FOR_ESSL)
       pkg_search_module(FFTW3F fftw3f)
       pkg_search_module(FFTW3 fftw3)
       if (FFTW3F_FOUND)
+        if (NOT FFTW3F_INCLUDE_DIRS)
+          pkg_get_variable(FFTW3F_INCLUDE_DIRS fftw3f includedir)
+        endif()
         if (NOT FFTW_FIND_QUIETLY)
           message(STATUS "Looking for FFTW3F - found using PkgConfig")
         endif()
@@ -283,6 +286,9 @@ if (NOT FFTW_LOOK_FOR_MKL AND NOT FFTW_LOOK_FOR_ESSL)
       pkg_search_module(FFTW3L fftw3l)
       pkg_search_module(FFTW3 fftw3)
       if (FFTW3L_FOUND)
+        if (NOT FFTW3L_INCLUDE_DIRS)
+          pkg_get_variable(FFTW3L_INCLUDE_DIRS fftw3l includedir)
+        endif()
         if (NOT FFTW_FIND_QUIETLY)
           message(STATUS "Looking for FFTW3L - found using PkgConfig")
         endif()
@@ -313,6 +319,9 @@ if (NOT FFTW_LOOK_FOR_MKL AND NOT FFTW_LOOK_FOR_ESSL)
       pkg_search_module(FFTW3Q fftw3q)
       pkg_search_module(FFTW3 fftw3)
       if (FFTW3Q_FOUND)
+        if (NOT FFTW3Q_INCLUDE_DIRS)
+          pkg_get_variable(FFTW3Q_INCLUDE_DIRS fftw3q includedir)
+        endif()
         if (NOT FFTW_FIND_QUIETLY)
           message(STATUS "Looking for FFTW3Q - found using PkgConfig")
         endif()
@@ -349,6 +358,9 @@ if (NOT FFTW_LOOK_FOR_MKL AND NOT FFTW_LOOK_FOR_ESSL)
       if (NOT FFTW_FIND_QUIETLY)
         message(STATUS "Looking for FFTW3 - found using PkgConfig")
       endif()
+      if (NOT FFTW3_INCLUDE_DIRS)
+        pkg_get_variable(FFTW3_INCLUDE_DIRS fftw3 includedir)
+      endif()
       if (FFTW3_LIBRARIES)
         find_pkgconfig_libraries_absolute_path(FFTW3)
         list(APPEND FFTW_LIBRARIES "${FFTW3_LIBRARIES}")
diff --git a/modules/find/FindFXT.cmake b/modules/find/FindFXT.cmake
index 64c30da..46847d8 100644
--- a/modules/find/FindFXT.cmake
+++ b/modules/find/FindFXT.cmake
@@ -96,6 +96,9 @@ if(PKG_CONFIG_EXECUTABLE AND NOT FXT_GIVEN_BY_USER)
   endif()
 
   if (FXT_FOUND AND FXT_LIBRARIES)
+    if (NOT FXT_INCLUDE_DIRS)
+      pkg_get_variable(FXT_INCLUDE_DIRS fxt includedir)
+    endif()
     set(FXT_FOUND_WITH_PKGCONFIG "TRUE")
     find_pkgconfig_libraries_absolute_path(FXT)
   else()
diff --git a/modules/find/FindGTG.cmake b/modules/find/FindGTG.cmake
index 23a1e72..8d3a882 100644
--- a/modules/find/FindGTG.cmake
+++ b/modules/find/FindGTG.cmake
@@ -96,6 +96,9 @@ if(PKG_CONFIG_EXECUTABLE AND NOT GTG_GIVEN_BY_USER)
   endif()
 
   if (GTG_FOUND AND GTG_LIBRARIES)
+    if (NOT GTG_INCLUDE_DIRS)
+      pkg_get_variable(GTG_INCLUDE_DIRS gtg includedir)
+    endif()
     set(GTG_FOUND_WITH_PKGCONFIG "TRUE")
     find_pkgconfig_libraries_absolute_path(GTG)
   else()
diff --git a/modules/find/FindHQR.cmake b/modules/find/FindHQR.cmake
index f066ce5..a26dd4b 100644
--- a/modules/find/FindHQR.cmake
+++ b/modules/find/FindHQR.cmake
@@ -95,6 +95,9 @@ if(PKG_CONFIG_EXECUTABLE AND NOT HQR_GIVEN_BY_USER)
     endif()
   endif()
   if (HQR_FOUND AND HQR_LIBRARIES)
+    if (NOT HQR_INCLUDE_DIRS)
+      pkg_get_variable(HQR_INCLUDE_DIRS hqr includedir)
+    endif()
     set(HQR_FOUND_WITH_PKGCONFIG "TRUE")
     find_pkgconfig_libraries_absolute_path(HQR)
   else()
diff --git a/modules/find/FindHWLOC.cmake b/modules/find/FindHWLOC.cmake
index c3e8127..d3d5c35 100644
--- a/modules/find/FindHWLOC.cmake
+++ b/modules/find/FindHWLOC.cmake
@@ -99,6 +99,9 @@ if( PKG_CONFIG_EXECUTABLE AND NOT HWLOC_GIVEN_BY_USER )
   endif()
 
   if (HWLOC_FOUND AND HWLOC_LIBRARIES)
+    if (NOT HWLOC_INCLUDE_DIRS)
+      pkg_get_variable(HWLOC_INCLUDE_DIRS hwloc includedir)
+    endif()
     set(HWLOC_FOUND_WITH_PKGCONFIG "TRUE")
     find_pkgconfig_libraries_absolute_path(HWLOC)
   else()
diff --git a/modules/find/FindPAPI.cmake b/modules/find/FindPAPI.cmake
index dc2f7ae..7c1a048 100644
--- a/modules/find/FindPAPI.cmake
+++ b/modules/find/FindPAPI.cmake
@@ -96,6 +96,9 @@ if(PKG_CONFIG_EXECUTABLE AND NOT PAPI_GIVEN_BY_USER)
   endif()
 
   if (PAPI_FOUND AND PAPI_LIBRARIES)
+    if (NOT PAPI_INCLUDE_DIRS)
+      pkg_get_variable(PAPI_INCLUDE_DIRS papi includedir)
+    endif()
     set(PAPI_FOUND_WITH_PKGCONFIG "TRUE")
     find_pkgconfig_libraries_absolute_path(PAPI)
   else()
diff --git a/modules/find/FindPARSEC.cmake b/modules/find/FindPARSEC.cmake
index fd36ed1..c7e8cae 100644
--- a/modules/find/FindPARSEC.cmake
+++ b/modules/find/FindPARSEC.cmake
@@ -271,6 +271,9 @@ if(PKG_CONFIG_EXECUTABLE AND NOT PARSEC_GIVEN_BY_USER)
   endif()
 
   if (PARSEC_FOUND AND PARSEC_LIBRARIES)
+    if (NOT PARSEC_INCLUDE_DIRS)
+      pkg_get_variable(PARSEC_INCLUDE_DIRS parsec includedir)
+    endif()
     set(PARSEC_FOUND_WITH_PKGCONFIG "TRUE")
     find_pkgconfig_libraries_absolute_path(PARSEC)
   else()
diff --git a/modules/find/FindPASTIX.cmake b/modules/find/FindPASTIX.cmake
index 0fdd44a..bd1eed8 100644
--- a/modules/find/FindPASTIX.cmake
+++ b/modules/find/FindPASTIX.cmake
@@ -410,6 +410,9 @@ if(PKG_CONFIG_EXECUTABLE AND NOT PASTIX_GIVEN_BY_USER)
   endif()
 
   if (PASTIX_FOUND AND PASTIX_LIBRARIES)
+    if (NOT PASTIX_INCLUDE_DIRS)
+      pkg_get_variable(PASTIX_INCLUDE_DIRS pastix includedir)
+    endif()
     set(PASTIX_FOUND_WITH_PKGCONFIG "TRUE")
     find_pkgconfig_libraries_absolute_path(PASTIX)
   else()
diff --git a/modules/find/FindPETSC.cmake b/modules/find/FindPETSC.cmake
index f0acd95..fdd025f 100644
--- a/modules/find/FindPETSC.cmake
+++ b/modules/find/FindPETSC.cmake
@@ -80,6 +80,9 @@ if( PKG_CONFIG_EXECUTABLE AND NOT PETSC_DIR )
   endif()
   set(PETSC_DIR "${PETSC_PREFIX}")
   if (PETSC_FOUND AND PETSC_LIBRARIES)
+    if (NOT PETSC_INCLUDE_DIRS)
+      pkg_get_variable(PETSC_INCLUDE_DIRS PETSc includedir)
+    endif()
     set(PETSC_FOUND_WITH_PKGCONFIG "TRUE")
     find_pkgconfig_libraries_absolute_path(PETSC)
   else()
diff --git a/modules/find/FindSIMGRID.cmake b/modules/find/FindSIMGRID.cmake
index fd2fc04..7caa6e5 100644
--- a/modules/find/FindSIMGRID.cmake
+++ b/modules/find/FindSIMGRID.cmake
@@ -96,6 +96,9 @@ if(PKG_CONFIG_EXECUTABLE AND NOT SIMGRID_GIVEN_BY_USER)
   endif()
 
   if (SIMGRID_FOUND AND SIMGRID_LIBRARIES)
+    if (NOT SIMGRID_INCLUDE_DIRS)
+      pkg_get_variable(SIMGRID_INCLUDE_DIRS simgrid includedir)
+    endif()
     set(SIMGRID_FOUND_WITH_PKGCONFIG "TRUE")
     find_pkgconfig_libraries_absolute_path(SIMGRID)
   else()
diff --git a/modules/find/FindSLEPC.cmake b/modules/find/FindSLEPC.cmake
index 43a8850..1c7112b 100644
--- a/modules/find/FindSLEPC.cmake
+++ b/modules/find/FindSLEPC.cmake
@@ -79,6 +79,9 @@ if( PKG_CONFIG_EXECUTABLE AND NOT SLEPC_DIR )
   endif()
   set(SLEPC_DIR "${SLEPC_PREFIX}")
   if (SLEPC_FOUND AND SLEPC_LIBRARIES)
+    if (NOT SLEPC_INCLUDE_DIRS)
+      pkg_get_variable(SLEPC_INCLUDE_DIRS SLEPc includedir)
+    endif()
     set(SLEPC_FOUND_WITH_PKGCONFIG "TRUE")
     find_pkgconfig_libraries_absolute_path(SLEPC)
   else()
diff --git a/modules/find/FindSPM.cmake b/modules/find/FindSPM.cmake
index 321835c..c80dff8 100644
--- a/modules/find/FindSPM.cmake
+++ b/modules/find/FindSPM.cmake
@@ -144,6 +144,9 @@ if(PKG_CONFIG_EXECUTABLE AND NOT SPM_GIVEN_BY_USER)
   endif()
 
   if (SPM_FOUND AND SPM_LIBRARIES)
+    if (NOT SPM_INCLUDE_DIRS)
+      pkg_get_variable(SPM_INCLUDE_DIRS spm includedir)
+    endif()
     set(SPM_FOUND_WITH_PKGCONFIG "TRUE")
     find_pkgconfig_libraries_absolute_path(SPM)
   else()
diff --git a/modules/find/FindSTARPU.cmake b/modules/find/FindSTARPU.cmake
index 11c7a8e..8002d8f 100644
--- a/modules/find/FindSTARPU.cmake
+++ b/modules/find/FindSTARPU.cmake
@@ -250,6 +250,13 @@ if(PKG_CONFIG_EXECUTABLE AND NOT STARPU_GIVEN_BY_USER)
   endforeach()
   if (NOT STARPU_FIND_QUIETLY)
     if (STARPU_FOUND AND STARPU_LIBRARIES)
+      if (NOT STARPU_INCLUDE_DIRS)
+        if(STARPU_LOOK_FOR_MPI)
+          pkg_get_variable(STARPU_INCLUDE_DIRS starpumpi-${_version} includedir)
+        else()
+          pkg_get_variable(STARPU_INCLUDE_DIRS starpu-${_version} includedir)
+        endif()
+      endif()
       message(STATUS "Looking for STARPU - found using PkgConfig")
       set(STARPU_VERSION_STRING "${STARPU_VERSION}")
       string(REPLACE "." ";" STARPU_VERSION_STRING_LIST ${STARPU_VERSION_STRING})
-- 
GitLab