[xdmf] 14/38: Snapshot of xdmf.git from kitware (Xdmf3)

Alastair McKinstry mckinstry at moszumanska.debian.org
Thu Apr 13 15:16:33 UTC 2017


This is an automated email from the git hooks/post-receive script.

mckinstry pushed a commit to branch debian/master
in repository xdmf.

commit 4d797be70a356ba9f3766219bfe4c4e8f776ee40
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Sun Aug 14 17:35:02 2016 +0100

    Snapshot of xdmf.git from kitware (Xdmf3)
---
 CMakeLists.txt    | 973 +++++++++++++++++++++++++-----------------------------
 CTestConfig.cmake |  21 +-
 2 files changed, 449 insertions(+), 545 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3147058..0110dbb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,536 +1,445 @@
-#
-CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
-PROJECT(Xdmf)
-if(COMMAND cmake_policy)
-    cmake_policy(SET CMP0003 NEW)
-#    cmake_policy(SET CMP0003 OLD)
-endif(COMMAND cmake_policy)
-SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${Xdmf_SOURCE_DIR}/CMake)
-
-OPTION(BUILD_SHARED_LIBS "Build Shared XDMF Library" ON)
-
-# Disable deprecation warnings for standard C and STL functions in VS2005
-# and later
-IF(MSVC_VERSION EQUAL 1400 OR MSVC_VERSION GREATER 1400)
-  ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS)
-  ADD_DEFINITIONS(-D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS) 
-ENDIF(MSVC_VERSION EQUAL 1400 OR MSVC_VERSION GREATER 1400) 
-
-IF(NOT BUILD_SHARED_LIBS)
-  SET(CMAKE_C_FLAGS -fPIC)
-  SET(CMAKE_CXX_FLAGS -fPIC)
-ENDIF(NOT BUILD_SHARED_LIBS)
-
-# We need ansi c-flags, especially on HP
-SET(CMAKE_REQUIRED_FLAGS ${CMAKE_ANSI_CFLAGS})
-
-# Platform configuration tests.
-INCLUDE(${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityC.cmake)
-INCLUDE(${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityCXX.cmake)
-
-SET(XDMF_INSTALL_DIR_CONFIG ${Xdmf_BINARY_DIR})
-INCLUDE_DIRECTORIES(
-  ${Xdmf_SOURCE_DIR}/libsrc
-  ${Xdmf_BINARY_DIR}/libsrc)
-
-SET (LIBRARY_OUTPUT_PATH ${Xdmf_BINARY_DIR}/bin/ CACHE PATH 
-  "Single output directory for building all libraries.")
-SET (EXECUTABLE_OUTPUT_PATH ${Xdmf_BINARY_DIR}/bin/ CACHE PATH 
-  "Single output directory for building all executables.")
-
-INCLUDE (${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake)
-INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
-
-SET(VTK_INSTALL_LIB_DIR "/lib")
-
-OPTION(XDMF_MEMORY_DEBUG "Enable Memory Debugging in Xdmf" OFF)
-IF(XDMF_MEMORY_DEBUG)
-  SET(CMAKE_BUILD_TYPE "Debug")
-  ADD_DEFINITIONS(-DH5_USING_PURIFY -DXDMF_MEMORY_DEBUG)
-ENDIF(XDMF_MEMORY_DEBUG)
-
-############################################################################
-# Metis
-
-IF(XDMF_BUILD_UTILS)
-    SET(XDMF_METIS_LIBRARIES metis)
-    SET(METIS_INCLUDE_DIRS "${Xdmf_SOURCE_DIR}/Utilities/metis")
-    INCLUDE_DIRECTORIES(${METIS_INCLUDE_DIRS})
-
-    ADD_SUBDIRECTORY(Utilities/metis)
-
-    # Set config.cmake paths
-    SET(XDMF_METIS_INCLUDE_DIR_CONFIG ${METIS_INCLUDE_DIRS})
-    SET(XDMF_METIS_INCLUDE_DIR_INSTALL_CONFIG ${CMAKE_INSTALL_PREFIX}/include/metis)
-    SET(XDMF_METIS_LIBRARY_DIR_CONFIG ${Xdmf_BINARY_DIR}/bin)
-    SET(XDMF_METIS_LIBRARY_DIR_INSTALL_CONFIG ${CMAKE_INSTALL_PREFIX}/lib)
-ENDIF(XDMF_BUILD_UTILS)
-
-#############################################################################
-# VTK READER/WRITER to use .xdmf files in vtk
-
-INCLUDE(vtkThirdParty)
-OPTION(XDMF_BUILD_VTK "Build VTK reader" OFF)
-
-IF(XDMF_BUILD_VTK)
-  FIND_PACKAGE(VTK REQUIRED)
-  IF(VTK_FOUND)
-    INCLUDE(${VTK_USE_FILE})
-  ENDIF(VTK_FOUND)
-ELSE(XDMF_BUILD_VTK)
-  SET(VTK_DIR)
-ENDIF(XDMF_BUILD_VTK)
-
-#############################################################################
-# ZLIB LIBRARY
-
-IF(XDMF_BUILD_VTK)
-  
-  # Zlib from vtk
-  SET(XDMF_ZLIB_LIBRARIES ${VTK_ZLIB_LIBRARIES})
-  IF(NOT VTK_USE_SYSTEM_ZLIB)
-    SET(HDF5_ZLIB_INCLUDE_DIRS ${VTK_INSTALL_PREFIX}${VTK_INSTALL_INCLUDE_DIR};${VTK_INSTALL_PREFIX}${VTK_INSTALL_INCLUDE_DIR}/vtkzlib)
-    INCLUDE_DIRECTORIES(${HDF5_ZLIB_INCLUDE_DIRS})
-    SET(HDF5_ZLIB_HEADER "vtkzlib/zlib.h")
-
-    # Set config.cmake paths
-    SET(XDMF_ZLIB_INCLUDE_DIR_CONFIG ${HDF5_ZLIB_INCLUDE_DIRS})
-    SET(XDMF_ZLIB_INCLUDE_DIR_INSTALL_CONFIG ${XDMF_ZLIB_INCLUDE_DIR_CONFIG})
-    SET(XDMF_ZLIB_LIBRARY_DIR_CONFIG ${VTK_LIBRARY_DIRS})
-    SET(XDMF_ZLIB_LIBRARY_DIR_INSTALL_CONFIG ${XDMF_ZLIB_LIBRARY_DIR_CONFIG})
-
-  ENDIF(NOT VTK_USE_SYSTEM_ZLIB)
-
-ELSE(XDMF_BUILD_VTK)
+project(Xdmf)
+cmake_minimum_required(VERSION 2.6)
+
+#Needed to build DSM because relative paths are used to add its libraries
+if (POLICY CMP0015)
+	cmake_policy(SET CMP0015 NEW)
+endif ()
+
+if(MSVC10)
+	SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR})
+	SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR})
+	SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR})
+endif()
+
+set(XDMF_LIBNAME "Xdmf" CACHE STRING "Name for this xdmf library to avoid collision")
+option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF)
+if(BUILD_SHARED_LIBS)
+  set(LIBTYPE SHARED)
+  set(BUILD_SHARED 1)
+else()
+  set(LIBTYPE STATIC)
+endif()
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/XdmfConfig.hpp.in
+               ${CMAKE_CURRENT_BINARY_DIR}/XdmfConfig.hpp)
+
+if (WIN32)
+  set(XDMF_STATIC_AND_SHARED OFF)
+else()
+  option(XDMF_STATIC_AND_SHARED
+       "Build both static and shared libraries" ON)
+  mark_as_advanced(FORCE XDMF_STATIC_AND_SHARED)
+endif()
+
+# Enable CMake testing
+option(XDMF_BUILD_TESTING "Build Tests" OFF)
+if(XDMF_BUILD_TESTING)
+  enable_testing()
+  include(CTest)
+endif()
+
+if (XDMF_STATIC_AND_SHARED)
+  add_definitions(-DXDMFSTATIC)
+endif ()
+
+include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+list(APPEND CMAKE_MODULE_PATH
+  ${CMAKE_CURRENT_SOURCE_DIR}/CMake
+  ${CMAKE_CURRENT_SOURCE_DIR}/CMake/VersionSuite)
+if(XDMF_BUILD_TESTING)
+  list(APPEND CMAKE_MODULE_PATH
+    ${CMAKE_CURRENT_SOURCE_DIR}/CMake/TestingSuite)
+endif()
+
+include(XdmfFunctions)
+
+# Converting Install Prefix to an absolute path
+get_filename_component(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" ABSOLUTE)
+
+# RPath
+#set(CMAKE_SKIP_BUILD_RPATH  FALSE)
+#set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
+#set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
+#set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+
+# Should we build with documentation
+option(XDMF_BUILD_DOCUMENTATION OFF)
+if(XDMF_BUILD_DOCUMENTATION)
+  add_subdirectory(doc)
+endif()
+
+# Wrapper Setup
+option(XDMF_WRAP_PYTHON OFF)
+option(XDMF_WRAP_JAVA OFF)
+
+#check for TIFF
+find_package(TIFF)
+if (TIFF_FOUND)
+  add_definitions(-DXDMF_BUILD_TIFF)
+  mark_as_advanced(FORCE TIFF_INCLUDE_DIR)
+  mark_as_advanced(FORCE TIFF_LIBRARIES)
+  mark_as_advanced(FORCE TIFF_LIBRARY)
+  include_directories(${TIFF_INCLUDE_DIR})
+  get_filename_component(TIFF_LIBRARY_DIR "${TIFF_LIBRARY}" PATH)
+  set(XDMF_LIBRARY_DIRS ${XDMF_LIBRARY_DIRS} ${TIFF_LIBRARY_DIR})
+  set(XDMF_LIBRARIES ${XDMF_LIBRARIES} ${TIFF_LIBRARIES})
+endif (TIFF_FOUND)
+
+# Test for DSM
+option(XDMF_BUILD_DSM OFF)
+mark_as_advanced(XDMF_BUILD_DSM)
+
+if(XDMF_BUILD_DSM)
+  find_package(MPI REQUIRED)
+  if(MPI_FOUND)
+    include_directories(${MPI_INCLUDE_PATH})
+    set(XDMF_LIBRARIES ${XDMF_LIBRARIES} ${MPI_LIBRARY} ${MPI_EXTRA_LIBRARY})
+    get_filename_component(MPI_LIBRARY_DIR ${MPI_LIBRARY} PATH)
+    set(XDMF_LIBRARY_DIRS ${XDMF_LIBRARY_DIRS} ${MPI_LIBRARY_DIR})
+    # intel compiler requires an extra tag for CXX_FLAGS in order to properly build
+    STRING(REGEX MATCH "icpc" IS_INTEL "${CMAKE_CXX_COMPILER}")
+    if (NOT "${IS_INTEL}" STREQUAL "")
+      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMPICH_IGNORE_CXX_SEEK")
+    endif ()
+  endif()
+  option(XDMF_BUILD_DSM_THREADS ON)
+  if (XDMF_WRAP_PYTHON)
+    mark_as_advanced(FORCE PYTHON_INCLUDE_MPI4PY_DIR)
+    set(PYTHON_INCLUDE_MPI4PY_DIR "" CACHE STRING "Directory containing mpi4py/mpi4py.i")
+  endif ()
+  add_definitions(-DXDMF_BUILD_DSM)
+endif()
+
+# If we are wrapping either, we need swig
+if(XDMF_WRAP_PYTHON OR XDMF_WRAP_JAVA)
+  find_package(SWIG REQUIRED)
+  include(${SWIG_USE_FILE})
+  if(${SWIG_VERSION} LESS 2.0.0)
+    message(SEND_ERROR "Swig must be version 2.0.0 or greater")
+  endif()
+endif()
+
+# If we are wrapping python, let's include it in the top level
+if(XDMF_WRAP_PYTHON)
+  find_package(PythonInterp ${REQUESTED_PYTHON_VERSION} REQUIRED)
+  find_package(PythonLibs ${REQUESTED_PYTHON_VERSION} REQUIRED)
+  if (XDMF_BUILD_DSM)
+    find_package (MPI4PY REQUIRED)
+    if (MPI4PY_FOUND)
+      if ("${PYTHON_INCLUDE_MPI4PY_DIR}" STREQUAL "")
+        set(PYTHON_INCLUDE_MPI4PY_DIR ${MPI4PY_INCLUDE_DIR})
+      endif ()
+    endif ()
+    include_directories(${PYTHON_INCLUDE_DIRS} ${MPI_CXX_INCLUDE_PATH} ${PYTHON_INCLUDE_MPI4PY_DIR})
+  else ()
+    include_directories(${PYTHON_INCLUDE_DIRS})
+  endif ()
+
+  # A macro to swig and create the python files
+  # Since we essentually do the same thing inside and outside core, it
+  # would be easier as a macro
+  # Parameters:
+  #     python_name = the name of the intended target to be wrapped
+  #     ${ARGN} = any dependencies needed by the target
+  # Output:
+  #     Target Name = the output target name will have ${python_name} as its name
+  macro(XDMF_SWIG_PYTHON python_name)
+    set(CMAKE_SWIG_OUTDIR ${CMAKE_BINARY_DIR})
+    # optimize swig generation --- these are all flags corresponding to -O
+    # except -fvirtual which breaks visitor operation
+    set(CMAKE_SWIG_FLAGS ${XDMF_SWIG_FLAGS} -modern -fastdispatch -nosafecstrings -noproxydel -fastproxy -fastinit -fastunpack -fastquery -modernargs -nobuildnone)
+    #Enables DSM
+    if (XDMF_BUILD_DSM)
+      set(CMAKE_SWIG_FLAGS ${CMAKE_SWIG_FLAGS} -DXDMF_BUILD_DSM)
+      if (XDMF_BUILD_DSM_THREADS)
+        set(CMAKE_SWIG_FLAGS ${CMAKE_SWIG_FLAGS} -DXDMF_BUILD_DSM_THREADS)
+      endif ()
+    endif ()
+    set_source_files_properties(${python_name}.i PROPERTIES CPLUSPLUS ON)
+    set(swig_extra_generated_files "")
+    swig_add_module(${python_name}Python python ${python_name}.i)
+    swig_link_libraries(${python_name}Python ${python_name} ${PYTHON_LIBRARIES})
+    set_property(DIRECTORY APPEND PROPERTY
+      ADDITIONAL_MAKE_CLEAN_FILES
+      ${CMAKE_CURRENT_BINARY_DIR}/${python_name}.pyc
+    )
 
-  OPTION(XDMF_SYSTEM_ZLIB "Use system Zlib" OFF)
-  IF(XDMF_SYSTEM_ZLIB)
-  
-    # Use a zlib that is installed on the machine somewhere
-    FIND_PACKAGE(ZLIB REQUIRED)
-    SET(XDMF_ZLIB_LIBRARIES ${ZLIB_LIBRARY})
-    SET(HDF5_ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR})
-
-    # Set config.cmake paths
-    SET(XDMF_ZLIB_INCLUDE_DIR_CONFIG ${ZLIB_INCLUDE_DIR})
-    SET(XDMF_ZLIB_INCLUDE_DIR_INSTALL_CONFIG ${XDMF_ZLIB_INCLUDE_DIR_CONFIG})
-    GET_FILENAME_COMPONENT(XDMF_ZLIB_LIBRARY_DIR_CONFIG ${ZLIB_LIBRARY} PATH)
-    SET(XDMF_ZLIB_LIBRARY_DIR_INSTALL_CONFIG ${XDMF_ZLIB_LIBRARY_DIR_CONFIG})
-  
-  ELSE(XDMF_SYSTEM_ZLIB)
-
-    # Build our own vtkzlib
-    SUBDIRS(Utilities/vtkzlib)
-
-    SET(HDF5_ZLIB_INCLUDE_DIRS "${Xdmf_BINARY_DIR}/Utilities/vtkzlib;${Xdmf_BINARY_DIR}/Utilities;${Xdmf_SOURCE_DIR}/Utilities;${Xdmf_SOURCE_DIR}/Utilities/vtkzlib")
-    INCLUDE_DIRECTORIES(${HDF5_ZLIB_INCLUDE_DIRS})
-    SET(HDF5_ZLIB_HEADER "vtkzlib/zlib.h")
-    
-    # Set config.cmake paths
-    SET(XDMF_ZLIB_INCLUDE_DIR_CONFIG ${HDF5_ZLIB_INCLUDE_DIRS})
-    SET(XDMF_ZLIB_INCLUDE_DIR_INSTALL_CONFIG ${CMAKE_INSTALL_PREFIX}/include/vtkzlib)
-    SET(XDMF_ZLIB_LIBRARY_DIR_CONFIG ${Xdmf_BINARY_DIR}/bin)
-    SET(XDMF_ZLIB_LIBRARY_DIR_INSTALL_CONFIG ${CMAKE_INSTALL_PREFIX}/lib)
-    SET(XDMF_ZLIB_LIBRARIES vtkzlib)
-
-  ENDIF(XDMF_SYSTEM_ZLIB)
-
-ENDIF(XDMF_BUILD_VTK)
-
-#############################################################################
-# NETCDF LIBRARY
-
-IF(XDMF_BUILD_UTILS)
-  IF(XDMF_BUILD_VTK AND EXISTS ${VTK_INSTALL_PREFIX}${VTK_INSTALL_INCLUDE_DIR}/vtk_netcdf.h)
-   
-    # NetCDF library from vtk
-    SET(XDMF_NETCDF_LIBRARIES vtkNetCDF)
-    SET(NETCDF_INCLUDE_DIRS ${VTK_INSTALL_PREFIX}${VTK_INSTALL_INCLUDE_DIR}/vtknetcdf)
-    INCLUDE_DIRECTORIES(${NETCDF_INCLUDE_DIRS})
-
-    # Set config.cmake paths
-    SET(XDMF_NETCDF_INCLUDE_DIR_CONFIG ${VTK_INSTALL_PREFIX}${VTK_INSTALL_INCLUDE_DIR}/vtknetcdf)
-    SET(XDMF_NETCDF_INCLUDE_DIR_INSTALL_CONFIG ${XDMF_NETCDF_INCLUDE_DIR_CONFIG})
-    SET(XDMF_NETCDF_LIBRARY_DIR_CONFIG ${VTK_LIBRARY_DIRS})
-    SET(XDMF_NETCDF_LIBRARY_DIR_INSTALL_CONFIG ${XDMF_NETCDF_LIBRARY_DIR_CONFIG})
+    if("${ARGN}" STRGREATER "")
+      add_dependencies(${python_name} "${ARGN}")
+    endif()
+
+    if(WIN32)
+      if(NOT MSVC10)
+        set_target_properties(${SWIG_MODULE_${python_name}Python_REAL_NAME}
+          PROPERTIES
+          PREFIX ../
+          IMPORT_PREFIX ../
+          RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+          LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+          ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+      endif()
+    endif()
+
+    set_target_properties(${SWIG_MODULE_${python_name}Python_REAL_NAME}
+      PROPERTIES
+      OUTPUT_NAME "_${python_name}")
+
+    string(TOUPPER ${python_name} python_name_upper)
+    set(${python_name_upper}_PYTHON
+      ${CMAKE_INSTALL_PREFIX}/lib/python/${python_name}.py)
+    get_directory_property(${python_name}Parent PARENT_DIRECTORY)
+    if(NOT "${${python_name}Parent}" STREQUAL "")
+      set(${python_name_upper}_PYTHON ${${python_name_upper}_PYTHON}
+        PARENT_SCOPE)
+    endif()
+
+    install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${python_name}.py
+      DESTINATION lib/python)
+    install(TARGETS ${SWIG_MODULE_${python_name}Python_REAL_NAME}
+      DESTINATION lib/python)
+  endmacro()
+endif()
+
+# If we are wrapping java, let's include it in the top level
+if(XDMF_WRAP_JAVA)
+  find_package(Java REQUIRED)
+  find_package(JNI REQUIRED)
+  include_directories(${CMAKE_CURRENT_SOURCE_DIR}
+    ${JAVA_INCLUDE_PATH}
+    ${JAVA_INCLUDE_PATH2})
+
+  # A macro to swig and create the jar files
+  # Since we essentually do the same thing inside and outside core, it
+  # would be easier as a macro
+  # Parameters:
+  #     java_name = the name of the intended target to be wrapped
+  #     ${ARGN} = any dependencies needed by the target
+  # Output:
+  #     Target Name     = the output target name will have ${java_name}Java as its name
+  #     Target Jar      = the output target jar will have ${java_name}Java.jar as its name
+  macro(XDMF_SWIG_JAVA java_name)
+    set(${java_name}_JAVA_JAR ${CMAKE_BINARY_DIR}/${java_name}.jar)
+    set(XDMF_JAVA_PACKAGE_DIR mil/army/arl/xdmf)
+    set(XDMF_JAVA_DIR ${CMAKE_BINARY_DIR}/${XDMF_JAVA_PACKAGE_DIR})
+    set(CMAKE_SWIG_OUTDIR ${XDMF_JAVA_DIR})
+    set(CMAKE_SWIG_FLAGS ${XDMF_SWIG_FLAGS} -v -make_default -package mil.army.arl.xdmf)
+    set_source_files_properties(${java_name}.i PROPERTIES CPLUSPLUS ON)
+    set(swig_extra_generated_files "")
+    swig_add_module(${java_name}Java java ${java_name}.i)
+    swig_link_libraries(${java_name}Java ${java_name})
+
+    if(WIN32)
+	  if(NOT MSVC10)
+        set_target_properties(${SWIG_MODULE_${java_name}Java_REAL_NAME}
+          PROPERTIES
+          PREFIX ../
+          IMPORT_PREFIX ../
+          RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+          LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+          ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+	  endif()
+      set(java_files *.java)
+      set(java_dest "bin")
+      set(separator "\;")
+    else()
+      set(java_files ${XDMF_JAVA_DIR}/*.java)
+      set(java_dest "lib/java")
+      set(separator ":")
+    endif()
+
+    add_custom_target(${java_name}_Java_Dir ALL DEPENDS ${XDMF_JAVA_DIR})
+    add_custom_command(OUTPUT ${XDMF_JAVA_DIR}
+      COMMAND ${CMAKE_COMMAND} -E make_directory ${XDMF_JAVA_DIR})
+    add_custom_target(Compiled_${java_name}_Jar ALL DEPENDS
+      ${${java_name}_JAVA_JAR})
+    add_custom_command(OUTPUT ${${java_name}_JAVA_JAR}
+      COMMAND ${CMAKE_COMMAND} -E chdir ${XDMF_JAVA_PACKAGE_DIR}
+              ${JAVA_COMPILE} -cp \".${java_cp_jars}\" ${java_files}
+      COMMAND ${JAVA_ARCHIVE} -cvf ${${java_name}_JAVA_JAR}
+             "${XDMF_JAVA_PACKAGE_DIR}/*.class")
+    add_dependencies(${java_name}Java ${java_name}_Java_Dir)
+    add_dependencies(Compiled_${java_name}_Jar ${java_name}Java)
+
+    if(NOT ${ARGN} EQUAL "")
+      add_dependencies(Compiled_${java_name}_Jar "${ARGN}")
+    endif()
+
+    set_property(DIRECTORY APPEND PROPERTY
+      ADDITIONAL_MAKE_CLEAN_FILES
+      ${CMAKE_CURRENT_BINARY_DIR}/${java_name}.jar
+      ${XDMF_JAVA_DIR})
+
+    set(java_cp_jars "${java_cp_jars}${separator}${${java_name}_JAVA_JAR}")
+    string(TOUPPER ${java_name} java_name_upper)
+    set(${java_name_upper}_JAVA_JAR
+      ${CMAKE_INSTALL_PREFIX}/lib/java/${java_name}.jar)
+    get_directory_property(${java_name}Parent PARENT_DIRECTORY)
+    if(NOT "${${java_name}Parent}" STREQUAL "")
+      set(${java_name_upper}_JAVA_JAR ${${java_name_upper}_JAVA_JAR}
+        PARENT_SCOPE)
+      set(java_cp_jars "${java_cp_jars}" PARENT_SCOPE)
+    endif()
+
+    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${java_name}.jar
+      DESTINATION lib/java)
+    install(TARGETS ${SWIG_MODULE_${java_name}Java_REAL_NAME}
+      DESTINATION ${java_dest})
+  endmacro()
+endif()
+
+add_subdirectory(core)
+include_directories(${XdmfCore_INCLUDE_DIRS} ${XdmfDSM_INCLUDE_DIRS})
+link_directories(${XDMF_LIBRARY_DIRS})
+
+option(XDMF_BUILD_CORE_ONLY OFF)
+if(NOT XDMF_BUILD_CORE_ONLY)
+  set(XdmfSources
+    XdmfAggregate
+    XdmfAttribute
+    XdmfAttributeCenter
+    XdmfAttributeType
+    XdmfCurvilinearGrid
+    XdmfDomain
+    XdmfGeometry
+    XdmfGeometryType
+    XdmfGraph
+    XdmfGrid
+    XdmfGridCollection
+    XdmfGridCollectionType
+    XdmfGridController
+    XdmfGridTemplate
+    XdmfItemFactory
+    XdmfMap
+    XdmfReader
+    XdmfRectilinearGrid
+    XdmfRegularGrid
+    XdmfSet
+    XdmfSetType
+    XdmfTemplate
+    XdmfTime
+    XdmfTopology
+    XdmfTopologyType
+    XdmfUnstructuredGrid)
+
+  if(XDMF_STATIC_AND_SHARED)
+    add_library(XdmfObjects OBJECT ${XdmfSources})
+    set_target_properties(XdmfObjects PROPERTIES
+      POSITION_INDEPENDENT_CODE True)
+    add_library(${XDMF_LIBNAME} $<TARGET_OBJECTS:XdmfObjects>)
+    if (BUILD_SHARED_LIBS)
+      add_library(Xdmf_Static STATIC $<TARGET_OBJECTS:XdmfObjects>)
+      set_target_properties(Xdmf_Static PROPERTIES
+          OUTPUT_NAME "Xdmf")
+    endif (BUILD_SHARED_LIBS)
+  else()
+    add_library(${XDMF_LIBNAME} ${LIBTYPE} ${XdmfSources})
+  endif()
+  if(XDMF_BUILD_DSM)
+    target_link_libraries(${XDMF_LIBNAME} XdmfCore XdmfDSM)
+    if(XDMF_STATIC_AND_SHARED AND BUILD_SHARED_LIBS)
+        target_link_libraries(Xdmf_Static XdmfCore_Static XdmfDSM_Static)
+    endif()
+  else(XDMF_BUILD_DSM)
+    target_link_libraries(${XDMF_LIBNAME} XdmfCore)
+    if(XDMF_STATIC_AND_SHARED AND BUILD_SHARED_LIBS)
+      target_link_libraries(Xdmf_Static XdmfCore_Static)
+    endif ()
+  endif(XDMF_BUILD_DSM)
+  if (COMMAND vtk_target_install)
+    vtk_target_install(${XDMF_LIBNAME})
+  endif()
+
+  if(WIN32)
+    if (BUILD_SHARED_LIBS)
+      set_target_properties(${XDMF_LIBNAME} PROPERTIES
+        DEFINE_SYMBOL XDMF_EXPORTS)
+      if(XDMF_STATIC_AND_SHARED)
+        set_target_properties(Xdmf_Static PROPERTIES
+          DEFINE_SYMBOL Xdmf_EXPORTS)
+      endif()
+    endif ()
+    if(NOT MSVC10)
+      set_target_properties(${XDMF_LIBNAME} PROPERTIES
+        PREFIX ../
+        IMPORT_PREFIX ../
+        RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
+        LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
+        ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+      if(XDMF_STATIC_AND_SHARED AND BUILD_SHARED_LIBS)
+        set_target_properties(Xdmf_Static PROPERTIES
+          PREFIX ../
+          IMPORT_PREFIX ../
+          RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
+          LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
+          ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+      endif ()
+    endif()
+  endif()
+
+  if(XDMF_WRAP_JAVA)
+    XDMF_SWIG_JAVA(${XDMF_LIBNAME} Compiled_XdmfCore_Jar)
+  endif()
+
+  if(XDMF_WRAP_PYTHON)
+    if (NOT BUILD_SHARED_LIBS)
+      message(FATAL_ERROR "Python Wrappers do not function"
+                          " properly without shared libraries")
+    endif (NOT BUILD_SHARED_LIBS)
+    if (XDMF_BUILD_DSM)
+      XDMF_SWIG_PYTHON(${XDMF_LIBNAME} XdmfCore XdmfDSM)
+    else()
+      XDMF_SWIG_PYTHON(${XDMF_LIBNAME} XdmfCore)
+    endif()
+    set(XDMF_PYTHON_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib/python/)
+  endif()
+
+  if(XDMF_BUILD_TESTING)
+    add_subdirectory(tests)
+  endif()
+
+  option(XDMF_BUILD_UTILS OFF)
+  if(XDMF_BUILD_UTILS)
+    add_subdirectory(utils)
+  endif()
+
+  if(WIN32)
+    set(XDMF_LIBRARY ${CMAKE_INSTALL_PREFIX}/lib/${XDMF_LIBNAME}.lib)
+  endif()
   
-  ELSE(XDMF_BUILD_VTK AND EXISTS ${VTK_INSTALL_PREFIX}${VTK_INSTALL_INCLUDE_DIR}/vtk_netcdf.h)
-
-    # Build our own vtknetcdf library
-    ADD_SUBDIRECTORY(Utilities/vtknetcdf)
-
-    SET(XDMF_NETCDF_LIBRARIES vtkNetCDF)
-    SET(NETCDF_INCLUDE_DIRS "${Xdmf_BINARY_DIR}/Utilities/vtknetcdf;${Xdmf_SOURCE_DIR}/Utilities/vtknetcdf")
-    INCLUDE_DIRECTORIES(${NETCDF_INCLUDE_DIRS})
-    
-    SET(XDMF_NETCDF_INCLUDE_DIR_CONFIG ${NETCDF_INCLUDE_DIRS})
-    SET(XDMF_NETCDF_INCLUDE_DIR_INSTALL_CONFIG ${CMAKE_INSTALL_PREFIX}/include/vtknetcdf)
-    SET(XDMF_NETCDF_LIBRARY_DIR_CONFIG ${CMAKE_INSTALL_PREFIX}/bin)
-    SET(XDMF_NETCDF_LIBRARY_DIR_INSTALL_CONFIG ${CMAKE_INSTALL_PREFIX}/lib)
+  if(UNIX)
+    if (BUILD_SHARED_LIBS)
+      set(XDMF_LIBRARY ${CMAKE_INSTALL_PREFIX}/lib/lib${XDMF_LIBNAME}.so)
+    else (BUILD_SHARED_LIBS)
+      set(XDMF_LIBRARY ${CMAKE_INSTALL_PREFIX}/lib/lib${XDMF_LIBNAME}.a)
+    endif (BUILD_SHARED_LIBS)
+  endif(UNIX)
+
+  if(APPLE)
+    set(XDMF_LIBRARY ${CMAKE_INSTALL_PREFIX}/lib/lib${XDMF_LIBNAME}.dylib)
+  endif()
   
-  ENDIF(XDMF_BUILD_VTK AND EXISTS ${VTK_INSTALL_PREFIX}${VTK_INSTALL_INCLUDE_DIR}/vtk_netcdf.h)
-
-ENDIF(XDMF_BUILD_UTILS)
-
-#############################################################################
-# EXODUSII LIBRARY
-
-IF(XDMF_BUILD_UTILS)
-  
-  IF(XDMF_BUILD_VTK AND EXISTS ${VTK_INSTALL_PREFIX}${VTK_INSTALL_INCLUDE_DIR}/vtkexodus2/exodusII.h)
-
-    # Exodus library from vtk
-    SET(XDMF_EXODUSII_LIBRARIES vtkexoIIc)
-    SET(EXODUSII_INCLUDE_DIRS ${VTK_INSTALL_PREFIX}${VTK_INSTALL_INCLUDE_DIR}/vtkexodus2)
-    INCLUDE_DIRECTORIES(${EXODUSII_INCLUDE_DIRS})
-
-    # Set config.cmake paths
-    SET(XDMF_EXODUSII_INCLUDE_DIR_CONFIG ${EXODUSII_INCLUDE_DIRS})
-    SET(XDMF_EXODUSII_INCLUDE_DIR_INSTALL_CONFIG ${XDMF_EXODUSII_INCLUDE_DIR_CONFIG})
-    SET(XDMF_EXODUSII_LIBRARY_DIR_CONFIG ${VTK_LIBRARY_DIRS})
-    SET(XDMF_EXODUSII_LIBRARY_DIR_INSTALL_CONFIG ${XDMF_EXODUSII_LIBRARY_DIR_CONFIG})
-
-  ELSE(XDMF_BUILD_VTK AND EXISTS ${VTK_INSTALL_PREFIX}${VTK_INSTALL_INCLUDE_DIR}/vtkexodus2/exodusII.h)
-
-    # Build our own vtkexodus2 library
-    ADD_SUBDIRECTORY(Utilities/vtkexodus2)
-
-    SET(XDMF_EXODUSII_LIBRARIES vtkexoIIc)
-    SET(EXODUSII_INCLUDE_DIRS "${Xdmf_BINARY_DIR}/Utilities/vtkexodus2/include;${Xdmf_SOURCE_DIR}/Utilities/vtkexodus2/include")
-    INCLUDE_DIRECTORIES(${EXODUSII_INCLUDE_DIRS})
-   
-    # Set config.cmake paths
-    SET(XDMF_EXODUSII_INCLUDE_DIR_CONFIG ${EXODUSII_INCLUDE_DIRS})
-    SET(XDMF_EXODUSII_INCLUDE_DIR_INSTALL_CONFIG ${CMAKE_INSTALL_PREFIX}/include/vtkexodus2)
-    SET(XDMF_EXODUSII_LIBRARY_DIR_CONFIG ${Xdmf_BINARY_DIR}/bin)
-    SET(XDMF_EXODUSII_LIBRARY_DIR_INSTALL_CONFIG ${CMAKE_INSTALL_PREFIX}/lib)
- 
-  ENDIF(XDMF_BUILD_VTK AND EXISTS ${VTK_INSTALL_PREFIX}${VTK_INSTALL_INCLUDE_DIR}/vtkexodus2/exodusII.h)
-
-ENDIF(XDMF_BUILD_UTILS)
-
-#############################################################################
-# XML2 LIBRARY
-
-IF(XDMF_BUILD_VTK)
- 
-  # Libxml2 library from vtk
-  SET(LIBXML2_LIBRARY ${VTK_LIBXML2_LIBRARIES})
-  SET(XDMF_LIBXML2_INCLUDE_DIRS ${VTK_KITS_DIR}/vtklibxml2 ${VTK_INSTALL_PREFIX}${VTK_INSTALL_INCLUDE_DIR}/vtklibxml2)
-  #SET(XDMF_LIBXML2_INCLUDE_DIRS ${VTK_INSTALL_PREFIX}${VTK_INSTALL_INCLUDE_DIR}/vtklibxml2)
-  INCLUDE_DIRECTORIES(${XDMF_LIBXML2_INCLUDE_DIRS})
-
-  # Set config.cmake paths
-  SET(XDMF_LIBXML2_INCLUDE_DIR_CONFIG ${XDMF_LIBXML2_INCLUDE_DIRS})
-  SET(XDMF_LIBXML2_INCLUDE_DIR_INSTALL_CONFIG ${XDMF_LIBXML2_INCLUDE_DIR_CONFIG})
-  SET(XDMF_LIBXML2_LIBRARY_DIR_CONFIG ${VTK_LIBRARY_DIRS})
-  SET(XDMF_LIBXML2_LIBRARY_DIR_INSTALL_CONFIG ${XDMF_LIBXML2_LIBRARY_DIR_CONFIG})
-  SET(XDMF_LIBXML2_LIBRARIES ${LIBXML2_LIBRARY})
-
-ELSE(XDMF_BUILD_VTK)
-  OPTION(XDMF_SYSTEM_LIBXML2 "Use system libxml2" OFF)
-  IF(NOT XDMF_SYSTEM_LIBXML2)
-
-    # Build our own vtklibxml2.
-    SUBDIRS(Utilities/vtklibxml2)
-    
-    SET(LIBXML2_LIBRARY vtklibxml2)
-    SET(XDMF_LIBXML2_INCLUDE_DIRS "${Xdmf_BINARY_DIR}/Utilities/vtklibxml2")
-    INCLUDE_DIRECTORIES(${XDMF_LIBXML2_INCLUDE_DIRS})
-
-    # Set config.cmake paths
-    SET(XDMF_LIBXML2_INCLUDE_DIR_CONFIG ${XDMF_LIBXML2_INCLUDE_DIRS})
-    SET(XDMF_LIBXML2_INCLUDE_DIR_INSTALL_CONFIG ${CMAKE_INSTALL_PREFIX}/include/vtklibxml2)
-    SET(XDMF_LIBXML2_LIBRARY_DIR_CONFIG ${Xdmf_BINARY_DIR}/bin)
-    SET(XDMF_LIBXML2_LIBRARY_DIR_INSTALL_CONFIG ${CMAKE_INSTALL_PREFIX}/lib)
-    SET(XDMF_LIBXML2_LIBRARIES ${LIBXML2_LIBRARY})
-
-  ELSE(NOT XDMF_SYSTEM_LIBXML2)
-
-    # Use a libxml2 that is installed on the machine somewhere.
-    FIND_LIBRARY(LIBXML2_LIBRARY
-      xml2
-      /usr/lib64
-      /usr/lib
-      /usr/local/lib)
-    FIND_PATH(LIBXML2_INCLUDE_PATH
-      libxml
-      /usr/include/libxml2
-      /usr/include)
-    INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_PATH}
-      ${LIBXML2_INCLUDE_PATH}/libxml2)
-    SET(LIBXML2_LIBRARY ${LIBXML2_LIBS})
-
-    # Set config.cmake paths
-    SET(XDMF_LIBXML2_INCLUDE_DIR_CONFIG ${LIBXML2_INCLUDE_PATH})
-    SET(XDMF_LIBXML2_INCLUDE_DIR_INSTALL_CONFIG ${XDMF_LIBXML2_INCLUDE_DIR_CONFIG})
-    GET_FILENAME_COMPONENT(XDMF_LIBXML2_LIBRARY_DIR_CONFIG ${LIBXML2_LIBRARY} PATH)
-    SET(XDMF_LIBXML2_LIBRARY_DIR_INSTALL_CONFIG ${XDMF_LIBXML2_LIBRARY_DIR_CONFIG})
-    SET(XDMF_LIBXML2_LIBRARIES ${LIBXML2_LIBRARY})
-
-  ENDIF(NOT XDMF_SYSTEM_LIBXML2)
-ENDIF(XDMF_BUILD_VTK)
-
-IF(MSVC_VERSION EQUAL 1400 OR MSVC_VERSION GREATER 1400)
-  ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE
-    -D_CRT_NONSTDC_NO_DEPRECATE 
-    -D_CRT_SECURE_NO_WARNINGS)
-  ADD_DEFINITIONS(-D_SCL_SECURE_NO_DEPRECATE)
-ENDIF(MSVC_VERSION EQUAL 1400 OR MSVC_VERSION GREATER 1400) 
-
-#############################################################################
-# MPI LIBRARY
-OPTION(XDMF_BUILD_MPI "Build MPI Objects" ON)
-SET(XDMF_MPI_LIBRARIES "")
-IF(XDMF_BUILD_MPI)
-    INCLUDE (${CMAKE_ROOT}/Modules/FindMPI.cmake)
-    IF (MPI_INCLUDE_PATH)
-      SET(XDMF_MPI_INCLUDE_PATH ${MPI_INCLUDE_PATH})
-      INCLUDE_DIRECTORIES(${MPI_INCLUDE_PATH})
-    ENDIF(MPI_INCLUDE_PATH)
-    IF (MPI_LIBRARY)
-      SET(XDMF_MPI_LIBRARIES ${XDMF_MPI_LIBRARIES} ${MPI_LIBRARY})
-    ELSE (MPI_LIBRARY)
-      MESSAGE(FATAL_ERROR 
-        "Could not find the required MPI libraries, install MPI, or set MPI_INCLUDE_PATH and MPI_LIBRARY and MPI_EXTRA_LIBRARY, or turn XDMF_BUILD_MPI to OFF")
-    ENDIF (MPI_LIBRARY)
-    IF (MPI_EXTRA_LIBRARY)
-      SET(XDMF_MPI_LIBRARIES ${XDMF_MPI_LIBRARIES} ${MPI_EXTRA_LIBRARY})
-    ENDIF (MPI_EXTRA_LIBRARY)
-ELSE(XDMF_BUILD_MPI)
-    ADD_DEFINITIONS("-DXDMF_NO_MPI")
-ENDIF(XDMF_BUILD_MPI)
-
-#############################################################################
-# HDF5 LIBRARY
-OPTION(XDMF_SYSTEM_HDF5 "Use system HDF5" OFF)
-IF(XDMF_SYSTEM_HDF5)
-  OPTION(XDMF_SYSTEM_HDF5_IS_PARALLEL "HDF5 Built for MPI" OFF)
-  IF (XDMF_SYSTEM_HDF5_IS_PARALLEL)
-  ENDIF (XDMF_SYSTEM_HDF5_IS_PARALLEL)
-  FIND_LIBRARY(HDF5_LIBRARY
-    hdf5
-    /usr/lib
-    /opt/lib
-    /usr/local/lib)
-  FIND_PATH(HDF5_INCLUDE_PATH
-    H5Ipublic.h
-    /usr/include
-    /opt/include
-    /usr/local/include)
-  MESSAGE(STATUS "Using system HDF5")
-  INCLUDE_DIRECTORIES(${HDF5_INCLUDE_PATH})
-
-  # Set config.cmake paths
-  SET(XDMF_HDF5_INCLUDE_CONFIG ${HDF5_INCLUDE_PATH})
-  SET(XDMF_HDF5_INCLUDE_INSTALL_CONFIG ${XDMF_HDF5_INCLUDE_CONFIG})
-  GET_FILENAME_COMPONENT(XDMF_HDF5_LIBRARY_PATH_CONFIG ${HDF5_LIBRARY} PATH)
-  SET(XDMF_HDF5_LIBRARY_PATH_INSTALL_CONFIG ${XDMF_HDF5_LIBRARY_PATH_CONFIG})
-  SET(XDMF_HDF5_LIBRARIES ${HDF5_LIBRARY})
-
-ELSE(XDMF_SYSTEM_HDF5)
-
-  # Build our own vtkhdf5
-  INCLUDE_DIRECTORIES(${Xdmf_SOURCE_DIR}/Utilities/hdf5 ${Xdmf_BINARY_DIR}/Utilities/hdf5 ${Xdmf_SOURCE_DIR}/Utilities)
-  SUBDIRS(Utilities)
-  SET(HDF5_LIBRARY vtkhdf5)
-  SET(HDF5_CONFIG "${Xdmf_BINARY_DIR}/Utilities/hdf5/HDF5Config.cmake")
-  IF(EXISTS "${HDF5_CONFIG}")
-    INCLUDE("${HDF5_CONFIG}")
-    ADD_DEFINITIONS(${HDF5_EXTRA_FLAGS})
-  ENDIF(EXISTS "${HDF5_CONFIG}")
-
-  # Set config.cmake paths
-  SET(XDMF_HDF5_INCLUDE_CONFIG ${Xdmf_SOURCE_DIR}/Utilities/hdf5 ${Xdmf_BINARY_DIR}/Utilities/hdf5 ${Xdmf_SOURCE_DIR}/Utilities)
-  SET(XDMF_HDF5_INCLUDE_INSTALL_CONFIG ${CMAKE_INSTALL_PREFIX}/include/vtkhdf5)
-  SET(XDMF_HDF5_LIBRARY_PATH_CONFIG ${Xdmf_BINARY_DIR}/bin)
-  SET(XDMF_HDF5_LIBRARY_PATH_INSTALL_CONFIG ${CMAKE_INSTALL_PREFIX}/lib)
-  SET(XDMF_HDF5_LIBRARIES ${HDF5_LIBRARY})
-
-ENDIF(XDMF_SYSTEM_HDF5)
-
-#############################################################################
-# stdlib and std namespace
-IF(XDMF_BUILD_VTK)
-  # if using VTK, then copy the VTK value for VTK_USE_ANSI_STDLIB
-  SET(XDMF_USE_ANSI_STDLIB "${VTK_USE_ANSI_STDLIB}" CACHE INTERNAL
-    "ansi c++ stdlib flag")
-ELSE(XDMF_BUILD_VTK)
-  # if not using VTK, then do the test for ansi stream headers
-  # here
-  INCLUDE(TestForANSIStreamHeaders)
-  IF(CMAKE_NO_ANSI_STREAM_HEADERS) 
-    SET(XDMF_USE_ANSI_STDLIB FALSE CACHE INTERNAL "ansi c++ stdlib flag")
-  ELSE(CMAKE_NO_ANSI_STREAM_HEADERS)
-    SET(XDMF_USE_ANSI_STDLIB TRUE CACHE INTERNAL "ansi c++ stdlib flag")
-  ENDIF(CMAKE_NO_ANSI_STREAM_HEADERS)
-ENDIF(XDMF_BUILD_VTK)
-INCLUDE(TestForSTDNamespace)
-
-# Enforce 0/1 as only possible values.  Needed for the means by which
-# Configure.hxx is implemented.
-IF(CMAKE_NO_STD_NAMESPACE)
-  SET(XDMF_NO_STD_NAMESPACE 1)
-ELSE(CMAKE_NO_STD_NAMESPACE)
-  SET(XDMF_NO_STD_NAMESPACE 0)
-ENDIF(CMAKE_NO_STD_NAMESPACE)
-
-#############################################################################
-# Now build xdmf library
-SUBDIRS(libsrc)
-
-IF(XDMF_BUILD_VTK)
-  SUBDIRS(vtk)
-  INCLUDE_DIRECTORIES(${Xdmf_SOURCE_DIR}/vtk 
-    ${Xdmf_BINARY_DIR}/vtk)
-ENDIF(XDMF_BUILD_VTK)
-
-#############################################################################
-# Testing
-OPTION(BUILD_TESTING ON)
-IF(BUILD_TESTING)
-  ENABLE_TESTING()
-  CONFIGURE_FILE(${Xdmf_SOURCE_DIR}/CTestCustom.cmake.in 
-    ${Xdmf_BINARY_DIR}/CTestCustom.cmake @ONLY)
-  INCLUDE(CTest)
-  OPTION(VTK_USE_DISPLAY 
-    "Turn this option off and tests will not popup windows" ON)
-  MARK_AS_ADVANCED(VTK_USE_DISPLAY)
-ENDIF(BUILD_TESTING)
-
-#############################################################################
-# Examples
-OPTION(XDMF_BUILD_EXAMPLES "Build C++ Examples" OFF)
-IF(XDMF_BUILD_EXAMPLES)
-  SUBDIRS(Examples/Cxx)
-ENDIF(XDMF_BUILD_EXAMPLES)
-
-#############################################################################
-# RPATH Handling
-OPTION(XDMF_USE_RPATH "Build Xdmf with RPaths flag" ON)
-IF(XDMF_USE_RPATH)
-  # use, i.e. don't skip the full RPATH for the build tree
-  SET(CMAKE_SKIP_BUILD_RPATH  FALSE)
-
-  # when building, don't use the install RPATH already
-  # (but later on when installing)
-  SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) 
-
-  # the RPATH to be used when installing
-  SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
-
-  # add the automatically determined parts of the RPATH
-  # which point to directories outside the build tree to the install RPATH
-  SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
-ENDIF(XDMF_USE_RPATH)
-
-#############################################################################
-# Installation
-# This code has to be duplicated for install tree
-
-SET(XDMF_INCLUDE_DIRS_CONFIG 
-  ${Xdmf_SOURCE_DIR}/libsrc
-  ${Xdmf_BINARY_DIR}/libsrc
+  file(GLOB XdmfHeaders 
+    "*.hpp" 
+    "*.tpp" 
+    "*.i" 
+    "CMake/VersionSuite/*.hpp"
+    "${CMAKE_CURRENT_BINARY_DIR}/*.hpp"
   )
-SET(XDMF_LIBRARY_DIRS_CONFIG 
-  ${LIBRARY_OUTPUT_PATH})
-
-IF(XDMF_BUILD_VTK)
-  SET(XDMF_INCLUDE_DIRS_CONFIG ${XDMF_INCLUDE_DIRS_CONFIG} 
-    ${Xdmf_SOURCE_DIR}/vtk
-    ${Xdmf_BINARY_DIR}/vtk
-    )
-ENDIF(XDMF_BUILD_VTK)
-
-IF(XDMF_SYSTEM_HDF5)
-  SET(XDMF_INCLUDE_DIRS_CONFIG ${XDMF_INCLUDE_DIRS_CONFIG}
-    ${HDF5_ZLIB_INCLUDE_DIRS})
-ELSE(XDMF_SYSTEM_HDF5)
-  SET(XDMF_INCLUDE_DIRS_CONFIG ${XDMF_INCLUDE_DIRS_CONFIG}
-    ${Xdmf_SOURCE_DIR}/Utilities/hdf5
-    ${Xdmf_BINARY_DIR}/Utilities/hdf5)
-ENDIF(XDMF_SYSTEM_HDF5)
-
-IF(XDMF_BUILD_UTILS)
-  SET(XDMF_INCLUDE_DIRS_CONFIG ${XDMF_INCLUDE_DIRS_CONFIG} ${Xdmf_SOURCE_DIR}/libsrc/utils ${Xdmf_BINARY_DIR}/libsrc/utils)
-ENDIF(XDMF_BUILD_UTILS)
-
-# Save the compiler settings so another project can import them.
-INCLUDE(${CMAKE_ROOT}/Modules/CMakeExportBuildSettings.cmake)
-CMAKE_EXPORT_BUILD_SETTINGS(${Xdmf_BINARY_DIR}/XDMFBuildSettings.cmake)
-
-SET(XDMF_BUILD_SETTINGS_FILE ${Xdmf_BINARY_DIR}/XDMFBuildSettings.cmake)
-SET(XDMF_USE_FILE "${Xdmf_SOURCE_DIR}/UseXDMF.cmake")
-SET(XDMF_KITS_DIR "${Xdmf_BINARY_DIR}/vtk/Utilities")
-
-#SET(XDMF_HDF5_LIBRARIES ${HDF5_LIBRARY})
-
-# Save library dependencies.
-EXPORT_LIBRARY_DEPENDENCIES(${Xdmf_BINARY_DIR}/XDMFLibraryDepends.cmake)
-SET(XDMF_LIBRARY_DEPENDS_FILE ${Xdmf_BINARY_DIR}/XDMFLibraryDepends.cmake)
-
-CONFIGURE_FILE(${Xdmf_SOURCE_DIR}/XDMFConfig.cmake.in
-  ${Xdmf_BINARY_DIR}/XDMFConfig.cmake @ONLY IMMEDIATE)
-
-SET(XDMF_INSTALL_BIN_DIR "/bin")
-SET(XDMF_INSTALL_LIB_DIR "/lib")
-SET(XDMF_INSTALL_INCLUDE_DIR "/include")
-SET(XDMF_INSTALL_INCLUDE_VTK_DIR "/include")
-
-# Because INSTALL_* commands require a leading / and because INSTALL (cmake 2.4
-# and newer) requires no leading / to install under INSTALL_PREFIX, we
-# are stripping the leading /. In the future, there should be no leading
-# / in any install directory variables
-STRING(REGEX REPLACE "^/" "" VTK_INSTALL_LIB_DIR_CM24 "${XDMF_INSTALL_LIB_DIR}")
-STRING(REGEX REPLACE "^/" "" VTK_INSTALL_BIN_DIR_CM24 "${XDMF_INSTALL_BIN_DIR}")
-STRING(REGEX REPLACE "^/" "" VTK_INSTALL_INCLUDE_DIR_CM24 "${XDMF_INSTALL_INCLUDE_DIR}")
-STRING(REGEX REPLACE "^/" "" VTK_INSTALL_PACKAGE_DIR_CM24 "${XDMF_LIB_INCLUDE_DIR}/vtk")
-
-IF(NOT XDMF_INSTALL_NO_DEVELOPMENT)
-    SET(XDMF_INSTALL_LIB_DIR_CM24 ${VTK_INSTALL_LIB_DIR_CM24})
-    SET(XDMF_INSTALL_BIN_DIR_CM24 ${VTK_INSTALL_BIN_DIR_CM24})
-    SET(XDMF_INSTALL_INCLUDE_DIR_CM24 ${VTK_INSTALL_INCLUDE_DIR_CM24})
-    # Re-make XDMFConfig.cmake for installation
-   SET(DOLLAR "$")
-   SET(XDMF_HDF5_INCLUDE_CONFIG ${XDMF_HDF5_INCLUDE_INSTALL_CONFIG})
-   SET(XDMF_HDF5_LIBRARY_PATH_CONFIG ${XDMF_HDF5_LIBRARY_PATH_INSTALL_CONFIG})
-   SET(XDMF_LIBXML2_INCLUDE_DIR_CONFIG ${XDMF_LIBXML2_INCLUDE_DIR_INSTALL_CONFIG})
-   SET(XDMF_LIBXML2_LIBRARY_DIR_CONFIG ${XDMF_LIBXML2_LIBRARY_DIR_INSTALL_CONFIG})
-   SET(XDMF_ZLIB_INCLUDE_DIR_CONFIG ${XDMF_ZLIB_INCLUDE_DIR_INSTALL_CONFIG})
-   SET(XDMF_ZLIB_LIBRARY_DIR_CONFIG ${XDMF_ZLIB_LIBRARY_DIR_INSTALL_CONFIG})
-   SET(XDMF_EXODUSII_INCLUDE_DIR_CONFIG ${XDMF_EXODUSII_INCLUDE_DIR_INSTALL_CONFIG})
-   SET(XDMF_EXODUSII_LIBRARY_DIR_CONFIG ${XDMF_EXODUSII_LIBRARY_DIR_INSTALL_CONFIG})
-   SET(XDMF_METIS_INCLUDE_DIR_CONFIG ${XDMF_METIS_INCLUDE_DIR_INSTALL_CONFIG})
-   SET(XDMF_METIS_LIBRARY_DIR_CONFIG ${XDMF_METIS_LIBRARY_DIR_INSTALL_CONFIG})
-   SET(XDMF_NETCDF_INCLUDE_DIR_CONFIG ${XDMF_NETCDF_INCLUDE_DIR_INSTALL_CONFIG})
-   SET(XDMF_NETCDF_LIBRARY_DIR_CONFIG ${XDMF_NETCDF_LIBRARY_DIR_INSTALL_CONFIG})
-   SET(XDMF_INSTALL_DIR_CONFIG ${CMAKE_INSTALL_PREFIX})
-   SET(XDMF_INCLUDE_DIRS_CONFIG 
-     ${DOLLAR}{XDMF_INSTALL_DIR}/include/
-     ${XDMF_HDF5_INCLUDE_CONFIG}
-     )
-   IF(XDMF_BUILD_UTILS)
-     SET(XDMF_INCLUDE_DIRS_CONFIG ${XDMF_INCLUDE_DIRS_CONFIG} ${DOLLAR}{XDMF_INSTALL_DIR}/include/utils)
-   ENDIF(XDMF_BUILD_UTILS)
-   SET(XDMF_LIBRARY_DIRS_CONFIG 
-     ${DOLLAR}{XDMF_INSTALL_DIR}/lib
-     )
-   SET(XDMF_USE_FILE ${DOLLAR}{XDMF_INSTALL_DIR}/lib/XdmfCMake/UseXDMF.cmake)
-   SET(XDMF_BUILD_SETTINGS_FILE ${DOLLAR}{XDMF_INSTALL_DIR}/lib/XdmfCMake/XDMFBuildSettings.cmake)
-   SET(XDMF_LIBRARY_DEPENDS_FILE ${DOLLAR}{XDMF_INSTALL_DIR}/lib/XdmfCMake/XDMFLibraryDepends.cmake)
-   SET(XDMF_KITS_DIR ${DOLLAR}{XDMF_INSTALL_DIR}/vtk)
-   CONFIGURE_FILE(${Xdmf_SOURCE_DIR}/XDMFConfig.cmake.in
-       ${Xdmf_BINARY_DIR}/XDMFConfigInstall.cmake @ONLY IMMEDIATE)
-   INSTALL(FILES
-       ${Xdmf_BINARY_DIR}/XDMFLibraryDepends.cmake
-       ${Xdmf_BINARY_DIR}/XDMFBuildSettings.cmake
-       DESTINATION ${XDMF_INSTALL_LIB_DIR_CM24}/XdmfCMake
-       COMPONENT Development
-       )
-   INSTALL(FILES
-       ${Xdmf_BINARY_DIR}/XDMFConfigInstall.cmake
-       DESTINATION ${XDMF_INSTALL_LIB_DIR_CM24}/XdmfCMake
-       COMPONENT Development
-       RENAME XDMFConfig.cmake
-       )
-ENDIF(NOT XDMF_INSTALL_NO_DEVELOPMENT)
+  install(FILES ${XdmfHeaders} DESTINATION include)
+  install(TARGETS ${XDMF_LIBNAME}
+    RUNTIME DESTINATION bin
+    LIBRARY DESTINATION lib
+    ARCHIVE DESTINATION lib)
+  if (XDMF_STATIC_AND_SHARED AND BUILD_SHARED_LIBS)
+    install(TARGETS Xdmf_Static
+      RUNTIME DESTINATION bin
+      LIBRARY DESTINATION lib
+      ARCHIVE DESTINATION lib)
+  endif()
+endif()
+
+xdmf_create_config_file(${PROJECT_NAME})
+install(FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+  DESTINATION ${CMAKE_INSTALL_PREFIX})
diff --git a/CTestConfig.cmake b/CTestConfig.cmake
old mode 100755
new mode 100644
index 6692ea2..f02c2a3
--- a/CTestConfig.cmake
+++ b/CTestConfig.cmake
@@ -1,14 +1,9 @@
-## This file should be placed in the root directory of your project.
-## Then modify the CMakeLists.txt file in the root directory of your
-## project to incorporate the testing dashboard.
-## # The following are required to uses Dart and the Cdash dashboard
-##   ENABLE_TESTING()
-##   INCLUDE(CTest)
-set(CTEST_PROJECT_NAME "Xdmf")
-set(CTEST_NIGHTLY_START_TIME "21:00:00 EST")
+SET(CTEST_NIGHTLY_START_TIME "00:00:00 EDT")
+SET(CTEST_PROJECT_NAME "XDMF")
 
-set(CTEST_DROP_METHOD "https")
-set(CTEST_DROP_SITE "hsai-web-origin.arl.army.mil")
-set(CTEST_DROP_LOCATION "/hsai/CDash/submit.php?project=Xdmf")
-set(CTEST_DROP_SITE_CDASH TRUE)
-set(CTEST_CURL_OPTIONS "CURLOPT_SSL_VERIFYPEER_OFF;CURLOPT_SSL_VERIFYHOST_OFF")
+SET(CTEST_DROP_METHOD "https")
+SET(CTEST_DROP_SITE "open.cdash.org")
+SET(CTEST_DROP_LOCATION "/submit.php?project=XDMF")
+
+SET(CTEST_DROP_SITE_CDASH True)
+SET(CTEST_CURL_OPTIONS "CURLOPT_SSL_VERIFYPEER_OFF;CURLOPT_SSL_VERIFYHOST_OFF")

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/xdmf.git



More information about the debian-science-commits mailing list