cmake_minimum_required(VERSION 3.16)

project(AdsXRx)

set(SOURCES
    "adsxrx.cpp"
    "aeccurveentity.cpp"
    "aecdbblockinsert.cpp"
    "aecdbgrip.cpp"
    "aecdbgripangledim.cpp"
    "aecdbgripdim.cpp"
    "aecdbgripdistdim.cpp"
    "aecdbgripradiusdim.cpp"
    "aecdbpolycurveent.cpp"
    "aecentity.cpp"
    "aentitybase.cpp"
    "aol.cpp"
    "astring.cpp"
    "bitmatrix.cpp"
    "bittable.cpp"
    "cbarc.cpp"
    "cbnode.cpp"
    "cdnode.cpp"
    "chole.cpp"
    "cimagedc.cpp"
    "cimagedcex.cpp"
    "cployline.cpp"
    "ctemptol.cpp"
    "dbgridsheet.cpp"
    "dbsymbolannotate.cpp"
    "dbtext.cpp"
    "dibapi.cpp"
    "dragpickentset.cpp"
    "dupwallexception.cpp"
    "entity.cpp"
    "entityfield.cpp"
    "entityfields.cpp"
    "findparser.cpp"
    "groups.cpp"
    "idpointpair.cpp"
    "objinfounit.cpp"
    "pickset.cpp"
    "pointlist.cpp"
    "pushproperty.cpp"
    "rblist.cpp"
    "regobject.cpp"
    "regproperty.cpp"
    "saferesource.cpp"
    "searchexception.cpp"
    "sectionpolygoncreator.cpp"
    "sectionstructdef.cpp"
    "sectionutility.cpp"
    "sqlcondition.cpp"
    "sqlquiry.cpp"
    "styletable.cpp"
    "subtext.cpp"
    "symboltable.cpp"
    "tbploygon.cpp"
    "textposition.cpp"
    "textrange.cpp"
    "ustring.cpp"
    "wformatunit.cpp"
    "wvallist.cpp"
    "x3dface.cpp"
    "x3dface3pt.cpp"
    "xacgiviewdraw.cpp"
    "xadsostream.cpp"
    "xadvancesampler.cpp"
    "xarc.cpp"
    "xarc3dwall.cpp"
    "xarchmatchprop.cpp"
    "xarcsection.cpp"
    "xarcwallunit.cpp"
    "xasdkcustomcontext.cpp"
    "xasdkcustomsubentitytraits.cpp"
    "xasdkcustomworlddraw.cpp"
    "xasdkcustomworldgeometry.cpp"
    "xasdkshelldata.cpp"
    "xaslibman.cpp"
    "xastring.cpp"
    "xastringlist.cpp"
    "xbitmaplib.cpp"
    "xblockgeominfo.cpp"
    "xblocktable.cpp"
    "xblocktablerecordzone.cpp"
    "xcell.cpp"
    "xcircle.cpp"
    "xcolorsolid.cpp"
    "xcompresslib.cpp"
    "xconfigbase.cpp"
    "xcovervisiblerelationcal.cpp"
    "xcurve.cpp"
    "xcurveintersection.cpp"
    "xcurveobject.cpp"
    "xcurveobjectex.cpp"
    "xcurveseginters.cpp"
    "xcurvesegment.cpp"
    "xcurvestream.cpp"
    "xdcclip.cpp"
    "xdccurvesegment.cpp"
    "xdcobject.cpp"
    "xdcpline.cpp"
    "xdcstream.cpp"
    "xdirectioncurve.cpp"
    "xdrawinglib.cpp"
    "xdrduplinenode.cpp"
    "xedjig.cpp"
    "xentity.cpp"
    "xexplodestream.cpp"
    "xexplodestreambase.cpp"
    "xglobalcurvefunc.cpp"
    "xglobalfunc.cpp"
    "xhatch.cpp"
    "xholemodel.cpp"
    "ximagebuf.cpp"
    "ximagebuflist.cpp"
    "xjpeglib.cpp"
    "xlayertable.cpp"
    "xline.cpp"
    "xlinearent.cpp"
    "xlinedist.cpp"
    "xmasterproperties.cpp"
    "xmltree.cpp"
    "xnumeric.cpp"
    "xpathparser.cpp"
    "xpface.cpp"
    "xplane.cpp"
    "xpoint.cpp"
    "xpointdir2d.cpp"
    "xpointlist.cpp"
    "xpoly.cpp"
    "xpoly2d.cpp"
    "xpoly3d.cpp"
    "xpolydist.cpp"
    "xpolyfacet.cpp"
    "xpolygonex.cpp"
    "xprivateglobalfunc.cpp"
    "xpushdc.cpp"
    "xpushmmunit.cpp"
    "xpushprec.cpp"
    "xpushundo.cpp"
    "xrdupcurve.cpp"
    "xrectangle.cpp"
    "xrectface.cpp"
    "xregion.cpp"
    "xregion2d.cpp"
    "xregionindex.cpp"
    "xregionside.cpp"
    "xremovedupbylayer.cpp"
    "xscreendc.cpp"
    "xsearchregionfromcurve.cpp"
    "xsector.cpp"
    "xshowextend.cpp"
    "xsidevector.cpp"
    "xslidelib.cpp"
    "xsolid.cpp"
    "xsolidcurve.cpp"
    "xsortedvertexlist.cpp"
    "xsortsideonvertex.cpp"
    "xstaticbuffer.cpp"
    "xstreamfile.cpp"
    "xsymbollist.cpp"
    "xtempzoomwindow.cpp"
    "xtriangle.cpp"
    "xtrianglepface.cpp"
    "xucsstream.cpp"
    "xwcsstream.cpp"
    "xwstring.cpp"
    "xwstringlist.cpp"
    "AdsXRx.rc"
    # adsxrx.def
)
add_def_file_name(SOURCES "adsxrx")

add_library(AdsXRx SHARED ${SOURCES})
target_include_directories(AdsXRx PRIVATE "${CMAKE_SOURCE_DIR}/inc/AdsXRx")
target_precompile_headers(AdsXRx PRIVATE StdAfx.h)
target_link_objectarx(AdsXRx GRID_EXPORT)
target_compile_definitions(AdsXRx PRIVATE AOL)
target_set_name_and_suffix(AdsXRx "AdsXRx" ".arx")
set_debug_post_build(AdsXRx "AdsXRx" ".arx")