Skip to content
Snippets Groups Projects
Commit dac8d09c authored by Lars Bilke's avatar Lars Bilke
Browse files

[CMake] Refactored metis logic.

parent 82e9be94
No related branches found
No related tags found
No related merge requests found
###
## Compile mpmetis
add_definitions(-DSVNINFO="${SVNREV}")
include_directories(${METIS_PATH}/libmetis)
include_directories(${METIS_PATH}/programs)
set(METIS_SOURCES
${METIS_PATH}/programs/mpmetis.c
${METIS_PATH}/programs/cmdline_mpmetis.c
${METIS_PATH}/programs/io.c
${METIS_PATH}/programs/stat.c
)
add_executable(mpmetis ${METIS_SOURCES})
target_link_libraries(mpmetis metis)
add_executable(partmesh PartitionMesh.cpp NodeWiseMeshPartitioner.h NodeWiseMeshPartitioner.cpp) add_executable(partmesh PartitionMesh.cpp NodeWiseMeshPartitioner.h NodeWiseMeshPartitioner.cpp)
set_target_properties(partmesh PROPERTIES FOLDER Utilities) set_target_properties(partmesh PROPERTIES FOLDER Utilities)
target_link_libraries(partmesh MeshLib) target_link_libraries(partmesh MeshLib)
ADD_VTK_DEPENDENCY(partmesh)
#################### ####################
### Installation ### ### Installation ###
#################### ####################
install(TARGETS partmesh mpmetis RUNTIME DESTINATION bin COMPONENT ogs_partmesh) install(TARGETS partmesh RUNTIME DESTINATION bin COMPONENT ogs_partmesh)
cpack_add_component(ogs_partmesh cpack_add_component(ogs_partmesh
DISPLAY_NAME "Mesh partitioning tool" DISPLAY_NAME "Mesh partitioning tool"
......
MESSAGE( STATUS "The METIS package is copyrighted by the Regents of the University of Minnesota." )
MESSAGE( STATUS "Please read the license of the METIS package carefully before you use the METIS." )
set(METIS_PATH "${CMAKE_SOURCE_DIR}/ThirdParty/metis")
add_definitions(-DUSE_GKREGEX)
set(GKLIB_PATH "${METIS_PATH}/GKlib" CACHE PATH "path to GKlib")
set(SHARED FALSE CACHE BOOL "build a shared library")
if(MSVC)
set(METIS_INSTALL FALSE)
else()
set(METIS_INSTALL TRUE)
endif()
# Configure libmetis library.
if(SHARED)
set(METIS_LIBRARY_TYPE SHARED)
else()
set(METIS_LIBRARY_TYPE STATIC)
endif(SHARED)
include(${GKLIB_PATH}/GKlibSystem.cmake)
# Add include directories.
include_directories(${GKLIB_PATH})
include_directories(${METIS_PATH}/include)
# Recursively look for CMakeLists.txt in subdirs.
add_subdirectory("${METIS_PATH}/include")
add_subdirectory("${METIS_PATH}/libmetis")
...@@ -157,10 +157,6 @@ if(OGS_BUILD_TESTS) ...@@ -157,10 +157,6 @@ if(OGS_BUILD_TESTS)
set(Data_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/Tests/Data CACHE INTERNAL "") set(Data_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/Tests/Data CACHE INTERNAL "")
endif() endif()
if(OGS_BUILD_UTILS AND NOT OGS_BUILD_GUI)
include(${CMAKE_SOURCE_DIR}/Applications/Utils/ModelPreparation/PartitionMesh/MetisSetup.cmake)
endif()
###################### ######################
### Subdirectories ### ### Subdirectories ###
###################### ######################
......
...@@ -54,3 +54,7 @@ endif() ...@@ -54,3 +54,7 @@ endif()
if(OGS_BUILD_SWMM) if(OGS_BUILD_SWMM)
add_subdirectory(${CMAKE_SOURCE_DIR}/ThirdParty/SWMMInterface) add_subdirectory(${CMAKE_SOURCE_DIR}/ThirdParty/SWMMInterface)
endif() endif()
if(OGS_BUILD_UTILS)
include(${CMAKE_SOURCE_DIR}/scripts/cmake/MetisSetup.cmake)
endif()
message( STATUS "The METIS package is copyrighted by the Regents of the University of Minnesota." )
message( STATUS "Please read the license of the METIS package carefully before you use the METIS." )
set(METIS_PATH "${CMAKE_SOURCE_DIR}/ThirdParty/metis")
add_definitions(-DUSE_GKREGEX)
set(GKLIB_PATH "${METIS_PATH}/GKlib" CACHE PATH "path to GKlib")
if(SHARED)
set(METIS_LIBRARY_TYPE SHARED)
else()
set(METIS_LIBRARY_TYPE STATIC)
endif(SHARED)
include(${GKLIB_PATH}/GKlibSystem.cmake)
include_directories(${GKLIB_PATH})
include_directories(${METIS_PATH}/include)
# From ${METIS_PATH}/libmetis/CMakeLists.txt
# Removed linking to conan
# Add this directory for internal users.
include_directories(BEFORE ${METIS_PATH}/libmetis)
# Find sources.
file(GLOB metis_sources ${METIS_PATH}/libmetis/*.c)
# Build libmetis.
add_library(metis ${GKlib_sources} ${metis_sources})
if(UNIX)
target_link_libraries(metis m)
elseif(MSVC)
include(GenerateExportHeader)
generate_export_header(metis)
endif()
install(TARGETS metis
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
COMPONENT ogs_partmesh
)
## Compile mpmetis
add_definitions(-DSVNINFO="")
include_directories(${METIS_PATH}/libmetis)
include_directories(${METIS_PATH}/programs)
set(METIS_SOURCES
${METIS_PATH}/programs/mpmetis.c
${METIS_PATH}/programs/cmdline_mpmetis.c
${METIS_PATH}/programs/io.c
${METIS_PATH}/programs/stat.c
)
add_executable(mpmetis ${METIS_SOURCES})
target_link_libraries(mpmetis metis)
install(TARGETS mpmetis RUNTIME DESTINATION bin COMPONENT ogs_partmesh)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment