3D EM based on Schur decomposition
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CMakeLists.txt 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. # Configure EMSchur3D
  2. set(EMSCHUR3D_VERSION_MAJOR "0")
  3. set(EMSCHUR3D_VERSION_MINOR "0")
  4. set(EMSCHUR3D_VERSION_PATCH "1")
  5. set(EMSCHUR3D_VERSION "\"${EMSCHUR3D_VERSION_MAJOR}.${EMSCHUR3D_VERSION_MINOR}.${EMSCHUR3D_VERSION_PATCH}\"")
  6. set(EMSCHUR3D_VERSION_NOQUOTES "${EMSCHUR3D_VERSION_MAJOR}.${EMSCHUR3D_VERSION_MINOR}.${EMSCHUR3D_VERSION_PATCH}")
  7. option ( LEMMA_MODULE_EMSCHUR3D TRUE )
  8. find_package( SuperLU )
  9. if (SUPERLU_FOUND)
  10. message( STATUS "SuperLU was found" )
  11. add_compile_options(-DHAVE_SUPERLU)
  12. INCLUDE_DIRECTORIES(${SUPERLU_INCLUDES})
  13. endif()
  14. if ( LEMMA_VTK6_SUPPORT OR LEMMA_VTK7_SUPPORT OR LEMMA_VTK8_SUPPORT AND LEMMA_MODULE_EMSCHUR3D )
  15. configure_file (
  16. "${CMAKE_CURRENT_SOURCE_DIR}/config/EMSchur3DConfig.h.in"
  17. "${PROJECT_BINARY_DIR}/include/EMSchur3DConfig.h"
  18. )
  19. install ( FILES ${PROJECT_BINARY_DIR}/include/EMSchur3DConfig.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include/Lemma/ )
  20. add_subdirectory("src")
  21. add_library( emschur3d ${EMSCHUR3DSOURCE} )
  22. target_include_directories( emschur3d PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" )
  23. set_target_properties(emschur3d PROPERTIES
  24. VERSION "${EMSCHUR3D_VERSION_NOQUOTES}"
  25. SOVERSION "${EMSCHUR3D_VERSION_MAJOR}.${LEMMA_VERSION_MINOR}"
  26. PROJECT_LABEL "EMSCHUR3D ${LABEL_SUFFIX}"
  27. CXX_STANDARD_14
  28. CXX_STANDARD_REQUIRED_ON
  29. )
  30. # Linking
  31. target_link_libraries(emschur3d "lemmacore" "fdem1d" )
  32. # Linking
  33. target_link_libraries(emschur3d ${VTK_LIBRARIES})
  34. target_link_libraries(emschur3d ${SUPERLU_LIBRARIES})
  35. # Testing
  36. if (LEMMA_ENABLE_TESTING)
  37. add_subdirectory(testing)
  38. endif()
  39. # Install
  40. install ( TARGETS emschur3d DESTINATION ${CMAKE_INSTALL_PREFIX}/lib )
  41. install ( FILES include/EMSchur3D DESTINATION ${CMAKE_INSTALL_PREFIX}/include/Lemma )
  42. install ( DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/Lemma FILES_MATCHING PATTERN "*.h")
  43. #install ( DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/Lemma/ FILES_MATCHING PATTERN "FDEM1D")
  44. #install ( DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/Lemma/FDEM1D FILES_MATCHING PATTERN "*.h")
  45. # Examples
  46. if ( LEMMA_BUILD_EXAMPLES)
  47. add_subdirectory(examples)
  48. endif()
  49. else()
  50. if ( LEMMA_MODULE_EMSCHUR3D )
  51. message ( FATAL_ERROR
  52. "EMSChur3D requires VTK 6, 7, or 8"
  53. )
  54. endif()
  55. endif()