Got it to generate good libOndselSolver.a; a static lib for linux

This commit is contained in:
John Dupuy
2023-10-02 17:04:20 -05:00
parent d17ec98cdf
commit 320554afc4
4 changed files with 573 additions and 5 deletions

View File

@@ -1,7 +1,295 @@
cmake_minimum_required(VERSION 3.26)
cmake_minimum_required(VERSION 3.16)
project(OndselSolver VERSION 1.0.1 DESCRIPTION "Assembly Constraints and Multibody Dynamics code")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# add_library(some_target main.cpp)
set(ONDSEL_EXPORT
MbDCode/Abs.cpp
MbDCode/AbsConstraint.cpp
MbDCode/AccICKineNewtonRaphson.cpp
MbDCode/AccICNewtonRaphson.cpp
MbDCode/AccKineNewtonRaphson.cpp
MbDCode/AccNewtonRaphson.cpp
MbDCode/AngleJoint.cpp
MbDCode/AngleZIecJec.cpp
MbDCode/AngleZIeqcJec.cpp
MbDCode/AngleZIeqcJeqc.cpp
MbDCode/AnyGeneralSpline.cpp
MbDCode/AnyPosICNewtonRaphson.cpp
MbDCode/ArcTan.cpp
MbDCode/ArcTan2.cpp
MbDCode/Array.cpp
MbDCode/ASMTAnimationParameters.cpp
MbDCode/ASMTAssembly.cpp
MbDCode/ASMTConstantGravity.cpp
MbDCode/ASMTConstraintSet.cpp
MbDCode/ASMTCylindricalJoint.cpp
MbDCode/ASMTExtrusion.cpp
MbDCode/ASMTFixedJoint.cpp
MbDCode/ASMTForceTorque.cpp
MbDCode/ASMTGeneralMotion.cpp
MbDCode/ASMTItem.cpp
MbDCode/ASMTItemIJ.cpp
MbDCode/ASMTJoint.cpp
MbDCode/ASMTKinematicIJ.cpp
MbDCode/ASMTMarker.cpp
MbDCode/ASMTMotion.cpp
MbDCode/ASMTPart.cpp
MbDCode/ASMTPointInPlaneJoint.cpp
MbDCode/ASMTPrincipalMassMarker.cpp
MbDCode/ASMTRefCurve.cpp
MbDCode/ASMTRefItem.cpp
MbDCode/ASMTRefPoint.cpp
MbDCode/ASMTRefSurface.cpp
MbDCode/ASMTRevoluteJoint.cpp
MbDCode/ASMTRotationalMotion.cpp
MbDCode/ASMTSimulationParameters.cpp
MbDCode/ASMTSpatialContainer.cpp
MbDCode/ASMTSpatialItem.cpp
MbDCode/ASMTSphericalJoint.cpp
MbDCode/ASMTTime.cpp
MbDCode/ASMTTranslationalMotion.cpp
MbDCode/ASMTTranslationalJoint.cpp
MbDCode/ASMTUniversalJoint.cpp
MbDCode/AtPointConstraintIJ.cpp
MbDCode/AtPointConstraintIqcJc.cpp
MbDCode/AtPointConstraintIqcJqc.cpp
MbDCode/AtPointConstraintIqctJqc.cpp
MbDCode/AtPointJoint.cpp
MbDCode/BasicIntegrator.cpp
MbDCode/BasicQuasiIntegrator.cpp
MbDCode/BasicUserFunction.cpp
MbDCode/CADSystem.cpp
MbDCode/CartesianFrame.cpp
MbDCode/CompoundJoint.cpp
MbDCode/Constant.cpp
MbDCode/ConstantGravity.cpp
MbDCode/ConstantVelocityJoint.cpp
MbDCode/Constraint.cpp
MbDCode/ConstraintIJ.cpp
MbDCode/ConstVelConstraintIJ.cpp
MbDCode/ConstVelConstraintIqcJc.cpp
MbDCode/ConstVelConstraintIqcJqc.cpp
MbDCode/Cosine.cpp
MbDCode/CREATE.cpp
MbDCode/CylindricalJoint.cpp
MbDCode/CylSphJoint.cpp
MbDCode/DifferentiatedGeneralSpline.cpp
MbDCode/EndFrameqct2.cpp
MbDCode/EulerAngles.cpp
MbDCode/EulerAnglesDDot.cpp
MbDCode/EulerAnglesDot.cpp
MbDCode/Exponential.cpp
MbDCode/ExternalSystem.cpp
MbDCode/FunctionFromData.cpp
MbDCode/FunctionXcParameter.cpp
MbDCode/FunctionXY.cpp
MbDCode/GeneralSpline.cpp
MbDCode/Ln.cpp
MbDCode/Log10.cpp
MbDCode/LogN.cpp
MbDCode/Negative.cpp
MbDCode/PosVelAccData.cpp
MbDCode/DiagonalMatrix.cpp
MbDCode/DifferenceOperator.cpp
MbDCode/DirectionCosineConstraintIJ.cpp
MbDCode/DirectionCosineConstraintIqcJc.cpp
MbDCode/DirectionCosineConstraintIqcJqc.cpp
MbDCode/DirectionCosineConstraintIqctJqc.cpp
MbDCode/DirectionCosineIecJec.cpp
MbDCode/DirectionCosineIeqcJec.cpp
MbDCode/DirectionCosineIeqcJeqc.cpp
MbDCode/DirectionCosineIeqctJeqc.cpp
MbDCode/DiscontinuityError.cpp
MbDCode/DispCompIecJecIe.cpp
MbDCode/DispCompIecJecKec.cpp
MbDCode/DispCompIecJecKeqc.cpp
MbDCode/DispCompIecJecO.cpp
MbDCode/DispCompIeqcJecIe.cpp
MbDCode/DispCompIeqcJecKeqc.cpp
MbDCode/DispCompIeqcJecO.cpp
MbDCode/DispCompIeqcJeqcIe.cpp
MbDCode/DispCompIeqcJeqcKeqc.cpp
MbDCode/DispCompIeqcJeqcKeqct.cpp
MbDCode/DispCompIeqcJeqcO.cpp
MbDCode/DispCompIeqctJeqcIe.cpp
MbDCode/DispCompIeqctJeqcKeqct.cpp
MbDCode/DispCompIeqctJeqcO.cpp
MbDCode/DistanceConstraintIJ.cpp
MbDCode/DistanceConstraintIqcJc.cpp
MbDCode/DistanceConstraintIqcJqc.cpp
MbDCode/DistanceConstraintIqctJqc.cpp
MbDCode/DistancexyConstraintIJ.cpp
MbDCode/DistancexyConstraintIqcJc.cpp
MbDCode/DistancexyConstraintIqcJqc.cpp
MbDCode/DistIecJec.cpp
MbDCode/DistIeqcJec.cpp
MbDCode/DistIeqcJeqc.cpp
MbDCode/DistIeqctJeqc.cpp
MbDCode/DistxyIecJec.cpp
MbDCode/DistxyIeqcJec.cpp
MbDCode/DistxyIeqcJeqc.cpp
MbDCode/DistxyIeqctJeqc.cpp
MbDCode/EndFramec.cpp
MbDCode/EndFrameqc.cpp
MbDCode/EndFrameqct.cpp
MbDCode/EulerAngleszxz.cpp
MbDCode/EulerAngleszxzDDot.cpp
MbDCode/EulerAngleszxzDot.cpp
MbDCode/EulerArray.cpp
MbDCode/EulerConstraint.cpp
MbDCode/EulerParameters.cpp
MbDCode/EulerParametersDDot.cpp
MbDCode/EulerParametersDot.cpp
MbDCode/ExpressionX.cpp
MbDCode/FixedJoint.cpp
MbDCode/ForceTorqueData.cpp
MbDCode/ForceTorqueItem.cpp
MbDCode/FullColumn.cpp
MbDCode/FullMatrix.cpp
MbDCode/FullMotion.cpp
MbDCode/FullRow.cpp
MbDCode/Function.cpp
MbDCode/FunctionWithManyArgs.cpp
MbDCode/FunctionX.cpp
MbDCode/GearConstraintIJ.cpp
MbDCode/GearConstraintIqcJc.cpp
MbDCode/GearConstraintIqcJqc.cpp
MbDCode/GearJoint.cpp
MbDCode/GEFullMat.cpp
MbDCode/GEFullMatFullPv.cpp
MbDCode/GEFullMatParPv.cpp
MbDCode/GESpMat.cpp
MbDCode/GESpMatFullPv.cpp
MbDCode/GESpMatFullPvPosIC.cpp
MbDCode/GESpMatParPv.cpp
MbDCode/GESpMatParPvMarko.cpp
MbDCode/GESpMatParPvMarkoFast.cpp
MbDCode/GESpMatParPvPrecise.cpp
MbDCode/ICKineIntegrator.cpp
MbDCode/IndependentVariable.cpp
MbDCode/InLineJoint.cpp
MbDCode/InPlaneJoint.cpp
MbDCode/Integrator.cpp
MbDCode/IntegratorInterface.cpp
MbDCode/Item.cpp
MbDCode/Joint.cpp
MbDCode/KineIntegrator.cpp
MbDCode/KinematicIeJe.cpp
MbDCode/LDUFullMatParPv.cpp
MbDCode/LDUSpMat.cpp
MbDCode/LDUSpMatParPv.cpp
MbDCode/LDUSpMatParPvMarko.cpp
MbDCode/LDUSpMatParPvPrecise.cpp
MbDCode/LinearMultiStepMethod.cpp
MbDCode/LineInPlaneJoint.cpp
MbDCode/MarkerFrame.cpp
MbDCode/Math.cpp
MbDCode/MatrixDecomposition.cpp
MbDCode/MatrixGaussElimination.cpp
MbDCode/MatrixLDU.cpp
MbDCode/MatrixSolver.cpp
MbDCode/MaximumIterationError.cpp
MbDCode/NewtonRaphson.cpp
MbDCode/NewtonRaphsonError.cpp
MbDCode/NoRotationJoint.cpp
MbDCode/NotKinematicError.cpp
MbDCode/Numeric.cpp
MbDCode/OrbitAnglezIecJec.cpp
MbDCode/OrbitAnglezIeqcJec.cpp
MbDCode/OrbitAnglezIeqcJeqc.cpp
MbDCode/Orientation.cpp
MbDCode/ParallelAxesJoint.cpp
MbDCode/Part.cpp
MbDCode/PartFrame.cpp
MbDCode/PerpendicularJoint.cpp
MbDCode/PlanarJoint.cpp
MbDCode/PointInLineJoint.cpp
MbDCode/PointInPlaneJoint.cpp
MbDCode/PosICKineNewtonRaphson.cpp
MbDCode/PosICNewtonRaphson.cpp
MbDCode/PosKineNewtonRaphson.cpp
MbDCode/PosNewtonRaphson.cpp
MbDCode/Power.cpp
MbDCode/PrescribedMotion.cpp
MbDCode/Product.cpp
MbDCode/QuasiIntegrator.cpp
MbDCode/RackPinConstraintIJ.cpp
MbDCode/RackPinConstraintIqcJc.cpp
MbDCode/RackPinConstraintIqcJqc.cpp
MbDCode/RackPinJoint.cpp
MbDCode/Reciprocal.cpp
MbDCode/RedundantConstraint.cpp
MbDCode/RevCylJoint.cpp
MbDCode/RevoluteJoint.cpp
MbDCode/RowTypeMatrix.cpp
MbDCode/ScalarNewtonRaphson.cpp
MbDCode/ScrewConstraintIJ.cpp
MbDCode/ScrewConstraintIqcJc.cpp
MbDCode/ScrewConstraintIqcJqc.cpp
MbDCode/ScrewJoint.cpp
MbDCode/SimulationStoppingError.cpp
MbDCode/Sine.cpp
MbDCode/SingularMatrixError.cpp
MbDCode/Solver.cpp
MbDCode/SparseColumn.cpp
MbDCode/SparseMatrix.cpp
MbDCode/SparseRow.cpp
MbDCode/SparseVector.cpp
MbDCode/SphericalJoint.cpp
MbDCode/SphSphJoint.cpp
MbDCode/StableBackwardDifference.cpp
MbDCode/LDUFullMat.cpp
MbDCode/StateData.cpp
MbDCode/Sum.cpp
MbDCode/Symbolic.cpp
MbDCode/SymbolicParser.cpp
MbDCode/SyntaxError.cpp
MbDCode/System.cpp
MbDCode/SystemNewtonRaphson.cpp
MbDCode/SystemSolver.cpp
MbDCode/Time.cpp
MbDCode/TooManyTriesError.cpp
MbDCode/TooSmallStepSizeError.cpp
MbDCode/Translation.cpp
MbDCode/TranslationalJoint.cpp
MbDCode/TranslationConstraintIJ.cpp
MbDCode/TranslationConstraintIqcJc.cpp
MbDCode/TranslationConstraintIqcJqc.cpp
MbDCode/TranslationConstraintIqctJqc.cpp
MbDCode/Units.cpp
MbDCode/UniversalJoint.cpp
MbDCode/UserFunction.cpp
MbDCode/Variable.cpp
MbDCode/FullVector.cpp
MbDCode/VectorNewtonRaphson.cpp
MbDCode/VelICKineSolver.cpp
MbDCode/VelICSolver.cpp
MbDCode/VelKineSolver.cpp
MbDCode/VelSolver.cpp
MbDCode/ZRotation.cpp
MbDCode/ZTranslation.cpp
MbDCode/ASMTAssembly.cpp
)
add_executable(ondsel-solver MbDCode/MbDCode.cpp)
add_library(OndselSolver
STATIC ${ONDSEL_EXPORT}
)
add_subdirectory(MbDCode)
set_target_properties(OndselSolver
PROPERTIES VERSION ${PROJECT_VERSION}
SOVERSION 1
)
configure_file(OndselSolver.pc.in OndselSolver.pc @ONLY)
install(TARGETS OndselSolver
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(FILES ${CMAKE_BINARY_DIR}/OndselSolver.pc
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig)

View File

@@ -266,3 +266,274 @@ target_sources(ondsel-solver PUBLIC
ZTranslation.cpp
ASMTAssembly.cpp
)
target_sources(OndselSolver PUBLIC
Abs.h
AbsConstraint.h
AccICKineNewtonRaphson.h
AccICNewtonRaphson.h
AccKineNewtonRaphson.h
AccNewtonRaphson.h
AngleJoint.h
AngleZIecJec.h
AngleZIeqcJec.h
AngleZIeqcJeqc.h
AnyGeneralSpline.h
AnyPosICNewtonRaphson.h
ArcTan.h
ArcTan2.h
Array.h
ASMTAnimationParameters.h
ASMTAssembly.h
ASMTConstantGravity.h
ASMTConstraintSet.h
ASMTCylindricalJoint.h
ASMTExtrusion.h
ASMTFixedJoint.h
ASMTForceTorque.h
ASMTGeneralMotion.h
ASMTItem.h
ASMTItemIJ.h
ASMTJoint.h
ASMTKinematicIJ.h
ASMTMarker.h
ASMTMotion.h
ASMTPart.h
ASMTPointInPlaneJoint.h
ASMTPrincipalMassMarker.h
ASMTRefCurve.h
ASMTRefItem.h
ASMTRefPoint.h
ASMTRefSurface.h
ASMTRevoluteJoint.h
ASMTRotationalMotion.h
ASMTSimulationParameters.h
ASMTSpatialContainer.h
ASMTSpatialItem.h
ASMTSphericalJoint.h
ASMTTime.h
ASMTTranslationalMotion.h
ASMTTranslationalJoint.h
ASMTUniversalJoint.h
AtPointConstraintIJ.h
AtPointConstraintIqcJc.h
AtPointConstraintIqcJqc.h
AtPointConstraintIqctJqc.h
AtPointJoint.h
BasicIntegrator.h
BasicQuasiIntegrator.h
BasicUserFunction.h
CADSystem.h
CartesianFrame.h
CompoundJoint.h
Constant.h
ConstantGravity.h
ConstantVelocityJoint.h
Constraint.h
ConstraintIJ.h
ConstVelConstraintIJ.h
ConstVelConstraintIqcJc.h
ConstVelConstraintIqcJqc.h
Cosine.h
CREATE.h
CylindricalJoint.h
CylSphJoint.h
DifferentiatedGeneralSpline.h
EndFrameqct2.h
EulerAngles.h
EulerAnglesDDot.h
EulerAnglesDot.h
Exponential.h
ExternalSystem.h
FunctionFromData.h
FunctionXcParameter.h
FunctionXY.h
GeneralSpline.h
Ln.h
Log10.h
LogN.h
Negative.h
PosVelAccData.h
DiagonalMatrix.h
DifferenceOperator.h
DirectionCosineConstraintIJ.h
DirectionCosineConstraintIqcJc.h
DirectionCosineConstraintIqcJqc.h
DirectionCosineConstraintIqctJqc.h
DirectionCosineIecJec.h
DirectionCosineIeqcJec.h
DirectionCosineIeqcJeqc.h
DirectionCosineIeqctJeqc.h
DiscontinuityError.h
DispCompIecJecIe.h
DispCompIecJecKec.h
DispCompIecJecKeqc.h
DispCompIecJecO.h
DispCompIeqcJecIe.h
DispCompIeqcJecKeqc.h
DispCompIeqcJecO.h
DispCompIeqcJeqcIe.h
DispCompIeqcJeqcKeqc.h
DispCompIeqcJeqcKeqct.h
DispCompIeqcJeqcO.h
DispCompIeqctJeqcIe.h
DispCompIeqctJeqcKeqct.h
DispCompIeqctJeqcO.h
DistanceConstraintIJ.h
DistanceConstraintIqcJc.h
DistanceConstraintIqcJqc.h
DistanceConstraintIqctJqc.h
DistancexyConstraintIJ.h
DistancexyConstraintIqcJc.h
DistancexyConstraintIqcJqc.h
DistIecJec.h
DistIeqcJec.h
DistIeqcJeqc.h
DistIeqctJeqc.h
DistxyIecJec.h
DistxyIeqcJec.h
DistxyIeqcJeqc.h
DistxyIeqctJeqc.h
EndFramec.h
EndFrameqc.h
EndFrameqct.h
enum.h
EulerAngleszxz.h
EulerAngleszxzDDot.h
EulerAngleszxzDot.h
EulerArray.h
EulerConstraint.h
EulerParameters.h
EulerParametersDDot.h
EulerParametersDot.h
ExpressionX.h
FixedJoint.h
ForceTorqueData.h
ForceTorqueItem.h
FullColumn.h
FullMatrix.h
FullMotion.h
FullRow.h
Function.h
FunctionWithManyArgs.h
FunctionX.h
GearConstraintIJ.h
GearConstraintIqcJc.h
GearConstraintIqcJqc.h
GearJoint.h
GEFullMat.h
GEFullMatFullPv.h
GEFullMatParPv.h
GESpMat.h
GESpMatFullPv.h
GESpMatFullPvPosIC.h
GESpMatParPv.h
GESpMatParPvMarko.h
GESpMatParPvMarkoFast.h
GESpMatParPvPrecise.h
ICKineIntegrator.h
IndependentVariable.h
InLineJoint.h
InPlaneJoint.h
Integrator.h
IntegratorInterface.h
Item.h
Joint.h
KineIntegrator.h
KinematicIeJe.h
LDUFullMatParPv.h
LDUSpMat.h
LDUSpMatParPv.h
LDUSpMatParPvMarko.h
LDUSpMatParPvPrecise.h
LinearMultiStepMethod.h
LineInPlaneJoint.h
MarkerFrame.h
Math.h
MatrixDecomposition.h
MatrixGaussElimination.h
MatrixLDU.h
MatrixSolver.h
MaximumIterationError.h
MbDCode.h
NewtonRaphson.h
NewtonRaphsonError.h
NoRotationJoint.h
NotKinematicError.h
Numeric.h
OrbitAnglezIecJec.h
OrbitAnglezIeqcJec.h
OrbitAnglezIeqcJeqc.h
Orientation.h
ParallelAxesJoint.h
Part.h
PartFrame.h
PerpendicularJoint.h
PlanarJoint.h
PointInLineJoint.h
PointInPlaneJoint.h
PosICKineNewtonRaphson.h
PosICNewtonRaphson.h
PosKineNewtonRaphson.h
PosNewtonRaphson.h
Power.h
PrescribedMotion.h
Product.h
QuasiIntegrator.h
RackPinConstraintIJ.h
RackPinConstraintIqcJc.h
RackPinConstraintIqcJqc.h
RackPinJoint.h
Reciprocal.h
RedundantConstraint.h
resource.h
RevCylJoint.h
RevoluteJoint.h
RowTypeMatrix.h
ScalarNewtonRaphson.h
ScrewConstraintIJ.h
ScrewConstraintIqcJc.h
ScrewConstraintIqcJqc.h
ScrewJoint.h
SimulationStoppingError.h
Sine.h
SingularMatrixError.h
Solver.h
SparseColumn.h
SparseMatrix.h
SparseRow.h
SparseVector.h
SphericalJoint.h
SphSphJoint.h
StableBackwardDifference.h
LDUFullMat.h
StateData.h
Sum.h
Symbolic.h
SymbolicParser.h
SyntaxError.h
System.h
SystemNewtonRaphson.h
SystemSolver.h
Time.h
TooManyTriesError.h
TooSmallStepSizeError.h
Translation.h
TranslationalJoint.h
TranslationConstraintIJ.h
TranslationConstraintIqcJc.h
TranslationConstraintIqcJqc.h
TranslationConstraintIqctJqc.h
Units.h
UniversalJoint.h
UserFunction.h
Variable.h
FullVector.h
VectorNewtonRaphson.h
VelICKineSolver.h
VelICSolver.h
VelKineSolver.h
VelSolver.h
ZRotation.h
ZTranslation.h
)

View File

@@ -12,10 +12,7 @@
* @brief Program to assemble a piston crank system.
*********************************************************************/
#include <iostream>
#include <fstream>
#include <filesystem>
#include "CADSystem.h"
#include "CREATE.h"
#include "GESpMatParPvPrecise.h"

12
OndselSolver.pc.in Normal file
View File

@@ -0,0 +1,12 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@
libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
Name: @PROJECT_NAME@
Description: @PROJECT_DESCRIPTION@
Version: @PROJECT_VERSION@
Requires:
Libs: -L${libdir} -lOndselSolver
Cflags: -I${includedir}