From 97c2fabe8e478af6555c523cfb9383141f3685ac Mon Sep 17 00:00:00 2001 From: Roland Kaufmann Date: Thu, 14 Mar 2013 22:51:01 +0100 Subject: [PATCH 1/3] Search for uppercase variants of the package vars as well For compatibility with packages that believes that every variable should be in uppercase, we try this variant when adding relevant variables to the project. --- cmake/Modules/OpmFind.cmake | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/cmake/Modules/OpmFind.cmake b/cmake/Modules/OpmFind.cmake index a5e77841..adaf60f7 100644 --- a/cmake/Modules/OpmFind.cmake +++ b/cmake/Modules/OpmFind.cmake @@ -81,23 +81,34 @@ macro (find_and_append_package_to prefix name) message (STATUS "Finding package ${name} using module mode") find_package (${name} ${ARGN}) endif (${name}_DIR) - if (${name}_FOUND) + if (${name}_FOUND OR ${NAME}_FOUND) foreach (var IN LISTS _opm_proj_vars) if (DEFINED ${name}_${var}) list (APPEND ${prefix}_${var} ${${name}_${var}}) - # cleanup lists - if ("${var}" STREQUAL "LIBRARIES") - remove_duplicate_libraries (${prefix}) - else ("${var}" STREQUAL "LIBRARIES") - list (REMOVE_DUPLICATES ${prefix}_${var}) - endif ("${var}" STREQUAL "LIBRARIES") + # some packages define an uppercase version of their own name + elseif (DEFINED ${NAME}_${var}) + list (APPEND ${prefix}_${var} ${${NAME}_${var}}) endif (DEFINED ${name}_${var}) + # some packages define _PATH instead of _DIRS (Hi, MPI!) + if ("${var}" STREQUAL "INCLUDE_DIRS") + if (DEFINED ${name}_INCLUDE_PATH) + list (APPEND ${prefix}_INCLUDE_DIRS ${name}_INCLUDE_PATH) + elseif (DEFINED ${NAME}_INCLUDE_PATH) + list (APPEND ${prefix}_INCLUDE_DIRS ${NAME}_INCLUDE_PATH) + endif (DEFINED ${name}_INCLUDE_PATH) + endif ("${var}" STREQUAL "INCLUDE_DIRS") + # cleanup lists + if ("${var}" STREQUAL "LIBRARIES") + remove_duplicate_libraries (${prefix}) + else ("${var}" STREQUAL "LIBRARIES") + list (REMOVE_DUPLICATES ${prefix}_${var}) + endif ("${var}" STREQUAL "LIBRARIES") endforeach (var) # some libraries only define xxx_FOUND and not a corresponding HAVE_xxx if (NOT DEFINED HAVE_${NAME}) set (HAVE_${NAME} 1) endif (NOT DEFINED HAVE_${NAME}) - endif (${name}_FOUND) + endif (${name}_FOUND OR ${NAME}_FOUND) endmacro (find_and_append_package_to prefix name) # append to the list of variables associated with the project From 8dcca4cf9b2045b4dc175f2b5c9ba334ad1f7ab1 Mon Sep 17 00:00:00 2001 From: Roland Kaufmann Date: Thu, 14 Mar 2013 22:55:05 +0100 Subject: [PATCH 2/3] Use camel-case in SuperLU's name Originally, I added FindSuperLU with uppercase since the variables it returned had that case. Now the scripts should be patched so that it searched for uppercase amongst the variables as well, so the module name can retain its original case (and for compatibility with DUNE) --- CMakeLists.txt | 2 +- cmake/Modules/{FindSUPERLU.cmake => FindSuperLU.cmake} | 0 cmake/Modules/Finddune-istl.cmake | 2 +- cmake/Modules/Findopm-core.cmake | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) rename cmake/Modules/{FindSUPERLU.cmake => FindSuperLU.cmake} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 131a909a..46d62c62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,7 +36,7 @@ set (${project}_DEPS # Tim Davis' SuiteSparse archive "SuiteSparse COMPONENTS umfpack" # solver - "SUPERLU" + "SuperLU" # xml processing (for config parsing) "TinyXML" # Ensembles-based Reservoir Tools (ERT) diff --git a/cmake/Modules/FindSUPERLU.cmake b/cmake/Modules/FindSuperLU.cmake similarity index 100% rename from cmake/Modules/FindSUPERLU.cmake rename to cmake/Modules/FindSuperLU.cmake diff --git a/cmake/Modules/Finddune-istl.cmake b/cmake/Modules/Finddune-istl.cmake index d8d1a04c..14a40104 100644 --- a/cmake/Modules/Finddune-istl.cmake +++ b/cmake/Modules/Finddune-istl.cmake @@ -24,7 +24,7 @@ find_opm_package ( # required dependencies "dune-common ${_require_dune_common}; - SUPERLU + SuperLU " # header to search for "dune/istl/bcrsmatrix.hh" diff --git a/cmake/Modules/Findopm-core.cmake b/cmake/Modules/Findopm-core.cmake index 23a8e6bb..31c9f177 100644 --- a/cmake/Modules/Findopm-core.cmake +++ b/cmake/Modules/Findopm-core.cmake @@ -24,7 +24,7 @@ find_opm_package ( BLAS REQUIRED; LAPACK REQUIRED; SuiteSparse COMPONENTS umfpack; - SUPERLU; + SuperLU; TinyXML; ERT; dune-istl From ccbcb6f364370cf6d666255967cd769edbf56ace Mon Sep 17 00:00:00 2001 From: Roland Kaufmann Date: Thu, 14 Mar 2013 23:46:54 +0100 Subject: [PATCH 3/3] Enable debug tracing when finding modules --- cmake/Modules/OpmPackage.cmake | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cmake/Modules/OpmPackage.cmake b/cmake/Modules/OpmPackage.cmake index 07efd102..79ab4634 100644 --- a/cmake/Modules/OpmPackage.cmake +++ b/cmake/Modules/OpmPackage.cmake @@ -219,6 +219,11 @@ function (find_opm_package module deps header lib defs prog conf) set (${module}_LINKER_FLAGS "${${module}_LINKER_FLAGS}" PARENT_SCOPE) set (${module}_QUIET "${${module}_QUIET}" PARENT_SCOPE) set (HAVE_${MODULE} "${HAVE_${MODULE}}" PARENT_SCOPE) + + # print everything out if we're asked to + if (${module}_DEBUG) + debug_find_vars (${module}) + endif (${module}_DEBUG) endfunction (find_opm_package module deps header lib defs prog conf) # print all variables defined by the above macro