cmake_minimum_required(VERSION 3.16)

project(shs_subgeLib)

set(SOURCES
    "./StdAfx.cpp"
    "./TchSubGlobalFunc.cpp"
    "./TchSubPrivateGlobalFunc.cpp"
    "./TGAGene.cpp"
    "./TGAIndividual.cpp"
    "./TGAPopulation.cpp"
    "./TGGeSurface3D.cpp"
    "./TGMatrix.cpp"
    "./TGMCurve2D.cpp"
    "./TGMCurve3D.cpp"
    "./TGMesh.cpp"
    "./TGMesh3D.cpp"
    "./TGMeshEdge.cpp"
    "./TGMeshEdge3D.cpp"
    "./TGMeshNode.cpp"
    "./TGMeshNode3D.cpp"
    "./TGMLine2D.cpp"
    "./TGMLine3D.cpp"
    "./TGNode.cpp"
    "./TGNPolygon2D.cpp"
    "./TGObject.cpp"
    "./TGObject2D.cpp"
    "./TGObject3D.cpp"
    "./TGObjectList.cpp"
    "./TGPa.cpp"
    "./TGPCurve3D.cpp"
    "./TGPlane3D.cpp"
    "./TGPLine2D.cpp"
    "./TGPoint.cpp"
    "./TGPoint2D.cpp"
    "./TGPoint3D.cpp"
    "./TGPolygon2D.cpp"
    "./TGPolygonEx2D.cpp"
    "./TGPtPa.cpp"
    "./TGraph.cpp"
    "./TGraphArc.cpp"
    "./TGraphNode.cpp"
    "./TGraphPath.cpp"
    "./TGRegion2D.cpp"
    "./TGRegionEx2D.cpp"
    "./TGSolid.cpp"
    "./TGTriangle2D.cpp"
    "./TGVector2D.cpp"
    "./TGVector3D.cpp"
    "./TPGArcInitDup.cpp"
    "./TPGCirInitDup.cpp"
    "./TPGeArc2D.cpp"
    "./TPGeCircle.cpp"
    "./TPGeCircle2D.cpp"
    "./TPGeCoordSys.cpp"
    "./TPGeCurve2D.cpp"
    "./TPGeCurve3D.cpp"
    "./TPGeCurveMesh.cpp"
    "./TPGeCurveMesh3D.cpp"
    "./TPGeDscEdge.cpp"
    "./TPGeDscEdge3D.cpp"
    "./TPGeDscPoint.cpp"
    "./TPGeDscPoint3D.cpp"
    "./TPGeEdge.cpp"
    "./TPGeEdgePath.cpp"
    "./TPGeEllipse.cpp"
    "./TPGeExtend.cpp"
    "./TPGeExtend2D.cpp"
    "./TPGeExtend3D.cpp"
    "./TPGeFace3D.cpp"
    "./TPGeFitGraph.cpp"
    "./TPGeFitGraph3D.cpp"
    "./TPGeFitPath.cpp"
    "./TPGeFitPath3D.cpp"
    "./TPGeFitTriangle.cpp"
    "./TPGeFitTriangle3D.cpp"
    "./TPGeGLine2D.cpp"
    "./TPGeGLine3D.cpp"
    "./TPGeGLineRay2D.cpp"
    "./TPGeGLineRay3D.cpp"
    "./TPGeGLineSeg2D.cpp"
    "./TPGeGLineSeg3D.cpp"
    "./TPGeGraph.cpp"
    "./TPGeGridCell.cpp"
    "./TPGeGridLine.cpp"
    "./TPGeGridNode.cpp"
    "./TPGeGridSeg.cpp"
    "./TPGeLandform.cpp"
    "./TPGeLine2D.cpp"
    "./TPGeLine3D.cpp"
    "./TPGePlane.cpp"
    "./TPGLineInitDup.cpp"
    "./TPtGraph.cpp"
    "./TPtList.cpp"
    "./TPtList1.cpp"
    "./TPtList2.cpp"
    "./TPtNode.cpp"
    "./TWArchive.cpp"
    "./TWArrayAr.cpp"
    "./TWArraysAr.cpp"
    "./TWAutoDel.cpp"
    "./TWAutoDelBuf.cpp"
    "./TWBoolItem.cpp"
    "./TWCharItem.cpp"
    "./TWClassInfo.cpp"
    "./TWCStringItem.cpp"
    "./TWDict.cpp"
    "./TWDictItem.cpp"
    "./TWDictPath.cpp"
    "./TWDoubleItem.cpp"
    "./TWDyCreateClass.cpp"
    "./TWFlag.cpp"
    "./TWLongItem.cpp"
    "./TWRunTimeClass.cpp"
    "./TWSelectItem.cpp"
)

add_library(shs_subgeLib STATIC ${SOURCES})

target_compile_definitions(shs_subgeLib PRIVATE
    ACRXAPP
    TAR_LANGUAGE=1
    TDS=7
    USE_AT_OBSOLETE=1
    _TCH_GELIB_
)

simple_link_cad_sdk(shs_subgeLib)

target_link_libraries(shs_subgeLib PRIVATE
    ThirdParty::TG
)

target_precompile_headers(shs_subgeLib PRIVATE StdAfx.h)
