IF (NOT ${PROJECT_NAME} STREQUAL "Mesquite")
INCLUDE(PackageLibraryMacros)
#
# A) Package-specific configuration options
#
ELSE()
MACRO(APPEND_SET VARNAME)
SET(${VARNAME} ${${VARNAME}} ${ARGN})
ENDMACRO()
ENDIF()
#
# B) Define the header and source files (and directories)
#
#
# src
#
SET(HEADERS "")
SET(SOURCES "")
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../include)
APPEND_SET(HEADERS
${CMAKE_CURRENT_BINARY_DIR}/../include/mesquite_config.h
${CMAKE_CURRENT_BINARY_DIR}/../include/mesquite_version.h
../include/Mesquite.hpp
../include/MeshInterface.hpp
../include/ParallelMeshInterface.hpp
../include/ParallelHelperInterface.hpp
)
#
# src/Mesh
#
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/Mesh)
IF (TPL_ENABLE_MPI)
APPEND_SET(HEADERS
Mesh/ParallelHelper.hpp
)
APPEND_SET(SOURCES
Mesh/ParallelHelper.cpp
)
ENDIF()
IF(${PACKAGE_NAME}_ENABLE_IMESH)
APPEND_SET(HEADERS
Mesh/MsqIMesh.hpp
)
APPEND_SET(SOURCES
Mesh/MsqIMesh.cpp
)
ENDIF()
IF(${PACKAGE_NAME}_ENABLE_IGEOM)
APPEND_SET(HEADERS
Mesh/MsqIGeom.hpp
)
APPEND_SET(SOURCES
Mesh/MsqIGeom.cpp
)
ENDIF()
IF(${PACKAGE_NAME}_ENABLE_IREL)
APPEND_SET(HEADERS
Mesh/MsqIRel.hpp
)
APPEND_SET(SOURCES
Mesh/MsqIRel.cpp
)
ENDIF()
IF(${PACKAGE_NAME}_ENABLE_IMESHP)
APPEND_SET(HEADERS
Mesh/MsqIMeshP.hpp
)
APPEND_SET(SOURCES
Mesh/MsqIMeshP.cpp
)
ENDIF()
APPEND_SET(HEADERS
Mesh/ArrayMesh.hpp
Mesh/ElementPatches.hpp
Mesh/ExtraData.hpp
Mesh/ExtraDataUser.hpp
Mesh/GlobalPatch.hpp
Mesh/IdealElements.hpp
Mesh/MeshDecorator.hpp
Mesh/MeshImpl.hpp
Mesh/MeshImplData.hpp
Mesh/MeshImplTags.hpp
Mesh/MeshWriter.hpp
Mesh/MsqFreeVertexIndexIterator.hpp
Mesh/MsqMeshEntity.hpp
Mesh/MsqVertex.hpp
Mesh/ParallelMeshImpl.hpp
Mesh/PatchData.hpp
Mesh/PatchIterator.hpp
Mesh/PatchSet.hpp
Mesh/TagVertexMesh.hpp
Mesh/TopologyInfo.hpp
Mesh/VertexPatches.hpp
)
APPEND_SET(SOURCES
Mesh/ArrayMesh.cpp
Mesh/ElementPatches.cpp
Mesh/ExtraData.cpp
Mesh/GlobalPatch.cpp
Mesh/IdealElements.cpp
Mesh/MeshDecorator.cpp
Mesh/MeshImpl.cpp
Mesh/MeshImplData.cpp
Mesh/MeshImplTags.cpp
Mesh/MeshWriter.cpp
Mesh/MsqIBase.cpp
Mesh/MsqIBase.hpp
Mesh/MsqMeshEntity.cpp
Mesh/MsqVertex.cpp
Mesh/ParallelMeshImpl.cpp
Mesh/PatchData.cpp
Mesh/PatchIterator.cpp
Mesh/TagVertexMesh.cpp
Mesh/TopologyInfo.cpp
Mesh/VertexPatches.cpp
)
#
# src/Control
#
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/Control)
APPEND_SET(HEADERS
Control/Instruction.hpp
Control/InstructionQueue.hpp
Control/TerminationCriterion.hpp
Control/Settings.hpp
Control/SlaveBoundaryVertices.hpp
Control/VertexSlaver.hpp
)
APPEND_SET(SOURCES
Control/Instruction.cpp
Control/InstructionQueue.cpp
Control/TerminationCriterion.cpp
Control/Settings.cpp
Control/SlaveBoundaryVertices.cpp
)
#
# src/Control/Wrappers
#
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/Control/Wrappers)
APPEND_SET(HEADERS
Control/Wrappers/LaplacianIQ.hpp
Control/Wrappers/ShapeImprovementWrapper.hpp
Control/Wrappers/ParallelShapeImprovementWrapper.hpp
Control/Wrappers/PaverMinEdgeLengthWrapper.hpp
Control/Wrappers/ViscousCFDTetShapeWrapper.hpp
)
APPEND_SET(SOURCES
Control/Wrappers/ShapeImprovementWrapper.cpp
Control/Wrappers/ParallelShapeImprovementWrapper.cpp
Control/Wrappers/PaverMinEdgeLengthWrapper.cpp
Control/Wrappers/ViscousCFDTetShapeWrapper.cpp
)
#
# src/MappingFunction
#
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/MappingFunction)
APPEND_SET(HEADERS
MappingFunction/MappingFunction.hpp
MappingFunction/NodeSet.hpp
MappingFunction/Sample.hpp
)
APPEND_SET(SOURCES
MappingFunction/MappingFunction.cpp
MappingFunction/NodeSet.cpp
MappingFunction/Sample.cpp
)
#
# src/Control/MappingFunction/Lagrange
#
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/MappingFunction/Lagrange)
APPEND_SET(HEADERS
MappingFunction/Lagrange/QuadLagrangeShape.hpp
MappingFunction/Lagrange/TetLagrangeShape.hpp
MappingFunction/Lagrange/TriLagrangeShape.hpp
)
APPEND_SET(SOURCES
MappingFunction/Lagrange/QuadLagrangeShape.cpp
MappingFunction/Lagrange/TetLagrangeShape.cpp
MappingFunction/Lagrange/TriLagrangeShape.cpp
)
#
# src/Control/MappingFunction/Linear
#
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/MappingFunction/Linear)
APPEND_SET(HEADERS
MappingFunction/Linear/LinearHexahedron.hpp
MappingFunction/Linear/LinearPrism.hpp
MappingFunction/Linear/LinearPyramid.hpp
MappingFunction/Linear/LinearQuadrilateral.hpp
MappingFunction/Linear/LinearTetrahedron.hpp
MappingFunction/Linear/LinearTriangle.hpp
)
APPEND_SET(SOURCES
MappingFunction/Linear/LinearHexahedron.cpp
MappingFunction/Linear/LinearPrism.cpp
MappingFunction/Linear/LinearPyramid.cpp
MappingFunction/Linear/LinearQuadrilateral.cpp
MappingFunction/Linear/LinearTetrahedron.cpp
MappingFunction/Linear/LinearTriangle.cpp
)
#
# src/Control/Misc
#
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/Misc)
APPEND_SET(HEADERS
Misc/BoundedCylinderDomain.hpp
Misc/Bits.hpp
Misc/CylinderDomain.hpp
Misc/DomainClassifier.hpp
Misc/Exponent.hpp
Misc/FileTokenizer.hpp
Misc/Matrix3D.hpp
Misc/MeshDomain1D.hpp
Misc/MeshTransform.hpp
Misc/MsqDebug.hpp
Misc/MsqError.hpp
Misc/MsqFPE.hpp
Misc/MsqGeomPrim.hpp
Misc/MsqHessian.hpp
Misc/MsqInterrupt.hpp
Misc/MsqMatrix.hpp
Misc/MsqTimer.hpp
Misc/PlanarDomain.hpp
Misc/SphericalDomain.hpp
Misc/SymMatrix3D.hpp
Misc/Vector3D.hpp
Misc/VtkTypeInfo.hpp
Misc/XYRectangle.hpp
)
APPEND_SET(SOURCES
Misc/BoundedCylinderDomain.cpp
Misc/CylinderDomain.cpp
Misc/DomainClassifier.cpp
Misc/Exponent.cpp
Misc/FileTokenizer.cpp
Misc/MeshDomain1D.cpp
Misc/MeshTransform.cpp
Misc/MesquiteVersion.cpp
Misc/MsqDebug.cpp
Misc/MsqError.cpp
Misc/MsqFPE.cpp
Misc/MsqGeomPrim.cpp
Misc/MsqHessian.cpp
Misc/MsqInterrupt.cpp
Misc/MsqTimer.cpp
Misc/PlanarDomain.cpp
Misc/SphericalDomain.cpp
Misc/Vector3D.cpp
Misc/VtkTypeInfo.cpp
Misc/XYRectangle.cpp
)
#
# src/ObjectiveFuntion
#
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/ObjectiveFunction)
APPEND_SET(HEADERS
ObjectiveFunction/CompositeOFAdd.hpp
ObjectiveFunction/CompositeOFMultiply.hpp
ObjectiveFunction/CompositeOFScalarAdd.hpp
ObjectiveFunction/CompositeOFScalarMultiply.hpp
ObjectiveFunction/LInfTemplate.hpp
ObjectiveFunction/LPtoPTemplate.hpp
ObjectiveFunction/MaxTemplate.hpp
ObjectiveFunction/OFEvaluator.hpp
ObjectiveFunction/ObjectiveFunction.hpp
ObjectiveFunction/ObjectiveFunctionTemplate.hpp
ObjectiveFunction/PatchPowerMeanP.hpp
ObjectiveFunction/PMeanPTemplate.hpp
ObjectiveFunction/StdDevTemplate.hpp
ObjectiveFunction/VarianceTemplate.hpp
)
APPEND_SET(SOURCES
ObjectiveFunction/CompositeOFAdd.cpp
ObjectiveFunction/CompositeOFMultiply.cpp
ObjectiveFunction/CompositeOFScalarAdd.cpp
ObjectiveFunction/CompositeOFScalarMultiply.cpp
ObjectiveFunction/LInfTemplate.cpp
ObjectiveFunction/LPtoPTemplate.cpp
ObjectiveFunction/MaxTemplate.cpp
ObjectiveFunction/OFEvaluator.cpp
ObjectiveFunction/ObjectiveFunction.cpp
ObjectiveFunction/ObjectiveFunctionTemplate.cpp
ObjectiveFunction/PatchPowerMeanP.cpp
ObjectiveFunction/PMeanPTemplate.cpp
ObjectiveFunction/StdDevTemplate.cpp
ObjectiveFunction/VarianceTemplate.cpp
)
#
# src/Control/QualityAssessor
#
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/QualityAssessor)
APPEND_SET(HEADERS
QualityAssessor/QualityAssessor.hpp
)
APPEND_SET(SOURCES
QualityAssessor/QualityAssessor.cpp
)
#
# src/Control/QualityImprover
#
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/QualityImprover)
APPEND_SET(HEADERS
QualityImprover/PatchSetUser.hpp
QualityImprover/QualityImprover.hpp
)
APPEND_SET(SOURCES
QualityImprover