#######################################################################################
#
#  Copyright 2026 OVITO GmbH, Germany
#
#  This file is part of OVITO (Open Visualization Tool).
#
#  OVITO is free software; you can redistribute it and/or modify it either under the
#  terms of the GNU General Public License version 3 as published by the Free Software
#  Foundation (the "GPL") or, at your option, under the terms of the MIT License.
#  If you do not alter this notice, a recipient may use your version of this
#  file under either the GPL or the MIT License.
#
#  You should have received a copy of the GPL along with this program in a
#  file LICENSE.GPL.txt.  You should have received a copy of the MIT License along
#  with this program in a file LICENSE.MIT.txt
#
#  This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND,
#  either express or implied. See the GPL or the MIT License for the specific language
#  governing rights and limitations.
#
#######################################################################################

# Define the plugin module.
OVITO_STANDARD_PLUGIN(StdObj
    SOURCES
        camera/StandardCameraObject.cpp
        camera/StandardCameraSource.cpp
        camera/TargetObject.cpp
        io/DataTableExporter.cpp
        io/PropertyOutputWriter.cpp
        io/StandardFrameLoader.cpp
        lines/Lines.cpp
        lines/LinesVis.cpp
        properties/Property.cpp
        properties/OwnerPropertyRef.cpp
        properties/PropertyReference.cpp
        properties/PropertyContainerClass.cpp
        properties/PropertyContainer.cpp
        properties/ElementType.cpp
        properties/ElementTypeClass.cpp
        properties/GenericPropertyModifier.cpp
        properties/PropertyExpressionEvaluator.cpp
        properties/PropertyExpressionRewriter.cpp
        properties/InputColumnMapping.cpp
        properties/PropertyColorMapping.cpp
        simcell/SimulationCell.cpp
        simcell/SimulationCellVis.cpp
        simcell/PeriodicDomainObject.cpp
        table/DataTable.cpp
        util/ElementSelectionSet.cpp
        vectors/Vectors.cpp
        vectors/VectorVis.cpp
    LIB_DEPENDENCIES
        muParser
    PRECOMPILED_HEADERS
        StdObj.h
)

# Let the code know that we are building the plugin.
TARGET_COMPILE_DEFINITIONS(StdObj PUBLIC OVITO_BUILD_PLUGIN_STDOBJ)

# Propagate list of plugins to parent scope.
SET(OVITO_PLUGIN_LIST ${OVITO_PLUGIN_LIST} PARENT_SCOPE)
