add_library(ausaxs_rigidbody OBJECT 
	"DefaultOptimizer.cpp"
	"Rigidbody.cpp"
	"BodySplitter.cpp"

	"constraints/AttractorConstraint.cpp"
	"constraints/ConstraintFactory.cpp"
	"constraints/ConstraintManager.cpp"
	"constraints/DistanceConstraintAtom.cpp"
	"constraints/DistanceConstraintBond.cpp"
	"constraints/DistanceConstraintCM.cpp"
	"constraints/FixedConstraint.cpp"
	"constraints/IDistanceConstraint.cpp"
	"constraints/LinkConstraint.cpp"
	"constraints/OverlapConstraint.cpp"
	"constraints/RepellerConstraint.cpp"
	"constraints/generation/ConstraintGenerationFactory.cpp"
	"constraints/generation/ConstraintGenerationStrategy.cpp"
	"constraints/generation/LinearConstraints.cpp"
	"constraints/generation/NoConstraints.cpp"
	"constraints/generation/VolumetricConstraints.cpp"

	"controller/ControllerFactory.cpp"
	"controller/IController.cpp"
	"controller/SimpleController.cpp"

	"detail/MoleculeTransformParametersAbsolute.cpp"
	"detail/SystemSpecification.cpp"
	
	"parameters/BodyTransformParametersAbsolute.cpp"
	"parameters/BodyTransformParametersRelative.cpp"
	"parameters/ParameterGenerationFactory.cpp"
	"parameters/ParameterGenerationStrategy.cpp"
	"parameters/ParameterGenerationStrategies.cpp"
	"parameters/decay/DecayFactory.cpp"
	"parameters/decay/ExponentialDecay.cpp"
	"parameters/decay/LinearDecay.cpp"

	"selection/BodySelectFactory.cpp"
	"selection/BodySelectStrategy.cpp"
	"selection/ManualSelect.cpp"
	"selection/ParameterMask.cpp"
	"selection/RandomBodySelect.cpp"
	"selection/RandomConstraintSelect.cpp"
	"selection/SequentialBodySelect.cpp"
	"selection/SequentialConstraintSelect.cpp"

	"sequencer/Sequencer.cpp"
	"sequencer/detail/AdditionalElements.cpp"
	"sequencer/detail/SequenceParser.cpp"
	"sequencer/detail/ParsedArgs.cpp"
	"sequencer/elements/BodySelectElement.cpp"
	"sequencer/elements/ConstraintIteratorElementCallback.cpp"
	"sequencer/elements/ConvertSymmetryElement.cpp"
	"sequencer/elements/CopyLoopElement.cpp"
	"sequencer/elements/EveryNStepElement.cpp"
	"sequencer/elements/LoopElement.cpp"
	"sequencer/elements/LoopElementCallback.cpp"
	"sequencer/elements/MessageElement.cpp"
	"sequencer/elements/OnImprovementElement.cpp"
	"sequencer/elements/OptimizeStepElement.cpp"
	"sequencer/elements/ParameterElement.cpp"
	"sequencer/elements/ParameterElementCallback.cpp"
	"sequencer/elements/SaveElement.cpp"
	"sequencer/elements/TransformElement.cpp"
	"sequencer/elements/setup/AutoConstraintsElement.cpp"
	"sequencer/elements/setup/ConstraintElement.cpp"
	"sequencer/elements/setup/CopyBodyElement.cpp"
	"sequencer/elements/setup/LoadElement.cpp"
	"sequencer/elements/setup/LoadExistingElement.cpp"
	"sequencer/elements/setup/RelativeHydrationElement.cpp"
	"sequencer/elements/setup/SetupElement.cpp"
	"sequencer/elements/setup/SymmetryElement.cpp"
	"sequencer/elements/setup/OutputFolderElement.cpp"
	
	"transform/RigidTransform.cpp"
	"transform/SingleTransform.cpp"
	"transform/TransformFactory.cpp"
	"transform/TransformGroup.cpp"
	"transform/TransformStrategy.cpp"
)

target_include_directories(ausaxs_rigidbody PUBLIC "${CMAKE_SOURCE_DIR}/include/rigidbody")
target_link_libraries(ausaxs_rigidbody ausaxs_core)
set_target_properties(ausaxs_rigidbody PROPERTIES POSITION_INDEPENDENT_CODE 1)
