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)


