Inital find modules for mesquite, scotch, metis, partmetis, parmgridgen
This commit is contained in:
parent
0affdbfe19
commit
ce4104072e
17 changed files with 475 additions and 25 deletions
|
@ -79,15 +79,42 @@ find_package(Git REQUIRED)
|
|||
|
||||
# Path to ParaViewConfig.cmake
|
||||
set(ParaView_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty/packages/ParaView-4.4.0/platforms/linux64GccDPOpt/lib/cmake/paraview-4.4)
|
||||
|
||||
find_package(ParaView REQUIRED)
|
||||
|
||||
# Clean the cache variable
|
||||
set(MGRIDGEN_LIBRARY MGRIDGEN_LIBRARY-NOTFOUND)
|
||||
find_package(Mesquite REQUIRED)
|
||||
if(MESQUITE_FOUND)
|
||||
add_library(mesquite SHARED IMPORTED)
|
||||
set_property(TARGET mesquite PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${MESQUITE_INCLUDE_DIRS})
|
||||
set_property(TARGET mesquite PROPERTY IMPORTED_LOCATION ${MESQUITE_LIBRARY})
|
||||
endif()
|
||||
|
||||
# Find libMGridGen.so
|
||||
find_library(MGRIDGEN_LIBRARY MGridGen ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty/packages/ParMGridGen-1.0/platforms/linux64GccDPOpt/lib)
|
||||
set(MGRIDGEN_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty/packages/ParMGridGen-1.0/platforms/linux64GccDPOpt/include)
|
||||
find_package(Scotch REQUIRED)
|
||||
if(SCOTCH_FOUND)
|
||||
add_library(scotch SHARED IMPORTED)
|
||||
set_property(TARGET scotch PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${SCOTCH_INCLUDE_DIRS})
|
||||
set_property(TARGET scotch PROPERTY IMPORTED_LOCATION ${SCOTCH_LIBRARY})
|
||||
endif()
|
||||
|
||||
find_package(Metis REQUIRED)
|
||||
if(METIS_FOUND)
|
||||
add_library(metis SHARED IMPORTED)
|
||||
set_property(TARGET metis PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${METIS_INCLUDE_DIRS})
|
||||
set_property(TARGET metis PROPERTY IMPORTED_LOCATION ${METIS_LIBRARY})
|
||||
endif()
|
||||
|
||||
find_package(ParMetis REQUIRED)
|
||||
if(PARMETIS_FOUND)
|
||||
add_library(parmetis SHARED IMPORTED)
|
||||
set_property(TARGET parmetis PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${PARMETIS_INCLUDE_DIRS})
|
||||
set_property(TARGET parmetis PROPERTY IMPORTED_LOCATION ${PARMETIS_LIBRARY})
|
||||
endif()
|
||||
|
||||
find_package(ParMGridGen REQUIRED)
|
||||
if(PARMGRIDGEN_FOUND)
|
||||
add_library(parmgridgen SHARED IMPORTED)
|
||||
set_property(TARGET parmgridgen PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${PARMGRIDGEN_INCLUDE_DIRS})
|
||||
set_property(TARGET parmgridgen PROPERTY IMPORTED_LOCATION ${PARMGRIDGEN_LIBRARY})
|
||||
endif()
|
||||
|
||||
|
||||
#
|
||||
|
|
27
cmake/FindMesquite.cmake
Normal file
27
cmake/FindMesquite.cmake
Normal file
|
@ -0,0 +1,27 @@
|
|||
|
||||
include(LibFindMacros)
|
||||
|
||||
# Use pkg-config to get hints about paths
|
||||
libfind_pkg_check_modules(MESQUITE_PKGCONF mesquite)
|
||||
|
||||
# Include dir
|
||||
find_path(MESQUITE_INCLUDE_DIR
|
||||
NAMES Mesquite_all_headers.hpp
|
||||
HINTS
|
||||
ThirdParty/packages/mesquite-2.1.2/platforms/linux64GccDPOpt/include
|
||||
${MESQUITE_PKGCONF_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
# Finally the library itself
|
||||
find_library(MESQUITE_LIBRARY
|
||||
NAMES mesquite
|
||||
HINTS
|
||||
ThirdParty/packages/mesquite-2.1.2/platforms/linux64GccDPOpt/lib
|
||||
${MESQUITE_PKGCONF_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
# Set the include dir variables and the libraries and let libfind_process do the rest.
|
||||
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
|
||||
set(MESQUITE_PROCESS_INCLUDES MESQUITE_INCLUDE_DIR)
|
||||
set(MESQUITE_PROCESS_LIBS MESQUITE_LIBRARY)
|
||||
libfind_process(MESQUITE)
|
31
cmake/FindMetis.cmake
Normal file
31
cmake/FindMetis.cmake
Normal file
|
@ -0,0 +1,31 @@
|
|||
|
||||
include(LibFindMacros)
|
||||
|
||||
# Use pkg-config to get hints about paths
|
||||
libfind_pkg_check_modules(METIS_PKGCONF metis)
|
||||
|
||||
# Include dir
|
||||
find_path(METIS_INCLUDE_DIR
|
||||
NAMES metis.h
|
||||
HINTS
|
||||
ThirdParty/packages/metis-5.1.0/platforms/linux64GccDPOpt/include
|
||||
${METIS_PKGCONF_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
# Finally the library itself
|
||||
find_library(METIS_LIBRARY
|
||||
NAMES metis
|
||||
HINTS
|
||||
ThirdParty/packages/metis-5.1.0/platforms/linux64GccDPOpt/lib
|
||||
${METIS_PKGCONF_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
# Set the include dir variables and the libraries and let libfind_process do the rest.
|
||||
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
|
||||
|
||||
message(STATUS ${METIS_INCLUDE_DIR})
|
||||
message(STATUS ${METIS_LIBRARY})
|
||||
|
||||
set(METIS_PROCESS_INCLUDES METIS_INCLUDE_DIR)
|
||||
set(METIS_PROCESS_LIBS METIS_LIBRARY)
|
||||
libfind_process(METIS)
|
38
cmake/FindParMGridGen.cmake
Normal file
38
cmake/FindParMGridGen.cmake
Normal file
|
@ -0,0 +1,38 @@
|
|||
|
||||
include(LibFindMacros)
|
||||
|
||||
# Use pkg-config to get hints about paths
|
||||
libfind_pkg_check_modules(PARMGRIDGEN_PKGCONF scotch)
|
||||
|
||||
# Include dir
|
||||
find_path(PARMGRIDGEN_INCLUDE_DIR
|
||||
NAMES mgridgen.h
|
||||
HINTS
|
||||
ThirdParty/packages/ParMGridGen-1.0/platforms/linux64GccDPOpt/include/Lib
|
||||
${PARMGRIDGEN_PKGCONF_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
find_path(PARMGRIDGEN_INCLUDE_DIR2
|
||||
NAMES IMlib.h
|
||||
HINTS
|
||||
ThirdParty/packages/ParMGridGen-1.0/platforms/linux64GccDPOpt/include/IMlib
|
||||
${PARMGRIDGEN_PKGCONF_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
# Finally the library itself
|
||||
find_library(PARMGRIDGEN_LIBRARY
|
||||
NAMES MGridGen
|
||||
HINTS
|
||||
ThirdParty/packages/ParMGridGen-1.0/platforms/linux64GccDPOpt/lib
|
||||
${PARMGRIDGEN_PKGCONF_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
# Set the include dir variables and the libraries and let libfind_process do the rest.
|
||||
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
|
||||
|
||||
message(STATUS ${PARMGRIDGEN_INCLUDE_DIR})
|
||||
message(STATUS ${PARMGRIDGEN_LIBRARY})
|
||||
|
||||
set(PARMGRIDGEN_PROCESS_INCLUDES PARMGRIDGEN_INCLUDE_DIR PARMGRIDGEN_INCLUDE_DIR2)
|
||||
set(PARMGRIDGEN_PROCESS_LIBS PARMGRIDGEN_LIBRARY)
|
||||
libfind_process(PARMGRIDGEN)
|
31
cmake/FindParMetis.cmake
Normal file
31
cmake/FindParMetis.cmake
Normal file
|
@ -0,0 +1,31 @@
|
|||
|
||||
include(LibFindMacros)
|
||||
|
||||
# Use pkg-config to get hints about paths
|
||||
libfind_pkg_check_modules(PARMETIS_PKGCONF parmetis)
|
||||
|
||||
# Include dir
|
||||
find_path(PARMETIS_INCLUDE_DIR
|
||||
NAMES parmetis.h
|
||||
HINTS
|
||||
ThirdParty/packages/parmetis-4.0.3/platforms/linux64GccDPOpt/include
|
||||
${PARMETIS_PKGCONF_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
# Finally the library itself
|
||||
find_library(PARMETIS_LIBRARY
|
||||
NAMES parmetis
|
||||
HINTS
|
||||
ThirdParty/packages/parmetis-4.0.3/platforms/linux64GccDPOpt/lib
|
||||
${PARMETIS_PKGCONF_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
# Set the include dir variables and the libraries and let libfind_process do the rest.
|
||||
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
|
||||
|
||||
message(STATUS ${PARMETIS_INCLUDE_DIR})
|
||||
message(STATUS ${PARMETIS_LIBRARY})
|
||||
|
||||
set(PARMETIS_PROCESS_INCLUDES PARMETIS_INCLUDE_DIR)
|
||||
set(PARMETIS_PROCESS_LIBS PARMETIS_LIBRARY)
|
||||
libfind_process(PARMETIS)
|
31
cmake/FindScotch.cmake
Normal file
31
cmake/FindScotch.cmake
Normal file
|
@ -0,0 +1,31 @@
|
|||
|
||||
include(LibFindMacros)
|
||||
|
||||
# Use pkg-config to get hints about paths
|
||||
libfind_pkg_check_modules(SCOTCH_PKGCONF scotch)
|
||||
|
||||
# Include dir
|
||||
find_path(SCOTCH_INCLUDE_DIR
|
||||
NAMES scotch.h
|
||||
HINTS
|
||||
ThirdParty/packages/scotch-6.0.4/platforms/linux64GccDPOpt/include
|
||||
${SCOTCH_PKGCONF_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
# Finally the library itself
|
||||
find_library(SCOTCH_LIBRARY
|
||||
NAMES scotch
|
||||
HINTS
|
||||
ThirdParty/packages/scotch-6.0.4/platforms/linux64GccDPOpt/lib
|
||||
${SCOTCH_PKGCONF_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
# Set the include dir variables and the libraries and let libfind_process do the rest.
|
||||
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
|
||||
|
||||
message(STATUS ${SCOTCH_INCLUDE_DIR})
|
||||
message(STATUS ${SCOTCH_LIBRARY})
|
||||
|
||||
set(SCOTCH_PROCESS_INCLUDES SCOTCH_INCLUDE_DIR)
|
||||
set(SCOTCH_PROCESS_LIBS SCOTCH_LIBRARY)
|
||||
libfind_process(SCOTCH)
|
266
cmake/LibFindMacros.cmake
Normal file
266
cmake/LibFindMacros.cmake
Normal file
|
@ -0,0 +1,266 @@
|
|||
# Version 2.2
|
||||
# Public Domain, originally written by Lasse Kärkkäinen <tronic>
|
||||
# Maintained at https://github.com/Tronic/cmake-modules
|
||||
# Please send your improvements as pull requests on Github.
|
||||
|
||||
# Find another package and make it a dependency of the current package.
|
||||
# This also automatically forwards the "REQUIRED" argument.
|
||||
# Usage: libfind_package(<prefix> <another package> [extra args to find_package])
|
||||
macro (libfind_package PREFIX PKG)
|
||||
set(${PREFIX}_args ${PKG} ${ARGN})
|
||||
if (${PREFIX}_FIND_REQUIRED)
|
||||
set(${PREFIX}_args ${${PREFIX}_args} REQUIRED)
|
||||
endif()
|
||||
find_package(${${PREFIX}_args})
|
||||
set(${PREFIX}_DEPENDENCIES ${${PREFIX}_DEPENDENCIES};${PKG})
|
||||
unset(${PREFIX}_args)
|
||||
endmacro()
|
||||
|
||||
# A simple wrapper to make pkg-config searches a bit easier.
|
||||
# Works the same as CMake's internal pkg_check_modules but is always quiet.
|
||||
macro (libfind_pkg_check_modules)
|
||||
find_package(PkgConfig QUIET)
|
||||
if (PKG_CONFIG_FOUND)
|
||||
pkg_check_modules(${ARGN} QUIET)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# Avoid useless copy&pasta by doing what most simple libraries do anyway:
|
||||
# pkg-config, find headers, find library.
|
||||
# Usage: libfind_pkg_detect(<prefix> <pkg-config args> FIND_PATH <name> [other args] FIND_LIBRARY <name> [other args])
|
||||
# E.g. libfind_pkg_detect(SDL2 sdl2 FIND_PATH SDL.h PATH_SUFFIXES SDL2 FIND_LIBRARY SDL2)
|
||||
function (libfind_pkg_detect PREFIX)
|
||||
# Parse arguments
|
||||
set(argname pkgargs)
|
||||
foreach (i ${ARGN})
|
||||
if ("${i}" STREQUAL "FIND_PATH")
|
||||
set(argname pathargs)
|
||||
elseif ("${i}" STREQUAL "FIND_LIBRARY")
|
||||
set(argname libraryargs)
|
||||
else()
|
||||
set(${argname} ${${argname}} ${i})
|
||||
endif()
|
||||
endforeach()
|
||||
if (NOT pkgargs)
|
||||
message(FATAL_ERROR "libfind_pkg_detect requires at least a pkg_config package name to be passed.")
|
||||
endif()
|
||||
# Find library
|
||||
libfind_pkg_check_modules(${PREFIX}_PKGCONF ${pkgargs})
|
||||
if (pathargs)
|
||||
find_path(${PREFIX}_INCLUDE_DIR NAMES ${pathargs} HINTS ${${PREFIX}_PKGCONF_INCLUDE_DIRS})
|
||||
endif()
|
||||
if (libraryargs)
|
||||
find_library(${PREFIX}_LIBRARY NAMES ${libraryargs} HINTS ${${PREFIX}_PKGCONF_LIBRARY_DIRS})
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Extracts a version #define from a version.h file, output stored to <PREFIX>_VERSION.
|
||||
# Usage: libfind_version_header(Foobar foobar/version.h FOOBAR_VERSION_STR)
|
||||
# Fourth argument "QUIET" may be used for silently testing different define names.
|
||||
# This function does nothing if the version variable is already defined.
|
||||
function (libfind_version_header PREFIX VERSION_H DEFINE_NAME)
|
||||
# Skip processing if we already have a version or if the include dir was not found
|
||||
if (${PREFIX}_VERSION OR NOT ${PREFIX}_INCLUDE_DIR)
|
||||
return()
|
||||
endif()
|
||||
set(quiet ${${PREFIX}_FIND_QUIETLY})
|
||||
# Process optional arguments
|
||||
foreach(arg ${ARGN})
|
||||
if (arg STREQUAL "QUIET")
|
||||
set(quiet TRUE)
|
||||
else()
|
||||
message(AUTHOR_WARNING "Unknown argument ${arg} to libfind_version_header ignored.")
|
||||
endif()
|
||||
endforeach()
|
||||
# Read the header and parse for version number
|
||||
set(filename "${${PREFIX}_INCLUDE_DIR}/${VERSION_H}")
|
||||
if (NOT EXISTS ${filename})
|
||||
if (NOT quiet)
|
||||
message(AUTHOR_WARNING "Unable to find ${${PREFIX}_INCLUDE_DIR}/${VERSION_H}")
|
||||
endif()
|
||||
return()
|
||||
endif()
|
||||
file(READ "${filename}" header)
|
||||
string(REGEX REPLACE ".*#[ \t]*define[ \t]*${DEFINE_NAME}[ \t]*\"([^\n]*)\".*" "\\1" match "${header}")
|
||||
# No regex match?
|
||||
if (match STREQUAL header)
|
||||
if (NOT quiet)
|
||||
message(AUTHOR_WARNING "Unable to find \#define ${DEFINE_NAME} \"<version>\" from ${${PREFIX}_INCLUDE_DIR}/${VERSION_H}")
|
||||
endif()
|
||||
return()
|
||||
endif()
|
||||
# Export the version string
|
||||
set(${PREFIX}_VERSION "${match}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# Do the final processing once the paths have been detected.
|
||||
# If include dirs are needed, ${PREFIX}_PROCESS_INCLUDES should be set to contain
|
||||
# all the variables, each of which contain one include directory.
|
||||
# Ditto for ${PREFIX}_PROCESS_LIBS and library files.
|
||||
# Will set ${PREFIX}_FOUND, ${PREFIX}_INCLUDE_DIRS and ${PREFIX}_LIBRARIES.
|
||||
# Also handles errors in case library detection was required, etc.
|
||||
function (libfind_process PREFIX)
|
||||
# Skip processing if already processed during this configuration run
|
||||
if (${PREFIX}_FOUND)
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(found TRUE) # Start with the assumption that the package was found
|
||||
|
||||
# Did we find any files? Did we miss includes? These are for formatting better error messages.
|
||||
set(some_files FALSE)
|
||||
set(missing_headers FALSE)
|
||||
|
||||
# Shorthands for some variables that we need often
|
||||
set(quiet ${${PREFIX}_FIND_QUIETLY})
|
||||
set(required ${${PREFIX}_FIND_REQUIRED})
|
||||
set(exactver ${${PREFIX}_FIND_VERSION_EXACT})
|
||||
set(findver "${${PREFIX}_FIND_VERSION}")
|
||||
set(version "${${PREFIX}_VERSION}")
|
||||
|
||||
# Lists of config option names (all, includes, libs)
|
||||
unset(configopts)
|
||||
set(includeopts ${${PREFIX}_PROCESS_INCLUDES})
|
||||
set(libraryopts ${${PREFIX}_PROCESS_LIBS})
|
||||
|
||||
# Process deps to add to
|
||||
foreach (i ${PREFIX} ${${PREFIX}_DEPENDENCIES})
|
||||
if (DEFINED ${i}_INCLUDE_OPTS OR DEFINED ${i}_LIBRARY_OPTS)
|
||||
# The package seems to export option lists that we can use, woohoo!
|
||||
list(APPEND includeopts ${${i}_INCLUDE_OPTS})
|
||||
list(APPEND libraryopts ${${i}_LIBRARY_OPTS})
|
||||
else()
|
||||
# If plural forms don't exist or they equal singular forms
|
||||
if ((NOT DEFINED ${i}_INCLUDE_DIRS AND NOT DEFINED ${i}_LIBRARIES) OR
|
||||
({i}_INCLUDE_DIR STREQUAL ${i}_INCLUDE_DIRS AND ${i}_LIBRARY STREQUAL ${i}_LIBRARIES))
|
||||
# Singular forms can be used
|
||||
if (DEFINED ${i}_INCLUDE_DIR)
|
||||
list(APPEND includeopts ${i}_INCLUDE_DIR)
|
||||
endif()
|
||||
if (DEFINED ${i}_LIBRARY)
|
||||
list(APPEND libraryopts ${i}_LIBRARY)
|
||||
endif()
|
||||
else()
|
||||
# Oh no, we don't know the option names
|
||||
message(FATAL_ERROR "We couldn't determine config variable names for ${i} includes and libs. Aieeh!")
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if (includeopts)
|
||||
list(REMOVE_DUPLICATES includeopts)
|
||||
endif()
|
||||
|
||||
if (libraryopts)
|
||||
list(REMOVE_DUPLICATES libraryopts)
|
||||
endif()
|
||||
|
||||
string(REGEX REPLACE ".*[ ;]([^ ;]*(_INCLUDE_DIRS|_LIBRARIES))" "\\1" tmp "${includeopts} ${libraryopts}")
|
||||
if (NOT tmp STREQUAL "${includeopts} ${libraryopts}")
|
||||
message(AUTHOR_WARNING "Plural form ${tmp} found in config options of ${PREFIX}. This works as before but is now deprecated. Please only use singular forms INCLUDE_DIR and LIBRARY, and update your find scripts for LibFindMacros > 2.0 automatic dependency system (most often you can simply remove the PROCESS variables entirely).")
|
||||
endif()
|
||||
|
||||
# Include/library names separated by spaces (notice: not CMake lists)
|
||||
unset(includes)
|
||||
unset(libs)
|
||||
|
||||
# Process all includes and set found false if any are missing
|
||||
foreach (i ${includeopts})
|
||||
list(APPEND configopts ${i})
|
||||
if (NOT "${${i}}" STREQUAL "${i}-NOTFOUND")
|
||||
list(APPEND includes "${${i}}")
|
||||
else()
|
||||
set(found FALSE)
|
||||
set(missing_headers TRUE)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Process all libraries and set found false if any are missing
|
||||
foreach (i ${libraryopts})
|
||||
list(APPEND configopts ${i})
|
||||
if (NOT "${${i}}" STREQUAL "${i}-NOTFOUND")
|
||||
list(APPEND libs "${${i}}")
|
||||
else()
|
||||
set (found FALSE)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Version checks
|
||||
if (found AND findver)
|
||||
if (NOT version)
|
||||
message(WARNING "The find module for ${PREFIX} does not provide version information, so we'll just assume that it is OK. Please fix the module or remove package version requirements to get rid of this warning.")
|
||||
elseif (version VERSION_LESS findver OR (exactver AND NOT version VERSION_EQUAL findver))
|
||||
set(found FALSE)
|
||||
set(version_unsuitable TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# If all-OK, hide all config options, export variables, print status and exit
|
||||
if (found)
|
||||
foreach (i ${configopts})
|
||||
mark_as_advanced(${i})
|
||||
endforeach()
|
||||
if (NOT quiet)
|
||||
message(STATUS "Found ${PREFIX} ${${PREFIX}_VERSION}")
|
||||
if (LIBFIND_DEBUG)
|
||||
message(STATUS " ${PREFIX}_DEPENDENCIES=${${PREFIX}_DEPENDENCIES}")
|
||||
message(STATUS " ${PREFIX}_INCLUDE_OPTS=${includeopts}")
|
||||
message(STATUS " ${PREFIX}_INCLUDE_DIRS=${includes}")
|
||||
message(STATUS " ${PREFIX}_LIBRARY_OPTS=${libraryopts}")
|
||||
message(STATUS " ${PREFIX}_LIBRARIES=${libs}")
|
||||
endif()
|
||||
set (${PREFIX}_INCLUDE_OPTS ${includeopts} PARENT_SCOPE)
|
||||
set (${PREFIX}_LIBRARY_OPTS ${libraryopts} PARENT_SCOPE)
|
||||
set (${PREFIX}_INCLUDE_DIRS ${includes} PARENT_SCOPE)
|
||||
set (${PREFIX}_LIBRARIES ${libs} PARENT_SCOPE)
|
||||
set (${PREFIX}_FOUND TRUE PARENT_SCOPE)
|
||||
endif()
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Format messages for debug info and the type of error
|
||||
set(vars "Relevant CMake configuration variables:\n")
|
||||
foreach (i ${configopts})
|
||||
mark_as_advanced(CLEAR ${i})
|
||||
set(val ${${i}})
|
||||
if ("${val}" STREQUAL "${i}-NOTFOUND")
|
||||
set (val "<not found>")
|
||||
elseif (val AND NOT EXISTS ${val})
|
||||
set (val "${val} (does not exist)")
|
||||
else()
|
||||
set(some_files TRUE)
|
||||
endif()
|
||||
set(vars "${vars} ${i}=${val}\n")
|
||||
endforeach()
|
||||
set(vars "${vars}You may use CMake GUI, cmake -D or ccmake to modify the values. Delete CMakeCache.txt to discard all values and force full re-detection if necessary.\n")
|
||||
if (version_unsuitable)
|
||||
set(msg "${PREFIX} ${${PREFIX}_VERSION} was found but")
|
||||
if (exactver)
|
||||
set(msg "${msg} only version ${findver} is acceptable.")
|
||||
else()
|
||||
set(msg "${msg} version ${findver} is the minimum requirement.")
|
||||
endif()
|
||||
else()
|
||||
if (missing_headers)
|
||||
set(msg "We could not find development headers for ${PREFIX}. Do you have the necessary dev package installed?")
|
||||
elseif (some_files)
|
||||
set(msg "We only found some files of ${PREFIX}, not all of them. Perhaps your installation is incomplete or maybe we just didn't look in the right place?")
|
||||
if(findver)
|
||||
set(msg "${msg} This could also be caused by incompatible version (if it helps, at least ${PREFIX} ${findver} should work).")
|
||||
endif()
|
||||
else()
|
||||
set(msg "We were unable to find package ${PREFIX}.")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Fatal error out if REQUIRED
|
||||
if (required)
|
||||
set(msg "REQUIRED PACKAGE NOT FOUND\n${msg} This package is REQUIRED and you need to install it or adjust CMake configuration in order to continue building ${CMAKE_PROJECT_NAME}.")
|
||||
message(FATAL_ERROR "${msg}\n${vars}")
|
||||
endif()
|
||||
# Otherwise just print a nasty warning
|
||||
if (NOT quiet)
|
||||
message(WARNING "WARNING: MISSING PACKAGE\n${msg} This package is NOT REQUIRED and you may ignore this warning but by doing so you may miss some functionality of ${CMAKE_PROJECT_NAME}. \n${vars}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
|
@ -50,12 +50,10 @@ list(APPEND SOURCES
|
|||
timeStepping/EulerLocalDdtScheme/EulerLocalDdtSchemes.C
|
||||
)
|
||||
|
||||
add_foam_library(dbns SHARED ${SOURCES})
|
||||
if(PARMGRIDGEN_FOUND)
|
||||
add_foam_library(dbns SHARED ${SOURCES})
|
||||
|
||||
target_link_libraries(dbns ${MGRIDGEN_LIBRARY} compressibleTurbulenceModel)
|
||||
|
||||
target_include_directories(dbns PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/dbnsFlux/hllcFlux>
|
||||
$<BUILD_INTERFACE:${MGRIDGEN_INCLUDES}/Lib>
|
||||
$<BUILD_INTERFACE:${MGRIDGEN_INCLUDES}/IMlib>
|
||||
)
|
||||
target_link_libraries(dbns compressibleTurbulenceModel parmgridgen)
|
||||
else()
|
||||
message(WARNING dbns will not be build)
|
||||
endif()
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
#
|
||||
# --------------------------------------------------------------------------
|
||||
|
||||
#add_subdirectory(parMetisDecomp)
|
||||
add_subdirectory(parMetisDecomp)
|
||||
add_subdirectory(decompositionMethods)
|
||||
#add_subdirectory(scotchDecomp)
|
||||
#add_subdirectory(metisDecomp)
|
||||
add_subdirectory(scotchDecomp)
|
||||
add_subdirectory(metisDecomp)
|
||||
|
|
|
@ -36,4 +36,4 @@ list(APPEND SOURCES
|
|||
|
||||
add_foam_library(metisDecomp SHARED ${SOURCES})
|
||||
|
||||
#target_link_libraries(metisDecomp finiteVolume)
|
||||
target_link_libraries(metisDecomp finiteVolume metis)
|
||||
|
|
|
@ -27,7 +27,6 @@ License
|
|||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "floatScalar.H"
|
||||
#include "foamTime.H"
|
||||
#include "scotchDecomp.H"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
|
|
|
@ -36,4 +36,4 @@ list(APPEND SOURCES
|
|||
|
||||
add_foam_library(parMetisDecomp SHARED ${SOURCES})
|
||||
|
||||
#target_link_libraries(parMetisDecomp finiteVolume)
|
||||
target_link_libraries(parMetisDecomp metisDecomp parmetis)
|
||||
|
|
|
@ -37,4 +37,4 @@ list(APPEND SOURCES
|
|||
|
||||
add_foam_library(scotchDecomp SHARED ${SOURCES})
|
||||
|
||||
#target_link_libraries(scotchDecomp finiteVolume)
|
||||
target_link_libraries(scotchDecomp finiteVolume scotch)
|
||||
|
|
|
@ -33,5 +33,7 @@
|
|||
add_subdirectory(solidBodyMotion)
|
||||
add_subdirectory(RBFMotionSolver)
|
||||
add_subdirectory(fvMotionSolver)
|
||||
#add_subdirectory(mesquiteMotionSolver)
|
||||
if(MESQUITE_FOUND)
|
||||
add_subdirectory(mesquiteMotionSolver)
|
||||
endif()
|
||||
add_subdirectory(tetMotionSolver)
|
||||
|
|
|
@ -36,4 +36,4 @@ list(APPEND SOURCES
|
|||
|
||||
add_foam_library(mesquiteMotionSolver SHARED ${SOURCES})
|
||||
|
||||
target_link_libraries(mesquiteMotionSolver PUBLIC dynamicMesh)
|
||||
target_link_libraries(mesquiteMotionSolver PUBLIC dynamicMesh mesquite)
|
||||
|
|
|
@ -30,4 +30,4 @@
|
|||
#
|
||||
# --------------------------------------------------------------------------
|
||||
|
||||
#add_subdirectory(MGridGenGamgAgglomeration)
|
||||
add_subdirectory(MGridGenGamgAgglomeration)
|
||||
|
|
|
@ -37,4 +37,4 @@ list(APPEND SOURCES
|
|||
|
||||
add_foam_library(MGridGenGAMGAgglomeration SHARED ${SOURCES})
|
||||
|
||||
#target_link_libraries(MGridGenGAMGAgglomeration finiteVolume)
|
||||
target_link_libraries(MGridGenGAMGAgglomeration finiteVolume parmgridgen)
|
||||
|
|
Reference in a new issue