mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
223 lines
7.6 KiB
CMake
223 lines
7.6 KiB
CMake
#==========================================================================
|
|
#
|
|
# Program: ParaView
|
|
#
|
|
# Copyright (c) 2005-2008 Sandia Corporation, Kitware Inc.
|
|
# All rights reserved.
|
|
#
|
|
# ParaView is a free software; you can redistribute it and/or modify it
|
|
# under the terms of the ParaView license version 1.2.
|
|
#
|
|
# See License_v1.2.txt for the full ParaView license.
|
|
# A copy of this license can be obtained by contacting
|
|
# Kitware Inc.
|
|
# 28 Corporate Drive
|
|
# Clifton Park, NY 12065
|
|
# USA
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
|
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
#
|
|
#==========================================================================
|
|
|
|
# Needed to have the Python version numbers available in paraview-config.
|
|
set(extra_modules)
|
|
if (PARAVIEW_ENABLE_PYTHON)
|
|
find_package(PythonInterp REQUIRED)
|
|
set(extra_modules vtkUtilitiesPythonInitializer)
|
|
endif ()
|
|
|
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/vtkModules.h"
|
|
"#include \"vtkModuleDependencies.h\"
|
|
|
|
struct vtkModuleDependency
|
|
{
|
|
const char* ModuleName;
|
|
const char** LibraryNames;
|
|
const char** Depends;
|
|
bool Python;
|
|
} vtkModules[] = {
|
|
")
|
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/vtkModuleDependencies.h"
|
|
"#include <cstdlib>
|
|
|
|
")
|
|
foreach (vtk_module IN LISTS VTK_MODULES_ENABLED extra_modules)
|
|
if (NOT vtk_module STREQUAL last_module)
|
|
set(has_python "false")
|
|
if (TARGET ${vtk_module}PythonD)
|
|
set(has_python "true")
|
|
endif ()
|
|
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/vtkModules.h"
|
|
" { \"${vtk_module}\", ${vtk_module}Libraries, ${vtk_module}Depends, ${has_python} },
|
|
")
|
|
|
|
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/vtkModuleDependencies.h"
|
|
"const char* ${vtk_module}Libraries[] = { ")
|
|
foreach (vtk_module_library IN LISTS "${vtk_module}_LIBRARIES")
|
|
if (vtk_module_library STREQUAL "optimized" OR
|
|
vtk_module_library STREQUAL "debug")
|
|
unset(vtk_module_library_name)
|
|
elseif (vtk_module_library MATCHES "^-l")
|
|
string(SUBSTRING "${vtk_module_library}" 2 -1 vtk_module_library)
|
|
find_library(vtk_module_library_name "${vtk_module_library}")
|
|
elseif (IS_ABSOLUTE "${vtk_module_library}")
|
|
set(vtk_module_library_name "${vtk_module_library}")
|
|
elseif (vtk_module_library)
|
|
set(type)
|
|
get_property(type TARGET "${vtk_module_library}" PROPERTY TYPE)
|
|
if (type STREQUAL "INTERFACE_LIBRARY")
|
|
get_property(vtk_module_library TARGET "${vtk_module_library}" PROPERTY INTERFACE_LINK_LIBRARIES)
|
|
endif ()
|
|
set(vtk_module_library_name)
|
|
get_property(vtk_module_library_name TARGET "${vtk_module_library}" PROPERTY OUTPUT_NAME)
|
|
if (NOT vtk_module_library_name)
|
|
set(vtk_module_library_name "${vtk_module_library}")
|
|
endif ()
|
|
endif ()
|
|
if (vtk_module_library_name)
|
|
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/vtkModuleDependencies.h"
|
|
"\"${vtk_module_library_name}\", ")
|
|
endif ()
|
|
endforeach ()
|
|
|
|
if (TARGET ${vtk_module}_KIT)
|
|
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/vtkModuleDependencies.h"
|
|
"\"${${vtk_module}_KIT}\", ")
|
|
elseif (TARGET ${vtk_module})
|
|
get_property(target_type TARGET "${vtk_module}" PROPERTY TYPE)
|
|
if (target_type MATCHES "_LIBRARY$")
|
|
if (target_type STREQUAL "INTERFACE_LIBRARY")
|
|
get_property(vtk_module_library TARGET "${vtk_module}" PROPERTY INTERFACE_LINK_LIBRARIES)
|
|
else ()
|
|
set(vtk_module_library "${vtk_module}")
|
|
endif ()
|
|
set(vtk_module_library_name)
|
|
get_property(vtk_module_library_name TARGET "${vtk_module_library}" PROPERTY OUTPUT_NAME)
|
|
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/vtkModuleDependencies.h"
|
|
"\"${vtk_module_library_name}\", ")
|
|
endif ()
|
|
endif ()
|
|
|
|
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/vtkModuleDependencies.h"
|
|
"NULL };
|
|
const char* ${vtk_module}Depends[] = { ")
|
|
foreach (vtk_module_depends IN LISTS ${vtk_module}_DEPENDS)
|
|
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/vtkModuleDependencies.h"
|
|
"\"${vtk_module_depends}\", ")
|
|
endforeach ()
|
|
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/vtkModuleDependencies.h"
|
|
"NULL };
|
|
")
|
|
set(last_module ${vtk_module})
|
|
endif ()
|
|
endforeach ()
|
|
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/vtkModules.h"
|
|
" { NULL, NULL, NULL, false }
|
|
};
|
|
")
|
|
|
|
configure_file(
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/paraview-config.cxx.in"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/paraview-config.cxx"
|
|
@ONLY)
|
|
pv_add_executable(paraview-config
|
|
"${CMAKE_CURRENT_BINARY_DIR}/paraview-config.cxx")
|
|
target_link_libraries(paraview-config
|
|
vtksys)
|
|
|
|
if (NOT TARGET vtkPVServerManagerApplication)
|
|
message(STATUS "vtkPVServerManagerApplication module is not enabled. "
|
|
"Command line executables will not be built.")
|
|
return()
|
|
endif()
|
|
|
|
vtk_module_dep_includes(vtkPVServerManagerApplication)
|
|
include_directories(${vtkPVServerManagerApplication_DEPENDS_INCLUDE_DIRS}
|
|
${vtkPVServerManagerApplication_INCLUDE_DIRS})
|
|
|
|
set(STATIC_LINK_PLUGINS)
|
|
if (NOT BUILD_SHARED_LIBS)
|
|
set(STATIC_LINK_PLUGINS vtkPVStaticPluginsInit)
|
|
endif()
|
|
if (PARAVIEW_USE_STATIC_NUMPY)
|
|
find_library(UTIL_LIB util)
|
|
|
|
set(extra_python_libs)
|
|
foreach (lib "${UTIL_LIB}")
|
|
if (lib)
|
|
list(APPEND extra_python_libs
|
|
"${lib}")
|
|
endif ()
|
|
endforeach ()
|
|
|
|
find_library(BLAS_LIB blas)
|
|
find_library(GSL_LIB gsl)
|
|
find_library(GSLCBLAS_LIB gslcblas)
|
|
find_library(LAPACK_LIB lapack)
|
|
|
|
set(extra_numpy_libs)
|
|
foreach (libvar BLAS_LIB GSL_LIB GSLCBLAS_LIB LAPACK_LIB)
|
|
if (${libvar})
|
|
list(APPEND extra_numpy_libs
|
|
"${${libvar}}")
|
|
add_definitions(-DHAVE_NUMPY_${libvar})
|
|
endif ()
|
|
endforeach ()
|
|
add_definitions(-DHAVE_NUMPY_STATIC)
|
|
|
|
list(APPEND STATIC_LINK_PLUGINS
|
|
${extra_python_libs} "${PYTHON_LIBRARY}"
|
|
${extra_numpy_libs} "${STATIC_NUMPY_LIBRARY}")
|
|
endif()
|
|
|
|
|
|
# Cray ATP support
|
|
set(PARAVIEW_USE_ATP OFF CACHE BOOL
|
|
"Link to Cray ATP library to enable debug features on Cray Systems")
|
|
mark_as_advanced(PARAVIEW_USE_ATP)
|
|
if (PARAVIEW_USE_ATP)
|
|
find_package(ATP)
|
|
endif()
|
|
foreach (name pvserver pvdataserver pvrenderserver)
|
|
pv_add_executable(${name} ${name}.cxx)
|
|
target_link_libraries(${name}
|
|
vtkPVServerManagerApplication
|
|
${STATIC_LINK_PLUGINS})
|
|
if (ATP_FOUND)
|
|
target_link_libraries(${name} ${ATP_LIBRARIES})
|
|
set_target_properties(${name} PROPERTIES LINK_FLAGS "${ATP_LINK_FLAGS}")
|
|
endif()
|
|
endforeach()
|
|
|
|
if (PARAVIEW_ENABLE_PYTHON)
|
|
foreach (name pvbatch pvpython)
|
|
pv_add_executable(${name} ${name}.cxx)
|
|
target_link_libraries(${name}
|
|
vtkPVServerManagerApplication
|
|
vtkUtilitiesPythonInitializer
|
|
${VTK_PYTHON_LIBRARIES}
|
|
${STATIC_LINK_PLUGINS})
|
|
if (ATP_FOUND)
|
|
target_link_libraries(${name} ${ATP_LIBRARIES})
|
|
set_target_properties(${name} PROPERTIES LINK_FLAGS "${ATP_LINK_FLAGS}")
|
|
endif()
|
|
endforeach()
|
|
|
|
# add python module dependencies to the server-executables for static builds.
|
|
foreach (name pvserver pvdataserver pvrenderserver)
|
|
target_link_libraries(${name}
|
|
vtkUtilitiesPythonInitializer)
|
|
endforeach()
|
|
|
|
endif()
|