Commit eae48216 authored by Andrew J. Burns (Cont's avatar Andrew J. Burns (Cont

Changes from ARL's Repo (C Wrappers, DSM rework, Custom Types, Templates,...

Changes from ARL's Repo (C Wrappers, DSM rework, Custom Types, Templates, GridControllers, TIFF integration, XdmfAggregate)
parent 06d2b52b
SET(ENV{PATH} "${PATH}${SEPARATOR}$ENV{PATH}")
SET(ENV{LD_LIBRARY_PATH} "${LDPATH}${SEPARATOR}$ENV{LD_LIBRARY_PATH}")
set(XDMF_DSM_IS_CRAY "@XDMF_DSM_IS_CRAY@")
if (XDMF_DSM_IS_CRAY)
SET(ENV{LD_LIBRARY_PATH} "$ENV{LD_LIBRARY_PATH}${SEPARATOR}${LDPATH}")
else (XDMF_DSM_IS_CRAY)
SET(ENV{LD_LIBRARY_PATH} "${LDPATH}${SEPARATOR}$ENV{LD_LIBRARY_PATH}")
endif (XDMF_DSM_IS_CRAY)
SET(ENV{MPIEXEC} "@MPIEXEC@")
MESSAGE("| Calling:\t${EXECUTABLE} ${ARGUMENTS}")
......
SET(ENV{PATH} "${PATH}${SEPARATOR}$ENV{PATH}")
SET(ENV{LD_LIBRARY_PATH} "${LDPATH}${SEPARATOR}$ENV{LD_LIBRARY_PATH}")
set(XDMF_DSM_IS_CRAY "@XDMF_DSM_IS_CRAY@")
if (XDMF_DSM_IS_CRAY)
SET(ENV{LD_LIBRARY_PATH} "$ENV{LD_LIBRARY_PATH}${SEPARATOR}${LDPATH}")
else (XDMF_DSM_IS_CRAY)
SET(ENV{LD_LIBRARY_PATH} "${LDPATH}${SEPARATOR}$ENV{LD_LIBRARY_PATH}")
endif (XDMF_DSM_IS_CRAY)
SET(ENV{MPIEXEC} "@MPIEXEC@")
MESSAGE("| Calling:\t${EXECUTABLE} ${ARGUMENTS}")
......
SET(ENV{PATH} "${PATH}${SEPARATOR}$ENV{PATH}")
SET(ENV{LD_LIBRARY_PATH} "${LDPATH}${SEPARATOR}$ENV{LD_LIBRARY_PATH}")
set(XDMF_DSM_IS_CRAY "@XDMF_DSM_IS_CRAY@")
if (XDMF_DSM_IS_CRAY)
SET(ENV{LD_LIBRARY_PATH} "$ENV{LD_LIBRARY_PATH}${SEPARATOR}${LDPATH}")
else (XDMF_DSM_IS_CRAY)
SET(ENV{LD_LIBRARY_PATH} "${LDPATH}${SEPARATOR}$ENV{LD_LIBRARY_PATH}")
endif (XDMF_DSM_IS_CRAY)
SET(ENV{MPIEXEC} "@MPIEXEC@")
MESSAGE("| Calling:\t${EXECUTABLE} ${ARGUMENTS}")
......
......@@ -3,7 +3,13 @@ SET(python_binary_dir "@CMAKE_CURRENT_BINARY_DIR@")
SET(ENV{PYTHONPATH} "${PYTHONPATH}${SEPARATOR}$ENV{PYTHONPATH}")
SET(ENV{PATH} "${PATH}${SEPARATOR}$ENV{PATH}")
SET(ENV{LD_LIBRARY_PATH} "${LDPATH}${SEPARATOR}$ENV{LD_LIBRARY_PATH}")
set(XDMF_DSM_IS_CRAY "@XDMF_DSM_IS_CRAY@")
if (XDMF_DSM_IS_CRAY)
SET(ENV{LD_LIBRARY_PATH} "$ENV{LD_LIBRARY_PATH}${SEPARATOR}${LDPATH}")
else (XDMF_DSM_IS_CRAY)
SET(ENV{LD_LIBRARY_PATH} "${LDPATH}${SEPARATOR}$ENV{LD_LIBRARY_PATH}")
endif (XDMF_DSM_IS_CRAY)
MESSAGE("| Calling:\t${python_runtime} ${EXECUTABLE} ${ARGUMENTS}")
EXECUTE_PROCESS(
......
......@@ -3,7 +3,16 @@ SET(python_binary_dir "@CMAKE_CURRENT_BINARY_DIR@")
SET(ENV{PYTHONPATH} "${PYTHONPATH}${SEPARATOR}$ENV{PYTHONPATH}")
SET(ENV{PATH} "${PATH}${SEPARATOR}$ENV{PATH}")
SET(ENV{LD_LIBRARY_PATH} "${LDPATH}${SEPARATOR}$ENV{LD_LIBRARY_PATH}")
set(XDMF_DSM_IS_CRAY "@XDMF_DSM_IS_CRAY@")
if (XDMF_DSM_IS_CRAY)
# message("Cray Style")
SET(ENV{LD_LIBRARY_PATH} "$ENV{LD_LIBRARY_PATH}${SEPARATOR}${LDPATH}")
else (XDMF_DSM_IS_CRAY)
# message("Normal Style")
SET(ENV{LD_LIBRARY_PATH} "${LDPATH}${SEPARATOR}$ENV{LD_LIBRARY_PATH}")
endif (XDMF_DSM_IS_CRAY)
SET(ENV{PYTHON_EXECUTABLE} "${python_runtime}")
SET(ENV{MPIEXEC} "@MPIEXEC@")
......
......@@ -82,5 +82,10 @@ MACRO(SET_CORE dir)
STRING(REGEX MATCH "core" is_core "${dir}")
IF(EXISTS ${is_core})
SET(is_core "Core")
ELSE(EXISTS ${is_core})
STRING(REGEX MATCH "utils" is_core "${dir}")
IF(EXISTS ${is_core})
SET(is_core "Util")
ENDIF(EXISTS ${is_core})
ENDIF(EXISTS ${is_core})
ENDMACRO(SET_CORE dir)
......@@ -19,27 +19,31 @@ class ProjectVersion {
*
* @param name of the project
*/
ProjectVersion(std::string iProjectName, int iMajor, int iMinor) {
setProjectName(iProjectName);
setMajor(iMajor);
setMinor(iMinor);
}
ProjectVersion(std::string iProjectName, int iMajor, int iMinor, int iPatch) {
setProjectName(iProjectName);
setMajor(iMajor);
setMinor(iMinor);
setPatch(iPatch);
}
ProjectVersion(std::string iProjectName,
std::string iMajor, std::string iMinor) {
setProjectName(iProjectName);
setMajorStr(iMajor);
setMinorStr(iMinor);
}
/**
* Get the version string
*
* @return the Version in "ProjectName Major.Minor" string format
*/
std::string iMajor, std::string iMinor, std::string iPatch) {
setProjectName(iProjectName);
setMajorStr(iMajor);
setMinorStr(iMinor);
setPatchStr(iPatch);
}
/**
* Get the version string
*
* @return the Version in "ProjectName Major.Minor.Patch" string format
*/
std::string getFull() {
return getProjectName()+std::string(" ")+
getMajorStr()+std::string(".")+
getMinorStr();
return getProjectName()+std::string(" ")+
getMajorStr()+std::string(".")+
getMinorStr()+std::string(".")+
getPatchStr();
}
/**
......@@ -47,79 +51,101 @@ class ProjectVersion {
*
* @return the Version in "Major.Minor" string format
*/
std::string getShort() {
return getMajorStr()+std::string(".")+
getMinorStr();
}
std::string getShort() {
return getMajorStr()+std::string(".")+
getMinorStr();
}
/**
/**
* Get the version objects project name
*
* @return the project name in string format
*/
std::string getProjectName() { return ProjectName; }
/**
/**
* Get the Version Major
*
* @return the Version Major in string format
*/
std::string getMajorStr()
{
std::string getMajorStr()
{
if(Major != -1) return IntToStr(Major);
return("X");
}
/**
/**
* Get the Version Minor
*
* @return the Version Minor in string format
*/
std::string getMinorStr()
{
{
if(Minor != -1) return IntToStr(Minor);
return("X");
}
/**
/**
* Get the Version Patch
*
* @return the Version Patch in string format
*/
std::string getPatchStr()
{
if(Patch != -1) return IntToStr(Patch);
return("X");
}
/**
* Get the Version Major
*
* @return the Version Major in int format
*/
int getMajor() { return Major; }
/**
/**
* Get the Version Minor
*
* @return the Version Minor in int format
*/
int getMinor() { return Minor; }
/**
* Get the Version Patch
*
* @return the Version Patch in int format
*/
int getPatch() { return Patch; }
private:
std::string ProjectName;
int Major, Minor;
int Major, Minor, Patch;
std::string IntToStr(int number) {
std::stringstream s;
s << number;
return s.str();
}
std::string IntToStr(int number) {
std::stringstream s;
s << number;
return s.str();
}
int StrToInt(std::string string) {
int i = 0;
std::stringstream s(string);
if(!(s >> i)) return -1;
return i;
int i = 0;
std::stringstream s(string);
if(!(s >> i)) return -1;
return i;
}
void setProjectName(std::string iProjectName)
{ ProjectName = iProjectName; }
{ ProjectName = iProjectName; }
void setMajor(int iMajor) { Major = iMajor; }
void setMajorStr(std::string iMajor) {
Major = StrToInt(iMajor);
Major = StrToInt(iMajor);
}
void setMinor(int iMinor) { Minor = iMinor; }
void setMinorStr(std::string iMinor) {
Minor = StrToInt(iMinor);
Minor = StrToInt(iMinor);
}
void setPatch(int iPatch) { Patch = iPatch; }
void setPatchStr(std::string iPatch) {
Patch = StrToInt(iPatch);
}
};
......
......@@ -14,11 +14,16 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/CMake/VersionSuite)
# Default incase CalculateVerison is not called
SET(vMajor "0")
SET(vMinor "0")
SET(vPatch "0")
# This Macro allows you to set up the Version in a one liner
MACRO(VersionCreate versionName versionMajor export_name)
MACRO(VersionCreate versionName versionMajor versionMinor versionPatch export_name)
VersionMajorSet(${versionMajor})
VersionCalculate()
VersionMinorSet(${versionMinor})
VersionPatchSet(${versionPatch})
# Manually generating minor version
# VersionCalculate()
VersionWrite(${versionName} ${export_name} "${ARGN}")
ENDMACRO(VersionCreate versionName versionMajor export_name)
......@@ -27,6 +32,14 @@ MACRO(VersionMajorSet versionMajor)
SET(vMajor ${versionMajor})
ENDMACRO(VersionMajorSet)
MACRO(VersionMinorSet versionMinor)
SET(vMinor ${versionMinor})
ENDMACRO(VersionMinorSet)
MACRO(VersionPatchSet versionPatch)
SET(vPatch ${versionPatch})
ENDMACRO(VersionPatchSet)
# This Macro calculates the number of tags from your git repo
MACRO(VersionCalculate)
FIND_PACKAGE(Git)
......@@ -53,6 +66,7 @@ MACRO(VersionWrite vProjectName export_name)
"/* Current Version of ${vProjectName}
* Major is: ${vMajor}
* Minor is: ${vMinor}
* Patch is: ${vPatch}
*/
${includes}
\#include \"ProjectVersion.hpp\"
......@@ -64,6 +78,6 @@ extern ${export_name} ProjectVersion ${vProjectName}Version;\n"
* Make sure to include this file in your built sources
*/
\#include \"${vProjectName}Version.hpp\"
ProjectVersion ${vProjectName}Version = ProjectVersion(\"${vProjectName}\", \"${vMajor}\", \"${vMinor}\");\n"
ProjectVersion ${vProjectName}Version = ProjectVersion(\"${vProjectName}\", \"${vMajor}\", \"${vMinor}\", \"${vPatch}\");\n"
)
ENDMACRO(VersionWrite vProjectName export_name)
......@@ -12,7 +12,16 @@ if(MSVC10)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR})
endif(MSVC10)
set(BUILD_SHARED_LIBS true)
option(BUILD_SHARED_LIBS ON PARENT_SCOPE)
if (BUILD_SHARED_LIBS)
STRING(REGEX MATCH "-fPIC" IS_FPIC "${CMAKE_CXX_FLAGS}")
if ("${IS_FPIC}" STREQUAL "")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
endif ("${IS_FPIC}" STREQUAL "")
add_definitions(-DXDMFSTATIC)
endif (BUILD_SHARED_LIBS)
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${CMAKE_BINARY_DIR})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
......@@ -49,6 +58,19 @@ endif(BUILD_TESTING)
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)
......@@ -70,6 +92,7 @@ if(XDMF_BUILD_DSM)
mark_as_advanced(FORCE PYTHON_INCLUDE_MPI4PY_DIR)
set(PYTHON_INCLUDE_MPI4PY_DIR "" CACHE STRING "Directory containing mpi4py/mpi4py.i")
endif (XDMF_WRAP_PYTHON)
add_definitions(-DXDMF_BUILD_DSM)
endif(XDMF_BUILD_DSM)
# If we are wrapping either, we need swig
......@@ -146,7 +169,6 @@ if(XDMF_WRAP_PYTHON)
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)
......@@ -257,6 +279,7 @@ link_directories(${XDMF_LIBRARY_DIRS})
option(XDMF_BUILD_CORE_ONLY OFF)
if(NOT XDMF_BUILD_CORE_ONLY)
set(XdmfSources
XdmfAggregate
XdmfAttribute
XdmfAttributeCenter
XdmfAttributeType
......@@ -268,6 +291,7 @@ if(NOT XDMF_BUILD_CORE_ONLY)
XdmfGrid
XdmfGridCollection
XdmfGridCollectionType
XdmfGridController
XdmfItemFactory
XdmfMap
XdmfReader
......@@ -280,24 +304,50 @@ if(NOT XDMF_BUILD_CORE_ONLY)
XdmfTopologyType
XdmfUnstructuredGrid)
add_library(Xdmf ${XdmfSources})
add_library(XdmfObjects OBJECT ${XdmfSources})
add_library(Xdmf $<TARGET_OBJECTS:XdmfObjects>)
if (BUILD_SHARED_LIBS)
add_library(Xdmf_Static STATIC $<TARGET_OBJECTS:XdmfObjects>)
if (UNIX)
set_target_properties(Xdmf_Static PROPERTIES
OUTPUT_NAME "Xdmf")
endif (UNIX)
endif (BUILD_SHARED_LIBS)
if(XDMF_BUILD_DSM)
target_link_libraries(Xdmf XdmfCore XdmfDSM)
if (BUILD_SHARED_LIBS)
target_link_libraries(Xdmf_Static XdmfCore_Static XdmfDSM_Static)
endif (BUILD_SHARED_LIBS)
else(XDMF_BUILD_DSM)
target_link_libraries(Xdmf XdmfCore)
if (BUILD_SHARED_LIBS)
target_link_libraries(Xdmf_Static XdmfCore_Static)
endif (BUILD_SHARED_LIBS)
endif(XDMF_BUILD_DSM)
if(WIN32)
set_target_properties(Xdmf PROPERTIES
set_target_properties(Xdmf PROPERTIES
DEFINE_SYMBOL Xdmf_EXPORTS)
if (BUILD_SHARED_LIBS)
set_target_properties(Xdmf_Static PROPERTIES
DEFINE_SYMBOL Xdmf_EXPORTS)
endif (BUILD_SHARED_LIBS)
if(NOT MSVC10)
set_target_properties(Xdmf PROPERTIES
set_target_properties(Xdmf PROPERTIES
PREFIX ../
IMPORT_PREFIX ../
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
endif(NOT MSVC10)
if (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 (BUILD_SHARED_LIBS)
endif(NOT MSVC10)
endif(WIN32)
if(XDMF_WRAP_JAVA)
......@@ -305,7 +355,15 @@ if(NOT XDMF_BUILD_CORE_ONLY)
endif(XDMF_WRAP_JAVA)
if(XDMF_WRAP_PYTHON)
XDMF_SWIG_PYTHON(Xdmf XdmfCore XdmfDSM)
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 XdmfCore XdmfDSM)
else (XDMF_BUILD_DSM)
XDMF_SWIG_PYTHON(Xdmf XdmfCore)
endif (XDMF_BUILD_DSM)
set(XDMF_PYTHON_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib/python/)
endif(XDMF_WRAP_PYTHON)
......@@ -323,7 +381,11 @@ if(NOT XDMF_BUILD_CORE_ONLY)
endif(WIN32)
if(UNIX)
set(XDMF_LIBRARY ${CMAKE_INSTALL_PREFIX}/lib/libXdmf.so)
if (BUILD_SHARED_LIBS)
set(XDMF_LIBRARY ${CMAKE_INSTALL_PREFIX}/lib/libXdmf.so)
else (BUILD_SHARED_LIBS)
set(XDMF_LIBRARY ${CMAKE_INSTALL_PREFIX}/lib/libXdmf.a)
endif (BUILD_SHARED_LIBS)
endif(UNIX)
if(APPLE)
......@@ -342,6 +404,12 @@ if(NOT XDMF_BUILD_CORE_ONLY)
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
if (BUILD_SHARED_LIBS)
install(TARGETS Xdmf_Static
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
endif (BUILD_SHARED_LIBS)
endif(NOT XDMF_BUILD_CORE_ONLY)
xdmf_create_config_file(${PROJECT_NAME})
......
<?xml version="1.0" encoding="UTF-8"?>
<!--Root element of dataset-->
<!ELEMENT Xdmf (Information*, Domain+)>
<!ATTLIST Xdmf
Version CDATA #IMPLIED
>
<!--Contains domain data information-->
<!ELEMENT Domain (Information*, Grid+)>
<!ATTLIST Domain
Name CDATA #IMPLIED
>
<!--Contains a collection of homogeneous elements-->
<!ELEMENT Grid (Information*, Time*, Grid*, Topology*, Geometry*, Attribute*)>
<!ATTLIST Grid
Name CDATA #IMPLIED
GridType (Uniform | Collection) "Uniform"
CollectionType (Spatial | Temporal) "Spatial"
>
<!--Contains a graph of points-->
<!ELEMENT Graph (Information*, Time*, Attribute*)>
<!ATTLIST Graph
Name CDATA #IMPLIED
NumberColumns CDATA #REQUIRED
NumberRows CDATA #REQUIRED
>
<!-- Described Temporal Relationship -->
<!ELEMENT Time (Information*)>
<!ATTLIST Time
Value CDATA #IMPLIED
>
<!--Describes the general organization of the data-->
<!ELEMENT Topology (Information*, DataItem*)>
<!ATTLIST Topology
TopologyType (NoTopologyType | Polyvertex | Polyline | Polygon | Triangle | Quadrilateral | Tetrahedron | Wedge | Hexahedron | Edge_3 | Triangle_6 | Quadrilateral_8 | Quadrilateral_9 | Tetrahedron_10 | Pyramid_13 | Wedge_15 | Wedge_18 | Hexahedron_20 | Hexahedron_24 | Hexahedron_27 | Hexahedron_64 | Hexahedron_125 | Hexahedron_216 | Hexahedron_343 | Hexahedron_512 | Hexahedron_729 | Hexahedron_1000 | Hexahedron_1331 | Hexahedron_Spectral_64 | Hexahedron_Spectral_125 | Hexahedron_Spectral_216 | Hexahedron_Spectral_343 | Hexahedron_Spectral_512 | Hexahedron_Spectral_729 | Hexahedron_Spectral_1000 | Hexahedron_Spectral_1331 | Mixed | 2DSMesh | 2DRectMesh | 2DCoRectMesh | 3DSMesh | 3DRectMesh | 3DCoRectMesh) #REQUIRED
Dimensions CDATA #IMPLIED
Order CDATA #IMPLIED
NodesPerElement CDATA #IMPLIED
>
<!--Describes the XYZ values of the mesh-->
<!ELEMENT Geometry (Information*, DataItem+)>
<!ATTLIST Geometry
Name CDATA #IMPLIED
GeometryType (XYZ | XY | X_Y_Z | VXVYVZ | ORIGIN_DXDYDZ) "XYZ"
>
<!--Lowest level element, describes the data that is present in the XDMF dataset-->
<!ELEMENT DataItem (#PCDATA | DataItem)*>
<!ATTLIST DataItem
Name CDATA #IMPLIED
ItemType (Uniform | HyperSlab | Function) "Uniform"
Dimensions CDATA #REQUIRED
NumberType (Char | UChar | Float | Int | UInt) "Float"
Precision (1 | 4 | 8) "4"
Reference CDATA #IMPLIED
Endian (Big | Little | Native) "Native"
Format (XML | HDF | Binary | TIFF) "XML"
>
<!--Describes the values on the mesh-->
<!ELEMENT Attribute (Information*, DataItem)>
<!ATTLIST Attribute
Name CDATA #IMPLIED
Center (Node | Cell | Grid | Face | Edge) "Node"
AttributeType (Scalar | Vector | Tensor | Tensor6 | Matrix) "Scalar"
>
<!--Describes subsections of a grid-->
<!ELEMENT Set (Information*, DataItem)>
<!ATTLIST Set
Name CDATA #IMPLIED
Type (NoSetType | Node | Cell | Face | Edge) "Node"
>
<!--Describes a node maping-->
<!ELEMENT Map (Information*, DataItem*)>
<!ATTLIST Map
Name CDATA #IMPLIED
>
<!-- Application Dependent -->
<!ELEMENT Information (#PCDATA | Information | EMPTY)*>
<!ATTLIST Information
Name CDATA #IMPLIED
Value CDATA #IMPLIED
>
<!--The Definitions of these three items are extremely loose-->
<!ELEMENT Aggregate ANY>
<!ELEMENT Subset ANY>
<!ELEMENT Function ANY>
......@@ -76,6 +76,9 @@
* a topology could be shared across multiple grids or a grid
* could be included in multiple grid collections and/or the domain.
*
* Comparing objects is done by comparing pointer addresses,
* a deep copy will not produce an equivalent object.
*
*
* C++ Examples:
*
......@@ -129,6 +132,14 @@
/* Keep all our Win32 Conversions here */
#ifdef _WIN32
#ifdef XDMFSTATIC
#define XDMFCORE_EXPORT
#define XDMFDSM_EXPORT
#define XDMF_EXPORT
#define XDMFCORE_TEMPLATE
#define XDMFDSM_TEMPLATE
#define XDMF_TEMPLATE
#else
/* Used to export/import from the dlls */
#undef XDMFCORE_EXPORT
#define XDMFCORE_EXPORT __declspec(dllimport)
......@@ -147,6 +158,7 @@
#define XDMF_EXPORT __declspec(dllimport)
#define XDMF_TEMPLATE extern
#endif /* Xdmf_EXPORTS */
#endif
/* Compiler Warnings */
#ifndef XDMF_DEBUG
......
This diff is collapsed.
/*****************************************************************************/
/* XDMF */
/* eXtensible Data Model and Format */
/* */
/* Id : XdmfAggregate.cpp */
/* */
/* Author: */
/* Andrew Burns */
/* andrew.j.burns2@us.army.mil */
/* US Army Research Laboratory */
/* Aberdeen Proving Ground, MD */
/* */
/* Copyright @ 2013 US Army Research Laboratory */
/* All Rights Reserved */
/* See Copyright.txt for details */
/* */
/* This software is distributed WITHOUT ANY WARRANTY; without */
/* even the implied warranty of MERCHANTABILITY or FITNESS */
/* FOR A PARTICULAR PURPOSE. See the above copyright notice */
/* for more information. */
/* */
/*****************************************************************************/
#include <numeric>
#include <functional>
#include <boost/tokenizer.hpp>
#include "XdmfArray.hpp"
#include "XdmfError.hpp"
#include "XdmfAggregate.hpp"
#include "XdmfVisitor.hpp"
#include "XdmfWriter.hpp"
#include "string.h"
XDMF_CHILDREN_IMPLEMENTATION(XdmfAggregate, XdmfArray, Array, Name)
XdmfAggregate::XdmfAggregate()
{