cmake_minimum_required(VERSION 3.16)

project(shs_GeLib)

set(SOURCES
    "./dibapi.cpp"
    "./SectionPolygonCreator.cpp"
    "./SectionStructDef.cpp"
    "./SectionUtility.cpp"
    "./StdAfx.cpp"
    "./TAcDbBlockTable.cpp"
    "./TAcDbBlockTableRecordZone.cpp"
    "./TAcDbLayerTable.cpp"
    "./TACString.cpp"
    "./TACStringList.cpp"
    "./TADSGePoint3d.cpp"
    "./TADSGePointDir2d.cpp"
    "./TADSGePointList.cpp"
    "./TADSPrintf.cpp"
    "./TAdvanceSampler.cpp"
    "./TArc3DWall.cpp"
    "./TArchMatchProp.cpp"
    "./TArcSection.cpp"
    "./TArcWallUnit.cpp"
    "./TAString.cpp"
    "./TBArc.cpp"
    "./TBitMatrix.cpp"
    "./TBitTable.cpp"
    "./TBlockGeomInfo.cpp"
    "./TBNode.cpp"
    "./TBPloygon.cpp"
    "./TBPloyLine.cpp"
    "./TchGeLib.cpp"
    "./TchGlobalCurveFunc.cpp"
    "./TchGlobalFunc.cpp"
    "./TchPrivateGlobalFunc.cpp"
    "./TConfigBase.cpp"
    "./TCoverVisibleRelationCal.cpp"
    "./TDbBlockInsert.cpp"
    "./TDbCurveEntity.cpp"
    "./TDbDwgLicense.cpp"
    "./TDbEntity.cpp"
    "./TDbGrip.cpp"
    "./TDbGripAngleDim.cpp"
    "./TDbGripDim.cpp"
    "./TDbGripDistDim.cpp"
    "./TDbGripRadiusDim.cpp"
    "./TDbPolyCurveEnt.cpp"
    "./TDbXDataMap.cpp"
    "./TDNode.cpp"
    "./TDragPickEntSet.cpp"
    "./TDRdupLineNode.cpp"
    "./TDupWallException.cpp"
    "./TEdJig.cpp"
    "./TEntityBase.cpp"
    "./TEntityField.cpp"
    "./TEntityFields.cpp"
    "./TEntitySet.cpp"
    "./TGGe3DFace.cpp"
    "./TGGe3DFace3Pt.cpp"
    "./TGGeArc.cpp"
    "./TGGeCircle.cpp"
    "./TGGeColorLine.cpp"
    "./TGGeColorLineList.cpp"
    "./TGGeColorSolid.cpp"
    "./TGGeCurve.cpp"
    "./TGGeCurveSegment.cpp"
    "./TGGeCurveSegSeg.cpp"
    "./TGGeCurveSegSegEx.cpp"
    "./TGGeCurveSegunique.cpp"
    "./TGGeCurveSegUniqueEx.cpp"
    "./TGGeDbCurveEntity.cpp"
    "./TGGeDbCurveSegEntity.cpp"
    "./TGGeDbPolyline.cpp"
    "./TGGeEntity.cpp"
    "./TGGeHatch.cpp"
    "./TGGeHoleModel.cpp"
    "./TGGeLine.cpp"
    "./TGGeLinearEnt.cpp"
    "./TGGeLineDist.cpp"
    "./TGGePface.cpp"
    "./TGGePlane.cpp"
    "./TGGePoly.cpp"
    "./TGGePoly2D.cpp"
    "./TGGePoly3D.cpp"
    "./TGGePolyDist.cpp"
    "./TGGePolyFacet.cpp"
    "./TGGePolygonEx.cpp"
    "./TGGeRdupCurveOper.cpp"
    "./TGGeRectAngle.cpp"
    "./TGGeRectFace.cpp"
    "./TGGeRegion.cpp"
    "./TGGeRegion2D.cpp"
    "./TGGeRegionIndex.cpp"
    "./TGGeRegionSide.cpp"
    "./TGGeSector.cpp"
    "./TGGeShape.cpp"
    "./TGGeSideVector.cpp"
    "./TGGeSolid.cpp"
    "./TGGeSolidCurve.cpp"
    "./TGGeTriangle.cpp"
    "./TGGeTrianglePface.cpp"
    "./TGGiBitmapStorage.cpp"
    "./TGGiClipBoundary.cpp"
    "./TGGiCompressStorage.cpp"
    "./TGGiCurveStream.cpp"
    "./TGGiCustomContext.cpp"
    "./TGGiCustomSubEntityTraits.cpp"
    "./TGGiCustomWorldDraw.cpp"
    "./TGGiCustomWorldGeometry.cpp"
    "./TGGiDrawingStorage.cpp"
    "./TGGiDrawStreamBase.cpp"
    "./TGGiExplodeDraw.cpp"
    "./TGGiExplodeDrawBase.cpp"
    "./TGGiJpegStorage.cpp"
    "./TGGiPushDrawStream.cpp"
    "./TGGiScreenDrawStream.cpp"
    "./TGGiShellData.cpp"
    "./TGGiSlibStorage.cpp"
    "./TGGiSlideStorage.cpp"
    "./TGGiStreamFile.cpp"
    "./TGGiUcsDrawStream.cpp"
    "./TGGiWcsDrawStream.cpp"
    "./TGGiWorldViewportDraw.cpp"
    "./TGroups.cpp"
    "./THole.cpp"
    "./TIdPointPair.cpp"
    "./TImageDrawDC.cpp"
    "./TImageDrawDCEx.cpp"
    "./TMasterProperties.cpp"
    "./TNumeric.cpp"
    "./TObjInfoUnit.cpp"
    "./TPickEntSet.cpp"
    "./TPointList.cpp"
    "./TPushAcadUndo.cpp"
    "./TPushMMUnit.cpp"
    "./TPushPrec.cpp"
    "./TPushProperty.cpp"
    "./TRBList.cpp"
    "./TRegObject.cpp"
    "./TRegProperty.cpp"
    "./TRemoveDupByLayer.cpp"
    "./TSafeResource.cpp"
    "./TSearchException.cpp"
    "./TSearchRegionFromCurve.cpp"
    "./TSendCommandEdit.cpp"
    "./TShowExtend.cpp"
    "./TSortedVertexList.cpp"
    "./TSortSideOnVertex.cpp"
    "./TSplitpathOperator.cpp"
    "./TSqlCondition.cpp"
    "./TSqlQuiry.cpp"
    "./TStaticBuffer.cpp"
    "./TSubText.cpp"
    "./TSymbolStringList.cpp"
    "./TSymbolTableRecord.cpp"
    "./TTempGeTol.cpp"
    "./TTextPosition.cpp"
    "./TTextRange.cpp"
    "./TTextStyleTableRecord.cpp"
    "./TUString.cpp"
    "./TWCString.cpp"
    "./TWCStringList.cpp"
    "./TWFormatUnit.cpp"
    "./TWValList.cpp"
    "./TXmlTree.cpp"
)

add_library(shs_GeLib STATIC ${SOURCES})

target_compile_definitions(shs_GeLib PRIVATE
    ACRXAPP
    S4FOX
    S4NT
    TAR_LANGUAGE=1
    TDS=7
    USE_AT_OBSOLETE=1
    _TCH_GELIB_
)

simple_link_cad_sdk(shs_GeLib)

target_link_libraries(shs_GeLib PRIVATE
    ThirdParty::TG
)

target_precompile_headers(shs_GeLib PRIVATE StdAfx.h)
