cmake_minimum_required(VERSION 3.13) # The CXX language is required in order to link statically. project(CFullExampleV2 LANGUAGES C CXX) include (GNUInstallDirs) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}") # Since this example uses MPI, find and link against it. find_package(MPI COMPONENTS C) if (NOT MPI_FOUND) message(STATUS "Skipping example: ${PROJECT_NAME} requires MPI.") return () endif () #------------------------------------------------------------------------------ add_executable(CFullExampleV2 FEDataStructures.c FEDataStructures.h FEDriver.c) target_link_libraries(CFullExampleV2 PRIVATE MPI::MPI_C) #------------------------------------------------------------------------------ option(USE_CATALYST "Build example with Catalyst enabled" ON) if (USE_CATALYST) find_package(catalyst REQUIRED PATHS "${ParaView_DIR}/catalyst") target_compile_definitions(CFullExampleV2 PRIVATE "PARAVIEW_IMPL_DIR=\"${ParaView_CATALYST_DIR}\"" USE_CATALYST=1) target_link_libraries(CFullExampleV2 PRIVATE catalyst::catalyst) include(CTest) if (BUILD_TESTING) add_test( NAME CFullExampleV2::SimplePipeline COMMAND CFullExampleV2 ${CMAKE_CURRENT_SOURCE_DIR}/catalyst_pipeline.py) set(_vtk_fail_regex # CatalystAdaptor "Failed" # vtkLogger "(\n|^)ERROR: " "ERR\\|" # vtkDebugLeaks "instance(s)? still around") set_tests_properties("CFullExampleV2::SimplePipeline" PROPERTIES FAIL_REGULAR_EXPRESSION "${_vtk_fail_regex}" PASS_REGULAR_EXPRESSION "executing catalyst_pipeline" SKIP_REGULAR_EXPRESSION "Python support not enabled" SKIP_RETURN_CODE 125) # note that the CFullExampleV2::UsePYTHONPATH test is essentially the same as # CFullExampleV2::SimplePipeline except that this test does not specify the # full path to the Python script and instead relies on catalyst_pipeline.py # to be in PYTHONPATH. add_test( NAME CFullExampleV2::UsePYTHONPATH COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}:$ENV{PYTHONPATH}" ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/CFullExampleV2 catalyst_pipeline.py) set_tests_properties("CFullExampleV2::UsePYTHONPATH" PROPERTIES # XXX(cmake-3.25): use ENVIRONMENT_MODIFICATION instead of env "PYTHONPATH=...". #ENVIRONMENT_MODIFICATION "PYTHONPATH=path_list_prepend:${CMAKE_CURRENT_SOURCE_DIR}" FAIL_REGULAR_EXPRESSION "${_vtk_fail_regex}" PASS_REGULAR_EXPRESSION "executing catalyst_pipeline" SKIP_REGULAR_EXPRESSION "Python support not enabled" SKIP_RETURN_CODE 125) endif() endif()