cmake_minimum_required(VERSION 3.16)

project(wfK)

set(SOURCES
    "./arxmain.cpp"
    "./AxisNoParser.cpp"
    "./BatchSaveAsFileForFolder.cpp"
    "./CFindDupWallDlg.cpp"
    "./CFindShortWallDlg.cpp"
    "./CProtectSetDlg.cpp"
    "./DbEquipmentBox.cpp"
    "./DbFloorRect.cpp"
    "./ExportOldVer.cpp"
    "./FindParser.cpp"
    "./FromAshome.cpp"
    "./global.cpp"
    "./GlobalTemp.cpp"
    "./GlwCAcUiDialog.cpp"
    "./GlwSkin.cpp"
    "./GlwSubclassWnd.cpp"
    "./InitDimStyle.cpp"
    "./InitLay.cpp"
    "./InitTextStyle.cpp"
    "./Onload.cpp"
    "./OpeningLabelData.cpp"
    "./PolyMeshTool.cpp"
    "./StdAfx.cpp"
    "./TAecSpaceCell.cpp"
    "./TAecSpaceWall.cpp"
    "./TArchAppDocGlobals.cpp"
    "./TArchCmdReactor.cpp"
    "./TArchDbReactor.cpp"
    "./TArchDocReactor.cpp"
    "./TArchLayoutReactor.cpp"
    "./TArchPerBlockData.cpp"
    "./TArchPerDocData.cpp"
    "./TAssocMsg.cpp"
    "./TAssocMsgContainer.cpp"
    "./TBaseWallIntegrateTool.cpp"
    "./TBaseWallLine.cpp"
    "./TCheckFloorRectData.cpp"
    "./tchKernalGlobalFunc.cpp"
    "./TColumnData.cpp"
    "./TCombForceData.cpp"
    "./TCombSectForceData.cpp"
    "./TConfigInfo.cpp"
    "./TCrackData.cpp"
    "./TDbAreaRedLine.cpp"
    "./TDbBaseWall.cpp"
    "./TDbColumn.cpp"
    "./TDbExtentsZoneCell.cpp"
    "./TDbExtentsZoneTable.cpp"
    "./TDbExtentsZoneTableRecord.cpp"
    "./TDbInSight.cpp"
    "./TDbObjMakeAssoc.cpp"
    "./TDbProtectEntity.cpp"
    "./TDbSection.cpp"
    "./TDbSectionPathSign.cpp"
    "./TDbStruBarBase.cpp"
    "./TDbStruBeam.cpp"
    "./TDbStruColumn.cpp"
    "./TDbStruEntityBase.cpp"
    "./TDbStruFloorSlab.cpp"
    "./TDbStruHole.cpp"
    "./TDbStruNodePoint.cpp"
    "./TDbStruReinBar.cpp"
    "./TDbStruSelfBase.cpp"
    "./TDbStruSlabHole.cpp"
    "./TDbStruSymbFocus.cpp"
    "./TDbStruSymbInsitu.cpp"
    "./TDbStruWall.cpp"
    "./TDbWall.cpp"
    "./TDbWallPatch.cpp"
    "./TDonotMonitorMe.cpp"
    "./TExportFileDlg.cpp"
    "./TForce.cpp"
    "./TGGeVisibilityPoly2D.cpp"
    "./TGGiWallVector.cpp"
    "./TGKatana.cpp"
    "./TReinData.cpp"
    "./TReinSectData.cpp"
    "./TSearchSpaceFromWall.cpp"
    "./TSectForceVal.cpp"
    "./TSortWallOnPt.cpp"
    "./TStruLoad.cpp"
    "./TWallBase.cpp"
    "./TWallData.cpp"
    "./BayWindow.cpp"
    "./DbApron.cpp"
    "./dbAscent.cpp"
    "./DbAxisNo.cpp"
    "./dbBalcony.cpp"
    "./DbBandWin.cpp"
    "./dbCamera.cpp"
    "./DbConfig.cpp"
    "./DbCornerWin.cpp"
    "./DbCurtainWall.cpp"
    "./DbCurveMesh.cpp"
    "./DbCurveMesh2.cpp"
    "./dbDimension.cpp"
    "./DbDormer.cpp"
    "./DbDrawingName.cpp"
    "./dbGridSheet.cpp"
    "./DbGroupOpening.cpp"
    "./DbLandform.cpp"
    "./DbMultiViewInsert.cpp"
    "./DbNetShelf.cpp"
    "./dbopening.cpp"
    "./DbOpeningSlot.cpp"
    "./DbPolyMesh.cpp"
    "./DbPolyMesh2.cpp"
    "./DbPolyPathArray.cpp"
    "./DbPolyPathEnt.cpp"
    "./dbPromptMark.cpp"
    "./dbRail.cpp"
    "./DbRect.cpp"
    "./dbSlab.cpp"
    "./DbSlope.cpp"
    "./DbSpace.cpp"
    "./dbstep.cpp"
    "./dbSymbolAnnotate.cpp"
    "./dbtext.cpp"
    "./dbVertSlab.cpp"
    "./Openingdata.cpp"
    "./SolidData.cpp"
    "./SpaceData.cpp"
    "./Tch3DSolid.cpp"
    "./TDbRegion.cpp"
    "./TLampDim.cpp"
    "./TWireDim.cpp"
    "./dbAutoStair.cpp"
    "./dbCornerStair.cpp"
    "./dbCrossStair.cpp"
    "./dbDoubleMulStair.cpp"
    "./dbHandRail.cpp"
    "./DbMultiStair.cpp"
    "./dbParallelStair.cpp"
    "./dbRectCornerStair.cpp"
    "./DbRectStair.cpp"
    "./dbScissorsStair.cpp"
    "./dbStair.cpp"
    "./dbTriangleStair.cpp"
    "./aecroof.cpp"
    "./DbSlopeRoof.cpp"
    "./WallSplitInfo.cpp"
    "DataLoadAndSave.cpp"
    "anotate_export.cpp"
    "exportFunctions.cpp"
    "CaptionButton.cpp"
    "DictConfig.cpp"
    "EdJigEx.cpp"
    "excel9.cpp"
    "GsPreviewCtrl.cpp"
    "InsertBlockDlg.cpp"
    "msword8.cpp"
    "PatEdit.cpp"
    "Project.cpp"
    "TchBaseDlg.cpp"
    "TchInitSet1Dlg.cpp"
    "texceloperator.cpp"
    "TExcelOperatorMuster.cpp"
    "WDGrid.cpp"
    "WGroupCtrl.cpp"
    "WGroupDlg.cpp"
    "WordApplication.cpp"
    "XMLDOMFile.cpp"
    "XMLDOMNode.cpp"
    "XMLDOMNodes.cpp"
    "shs_kernal.rc"
    # "wfk.def"
)
add_def_file_name(SOURCES "wfk")

add_library(wfK SHARED ${SOURCES})

target_set_name_and_suffix(wfK "wfK" ".arx")

target_compile_definitions(wfK PRIVATE
    ACRXAPP
    AEC_KERNAL
    APPNAME="_ASAEC"
    ARCH=1
    TAR_LANGUAGE=1
    TDS=7
    _AFXDLL
    _AFXEXT
)

target_link_options(wfK PRIVATE 
        "/NODEFAULTLIB:LIBCMT"      # 忽略 Release 版静态 CRT
        "/NODEFAULTLIB:nafxcw.lib"  # 忽略 Release 版静态 MFC
        "/NODEFAULTLIB:libc.lib"    # 忽略极其古老的 C 库
    )

simple_link_cad_sdk(wfK)

target_link_libraries(wfK PRIVATE
    shs_ximage
    shs_dbf
    shs_GeLib
    shs_subgeLib
    "HtmlHelp.lib"
    ThirdParty::TG
)

target_precompile_headers(wfK PRIVATE StdAfx.h)

set_debug_post_build(wfK "wfK" ".arx")