| cmake_minimum_required(VERSION 3.1) |
| |
| project(PdnPinDumper |
| LANGUAGES CXX |
| ) |
| |
| set(CMAKE_CXX_STANDARD 17) |
| set(CMAKE_CXX_STANDARD_REQUIRED ON) |
| set(CMAKE_CXX_EXTENSIONS OFF) |
| |
| |
| if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3) |
| message(FATAL_ERROR "PdnPinDumper requires GCC 7 and above! \nuse -DCMAKE_CXX_COMPILER to assign your compiler path") |
| endif() |
| |
| |
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3") |
| set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb") |
| set(CMAKE_CXX_FLAGS_RELEASE "-O3") |
| |
| set(THREADS_PREFER_PTHREAD_FLAG ON) |
| |
| set(FLEXROUTE_HOME ${PROJECT_SOURCE_DIR} ) |
| |
| set(DEFLIB_HOME |
| ${PROJECT_SOURCE_DIR}/module/def/5.8-p029 |
| ) |
| set(LEFLIB_HOME |
| ${PROJECT_SOURCE_DIR}/module/lef/5.8-p029 |
| ) |
| |
| ## include subdirectories |
| add_subdirectory(${DEFLIB_HOME}) |
| add_subdirectory(${LEFLIB_HOME}) |
| |
| |
| ## configure settings |
| find_package(ZLIB REQUIRED) |
| find_package(BISON REQUIRED) |
| |
| find_package(Boost 1.68.0 REQUIRED) |
| find_package(Threads REQUIRED) |
| |
| set (FLEXROUTE_SRC |
| ${FLEXROUTE_HOME}/src/global.cpp |
| ${FLEXROUTE_HOME}/src/drc/frDRC_util.cpp |
| ${FLEXROUTE_HOME}/src/drc/frDRC_setup.cpp |
| ${FLEXROUTE_HOME}/src/drc/frDRC_init.cpp |
| ${FLEXROUTE_HOME}/src/drc/frDRC_main.cpp |
| ${FLEXROUTE_HOME}/src/io/io_guide.cpp |
| ${FLEXROUTE_HOME}/src/io/frAPG.cpp |
| ${FLEXROUTE_HOME}/src/io/io_parser_helper.cpp |
| ${FLEXROUTE_HOME}/src/io/io.cpp |
| ${FLEXROUTE_HOME}/src/io/defw.cpp |
| ${FLEXROUTE_HOME}/src/io/io_pin.cpp |
| ${FLEXROUTE_HOME}/src/io/frPinPrep.cpp |
| ${FLEXROUTE_HOME}/src/io/frShapeUtil.cpp |
| ${FLEXROUTE_HOME}/src/dr/FlexGridGraph.cpp |
| ${FLEXROUTE_HOME}/src/dr/FlexGridGraph_maze.cpp |
| ${FLEXROUTE_HOME}/src/dr/FlexDR.cpp |
| ${FLEXROUTE_HOME}/src/dr/FlexDR_maze.cpp |
| ${FLEXROUTE_HOME}/src/dr/FlexDR_end.cpp |
| ${FLEXROUTE_HOME}/src/dr/FlexDR_init.cpp |
| ${FLEXROUTE_HOME}/src/dr/FlexDR_conn.cpp |
| ${FLEXROUTE_HOME}/src/dr/FlexDR_rq.cpp |
| ${FLEXROUTE_HOME}/src/FlexRoute.cpp |
| ${FLEXROUTE_HOME}/src/ta/FlexTA_rq.cpp |
| ${FLEXROUTE_HOME}/src/ta/FlexTA_assign.cpp |
| ${FLEXROUTE_HOME}/src/ta/FlexTA_end.cpp |
| ${FLEXROUTE_HOME}/src/ta/FlexTA_init.cpp |
| ${FLEXROUTE_HOME}/src/ta/FlexTA.cpp |
| ${FLEXROUTE_HOME}/src/frRegionQuery.cpp |
| ${FLEXROUTE_HOME}/src/utility.cpp |
| ${FLEXROUTE_HOME}/src/main.cpp |
| ${FLEXROUTE_HOME}/src/db/obj/frInst.cpp |
| ${FLEXROUTE_HOME}/src/db/obj/frPin.cpp |
| ${FLEXROUTE_HOME}/src/db/obj/frShape.cpp |
| ${FLEXROUTE_HOME}/src/db/obj/frVia.cpp |
| ${FLEXROUTE_HOME}/src/db/taObj/taTrack.cpp |
| ${FLEXROUTE_HOME}/src/db/taObj/taShape.cpp |
| ${FLEXROUTE_HOME}/src/db/infra/frBox.cpp |
| ${FLEXROUTE_HOME}/src/db/infra/frTime.cpp |
| ${FLEXROUTE_HOME}/src/db/infra/frTime_helper.cpp |
| ${FLEXROUTE_HOME}/src/db/infra/frPoint.cpp |
| ${FLEXROUTE_HOME}/src/db/drObj/drVia.cpp |
| ${FLEXROUTE_HOME}/src/db/drObj/drShape.cpp |
| ) |
| |
| |
| set (FLEXROUTE_HEADER |
| ${FLEXROUTE_HOME}/src/drc/frDRC.h |
| ${FLEXROUTE_HOME}/src/FlexRoute.h |
| ${FLEXROUTE_HOME}/src/io/frGuidePrep.h |
| ${FLEXROUTE_HOME}/src/io/frAPG.h |
| ${FLEXROUTE_HOME}/src/io/frPinPrep.h |
| ${FLEXROUTE_HOME}/src/io/io.h |
| ${FLEXROUTE_HOME}/src/io/frShapeUtil.h |
| ${FLEXROUTE_HOME}/src/io/frUtil.h |
| ${FLEXROUTE_HOME}/src/frRegionQuery.h |
| ${FLEXROUTE_HOME}/src/frDesign.h |
| ${FLEXROUTE_HOME}/src/frBaseTypes.h |
| ${FLEXROUTE_HOME}/src/dr/FlexDR.h |
| ${FLEXROUTE_HOME}/src/dr/FlexGridGraph.h |
| ${FLEXROUTE_HOME}/src/dr/FlexWavefront.h |
| ${FLEXROUTE_HOME}/src/dr/FlexRegionQuery.h |
| ${FLEXROUTE_HOME}/src/dr/FlexMazeTypes.h |
| ${FLEXROUTE_HOME}/src/ta/FlexTA.h |
| ${FLEXROUTE_HOME}/src/FlexAccessPattern.h |
| ${FLEXROUTE_HOME}/src/global.h |
| ${FLEXROUTE_HOME}/src/db/obj/frTrackPattern.h |
| ${FLEXROUTE_HOME}/src/db/obj/frPin.h |
| ${FLEXROUTE_HOME}/src/db/obj/frInstTerm.h |
| ${FLEXROUTE_HOME}/src/db/obj/frMarker.h |
| ${FLEXROUTE_HOME}/src/db/obj/frRef.h |
| ${FLEXROUTE_HOME}/src/db/obj/frFig.h |
| ${FLEXROUTE_HOME}/src/db/obj/frTerm.h |
| ${FLEXROUTE_HOME}/src/db/obj/frBoundary.h |
| ${FLEXROUTE_HOME}/src/db/obj/frBlock.h |
| ${FLEXROUTE_HOME}/src/db/obj/frVia.h |
| ${FLEXROUTE_HOME}/src/db/obj/frInst.h |
| ${FLEXROUTE_HOME}/src/db/obj/frShape.h |
| ${FLEXROUTE_HOME}/src/db/obj/frGuide.h |
| ${FLEXROUTE_HOME}/src/db/obj/frBlockObject.h |
| ${FLEXROUTE_HOME}/src/db/obj/frInstBlockage.h |
| ${FLEXROUTE_HOME}/src/db/obj/frNet.h |
| ${FLEXROUTE_HOME}/src/db/obj/frBlockage.h |
| ${FLEXROUTE_HOME}/src/db/obj/frCMap.h |
| ${FLEXROUTE_HOME}/src/db/taObj/taShape.h |
| ${FLEXROUTE_HOME}/src/db/taObj/taFig.h |
| ${FLEXROUTE_HOME}/src/db/taObj/taVia.h |
| ${FLEXROUTE_HOME}/src/db/taObj/taTrack.h |
| ${FLEXROUTE_HOME}/src/db/taObj/taBlockObject.h |
| ${FLEXROUTE_HOME}/src/db/taObj/taPin.h |
| ${FLEXROUTE_HOME}/src/db/infra/frBox.h |
| ${FLEXROUTE_HOME}/src/db/infra/frOrient.h |
| ${FLEXROUTE_HOME}/src/db/infra/frPrefRoutingDir.h |
| ${FLEXROUTE_HOME}/src/db/infra/frSegStyle.h |
| ${FLEXROUTE_HOME}/src/db/infra/frTime.h |
| ${FLEXROUTE_HOME}/src/db/infra/frPoint.h |
| ${FLEXROUTE_HOME}/src/db/infra/frTransform.h |
| ${FLEXROUTE_HOME}/src/db/tech/frTechObject.h |
| ${FLEXROUTE_HOME}/src/db/tech/frConstraint.h |
| ${FLEXROUTE_HOME}/src/db/tech/frLayer.h |
| ${FLEXROUTE_HOME}/src/db/tech/frLookupTbl.h |
| ${FLEXROUTE_HOME}/src/db/tech/frViaRuleGenerate.h |
| ${FLEXROUTE_HOME}/src/db/tech/frViaDef.h |
| ${FLEXROUTE_HOME}/src/db/drObj/drBlockObject.h |
| ${FLEXROUTE_HOME}/src/db/drObj/drNet.h |
| ${FLEXROUTE_HOME}/src/db/drObj/drFig.h |
| ${FLEXROUTE_HOME}/src/db/drObj/drVia.h |
| ${FLEXROUTE_HOME}/src/db/drObj/drMarker.h |
| ${FLEXROUTE_HOME}/src/db/drObj/drShape.h |
| ${FLEXROUTE_HOME}/src/db/drObj/drRef.h |
| ${FLEXROUTE_HOME}/src/db/drObj/drAccessPattern.h |
| ${FLEXROUTE_HOME}/src/db/drObj/drPin.h |
| ) |
| |
| ############################################################ |
| # include directories |
| ############################################################ |
| include_directories( |
| ${BOOST_INCLUDEDIR} |
| ${BOOST_ROOT}/include |
| |
| ${DEFLIB_HOME}/def |
| ${DEFLIB_HOME}/defzlib |
| ${DEFLIB_HOME}/cdef |
| ${DEFLIB_HOME}/cdefzlib |
| |
| ${LEFLIB_HOME}/lef |
| ${LEFLIB_HOME}/lefzlib |
| ${LEFLIB_HOME}/clef |
| ${LEFLIB_HOME}/clefzlib |
| |
| ${FLEXROUTE_HOME}/src |
| ) |
| |
| ############################################################ |
| # Create a library |
| ############################################################ |
| add_library( flexroutelib STATIC |
| ${FLEXROUTE_SRC} |
| ) |
| |
| set_target_properties( flexroutelib |
| PROPERTIES OUTPUT_NAME "flexroute" |
| ) |
| |
| ############################################################ |
| # Create an executable |
| ############################################################ |
| add_executable( PdnPinDumper |
| ${FLEXROUTE_SRC} |
| ) |
| |
| add_dependencies( PdnPinDumper def ) |
| add_dependencies( PdnPinDumper lef ) |
| |
| add_dependencies( flexroutelib def ) |
| add_dependencies( flexroutelib lef ) |
| |
| target_link_libraries( PdnPinDumper |
| PUBLIC |
| def |
| #defzlib |
| #cdef |
| #cdefzlib |
| lef |
| #lefzlib |
| #clef |
| #clefzlib |
| |
| ${ZLIB_LIBRARIES} |
| Threads::Threads |
| -static |
| ) |
| |
| ############################################################ |
| # Install |
| ############################################################ |
| |
| install(FILES ${FLEXROUTE_HEADER} DESTINATION include) |
| install(TARGETS PdnPinDumper DESTINATION bin) |
| install(TARGETS PdnPinDumper DESTINATION lib) |
| |
| |