# Copyright(C) 1999-2021, 2024 National Technology & Engineering Solutions # of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with # NTESS, the U.S. Government retains certain rights in this software. # # See packages/seacas/LICENSE for details CMAKE_MINIMUM_REQUIRED(VERSION 3.8.0) PROJECT(CatalystIossAdapter) SET(CMAKE_CXX_STANDARD 17) SET(PVCSA_VERSION CACHE STRING "Version string to append to catalyst adapter library.") IF(PVCSA_VERSION) SET(PVCSA_LIBRARY_NAME catalystioss_${PVCSA_VERSION}) ELSE() SET(PVCSA_LIBRARY_NAME catalystioss) ENDIF() FIND_PACKAGE(ParaView REQUIRED) SET(PARAVIEW_PYTHON_LIBRARY_RPATH_DIRECTORY CACHE FILEPATH "Path to the directory containing the Python library used by ParaView.") IF(PARAVIEW_PYTHON_LIBRARY_RPATH_DIRECTORY) LINK_DIRECTORIES(${PARAVIEW_PYTHON_LIBRARY_RPATH_DIRECTORY}) ENDIF() SET(PHACTORI_DRIVER_FILE_PATH "" CACHE FILEPATH "Full path to PhactoriDriver.py") IF(NOT EXISTS ${PHACTORI_DRIVER_FILE_PATH}) MESSAGE(FATAL_ERROR "PhactoriDriver.py not found: ${PHACTORI_DRIVER_FILE_PATH}") ENDIF() SET(CMAKE_SKIP_BUILD_RPATH FALSE) SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_LIBDIR}" ${PARAVIEW_PYTHON_LIBRARY_RPATH_DIRECTORY}) SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_LIBDIR}" isSystemDir) IF("${isSystemDir}" STREQUAL "-1") SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_LIBDIR}") ENDIF() INCLUDE_DIRECTORIES("manager") INCLUDE_DIRECTORIES("../../") ADD_SUBDIRECTORY(manager) ADD_LIBRARY(${PVCSA_LIBRARY_NAME} SHARED manager/CatalystManager.cxx manager/CatalystMeshWriter.cxx exodus/CatalystExodusMesh.cxx cgns/CatalystCGNSMesh.cxx) TARGET_COMPILE_DEFINITIONS(${PVCSA_LIBRARY_NAME} PRIVATE __CATALYST_PLUGIN_BUILD) TARGET_INCLUDE_DIRECTORIES(${PVCSA_LIBRARY_NAME} PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/manager) TARGET_LINK_LIBRARIES(${PVCSA_LIBRARY_NAME} INTERFACE VTK::PythonUsed PRIVATE ParaView::PythonCatalyst) OPTION(BUILD_IOSS_2_CATALYST_APPLICATION "Build ioss2catalyst application" OFF) IF(BUILD_IOSS_2_CATALYST_APPLICATION) FILE(COPY ${PHACTORI_DRIVER_FILE_PATH} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/phactori) SET(SEACAS_INSTALL_DIR CACHE PATH "Path to SEACAS build installation directory") SET(CMAKE_PREFIX_PATH ${SEACAS_INSTALL_DIR} ${CMAKE_PREFIX_PATH}) FIND_PACKAGE(SEACAS REQUIRED) IF(SEACAS_FOUND) ADD_SUBDIRECTORY(ioss2catalyst) ENABLE_TESTING() ADD_SUBDIRECTORY(test) # Copy Catalyst plugin library to lib directory in build directory for tests ADD_CUSTOM_COMMAND(TARGET ${PVCSA_LIBRARY_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/lib/ COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_BINARY_DIR}/lib/) ENDIF() ENDIF() INSTALL(TARGETS ${PVCSA_LIBRARY_NAME} LIBRARY DESTINATION lib) INSTALL(FILES ${PHACTORI_DRIVER_FILE_PATH} DESTINATION phactori)