OpenSTA/CMakeLists.txt

710 lines
17 KiB
CMake
Raw Normal View History

2019-01-17 00:37:31 +01:00
# Parallax Static Timing Analyzer
2019-01-06 01:44:56 +01:00
# Copyright (c) 2019, Parallax Software, Inc.
2019-01-17 00:37:31 +01:00
# All rights reserved.
2019-01-06 01:44:56 +01:00
#
2019-01-17 00:37:31 +01:00
# No part of this document may be copied, transmitted or
# disclosed in any form or fashion without the express
# written consent of Parallax Software, Inc.
2019-01-06 01:44:56 +01:00
2019-01-01 21:27:23 +01:00
cmake_minimum_required (VERSION 3.9)
2019-01-17 00:37:31 +01:00
project(STA VERSION 2.0.5)
2019-01-01 21:27:23 +01:00
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(STA_HOME ${PROJECT_SOURCE_DIR})
message(STATUS "STA version: ${PROJECT_VERSION}")
# Default to bulding optimnized/release executable.
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE RELEASE)
endif()
message(STATUS "Host system: ${CMAKE_HOST_SYSTEM}")
message(STATUS "Compiler version: ${CMAKE_CXX_COMPILER_VERSION}")
message(STATUS "Compiler ID: ${CMAKE_CXX_COMPILER_ID}")
message(STATUS "Compiler path: ${CMAKE_CXX_COMPILER}")
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
message(STATUS "System name: ${CMAKE_SYSTEM_NAME}")
message(STATUS "CXX flags DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}")
message(STATUS "CXX flags RELEASE: ${CMAKE_CXX_FLAGS_RELEASE}")
message(STATUS "CXX flags RELWITHDEBINFO: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
message(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}")
################################################################
#
# Source files.
#
################################################################
set(STA_SOURCE
app/StaMain.cc
app/StaApp_wrap.cc
app/TclInitVar.cc
app/StaApp_wrap.cc
dcalc/ArcDelayCalc.cc
dcalc/ArnoldiDelayCalc.cc
dcalc/ArnoldiReduce.cc
dcalc/DcalcAnalysisPt.cc
dcalc/DelayCalc.cc
dcalc/DmpCeff.cc
dcalc/DmpDelayCalc.cc
dcalc/GraphDelayCalc.cc
dcalc/GraphDelayCalc1.cc
dcalc/LumpedCapDelayCalc.cc
dcalc/NetCaps.cc
dcalc/RCDelayCalc.cc
dcalc/SimpleRCDelayCalc.cc
dcalc/UnitDelayCalc.cc
graph/Delay.cc
graph/DelayFloat.cc
graph/DelayNormal2.cc
graph/Graph.cc
graph/GraphCmp.cc
liberty/EquivCells.cc
liberty/FuncExpr.cc
liberty/InternalPower.cc
liberty/LeakagePower.cc
liberty/Liberty.cc
liberty/LibertyBuilder.cc
liberty/LibertyExpr.cc
liberty/LibertyExpr.hh
liberty/LibertyExprLex.cc
liberty/LibertyExprParse.cc
liberty/LibertyExprPvt.hh
liberty/LibertyLex.cc
liberty/LibertyParse.cc
liberty/LibertyParser.cc
liberty/LibertyReader.cc
liberty/LinearModel.cc
liberty/Sequential.cc
liberty/TableModel.cc
liberty/TimingArc.cc
liberty/TimingRole.cc
liberty/Transition.cc
liberty/Units.cc
liberty/Wireload.cc
network/ConcreteLibrary.cc
network/ConcreteNetwork.cc
network/HpinDrvrLoad.cc
network/Network.cc
network/NetworkCmp.cc
network/ParseBus.cc
network/PortDirection.cc
network/SdcNetwork.cc
network/VerilogNamespace.cc
parasitics/ConcreteParasitics.cc
parasitics/EstimateParasitics.cc
parasitics/NullParasitics.cc
parasitics/Parasitics.cc
parasitics/ReduceParasitics.cc
parasitics/SpefLex.cc
parasitics/SpefNamespace.cc
parasitics/SpefParse.cc
parasitics/SpefReader.cc
parasitics/SpefReaderPvt.hh
sdc/Clock.cc
sdc/ClockGatingCheck.cc
sdc/ClockGroups.cc
sdc/ClockInsertion.cc
sdc/ClockLatency.cc
sdc/CycleAccting.cc
sdc/DataCheck.cc
sdc/DeratingFactors.cc
sdc/DisabledPorts.cc
sdc/ExceptionPath.cc
sdc/InputDrive.cc
sdc/PinPair.cc
sdc/PortDelay.cc
sdc/PortExtCap.cc
sdc/RiseFallMinMax.cc
sdc/RiseFallValues.cc
sdc/Sdc.cc
sdc/SdcCmdComment.cc
sdc/WriteSdc.cc
sdf/ReportAnnotation.cc
sdf/SdfReader.cc
sdf/SdfParse.cc
sdf/SdfLex.cc
sdf/SdfWriter.cc
search/Bfs.cc
search/CheckMaxSkews.cc
search/CheckMinPeriods.cc
search/CheckMinPulseWidths.cc
search/CheckSlewLimits.cc
search/CheckTiming.cc
search/ClkInfo.cc
search/ClkSkew.cc
search/Corner.cc
search/Crpr.cc
search/FindRegister.cc
search/GatedClk.cc
search/Genclks.cc
search/Latches.cc
search/Levelize.cc
search/Path.cc
search/PathAnalysisPt.cc
search/PathEnd.cc
search/PathEnum.cc
search/PathEnumed.cc
search/PathExpanded.cc
search/PathGroup.cc
search/PathRef.cc
search/PathVertex.cc
search/PathVertexRep.cc
search/Power.cc
search/Property.cc
search/ReportPath.cc
search/Search.cc
search/SearchPred.cc
search/Sim.cc
search/Sta.cc
search/StaState.cc
search/Tag.cc
search/TagGroup.cc
search/VertexVisitor.cc
search/VisitPathEnds.cc
search/VisitPathGroupVertices.cc
search/WorstSlack.cc
2019-01-04 01:14:15 +01:00
search/WritePathSpice.cc
2019-01-01 21:27:23 +01:00
util/Condition.cc
util/Debug.cc
util/Error.cc
util/Fuzzy.cc
util/Machine.cc
util/MinMax.cc
util/Mutex.cc
util/PatternMatch.cc
util/Pthread.cc
util/ReadWriteLock.cc
util/Report.cc
util/ReportStd.cc
util/ReportTcl.cc
util/Stats.cc
util/StringSeq.cc
util/StringSet.cc
util/StringUtil.cc
util/Thread.cc
util/ThreadException.cc
util/ThreadPool.cc
util/ThreadWorker.cc
util/TokenParser.cc
verilog/VerilogReader.cc
verilog/VerilogLex.cc
verilog/VerilogParse.cc
)
set(STA_HEADERS
app/StaMain.hh
dcalc/ArcDelayCalc.hh
dcalc/Arnoldi.hh
dcalc/ArnoldiDelayCalc.hh
dcalc/ArnoldiReduce.hh
dcalc/DelayCalc.hh
dcalc/DcalcAnalysisPt.hh
dcalc/DmpCeff.hh
dcalc/DmpDelayCalc.hh
dcalc/GraphDelayCalc.hh
dcalc/GraphDelayCalc1.hh
dcalc/LumpedCapDelayCalc.hh
dcalc/NetCaps.hh
dcalc/RCDelayCalc.hh
dcalc/SimpleRCDelayCalc.hh
dcalc/UnitDelayCalc.hh
graph/Delay.hh
graph/DelayFloat.hh
graph/DelayNormal2.hh
graph/Graph.hh
graph/GraphClass.hh
graph/GraphCmp.hh
liberty/EquivCells.hh
liberty/FuncExpr.hh
liberty/InternalPower.hh
liberty/LeakagePower.hh
liberty/Liberty.hh
liberty/LibertyBuilder.hh
liberty/LibertyClass.hh
liberty/LibertyParser.hh
liberty/LibertyReader.hh
liberty/LibertyReaderPvt.hh
liberty/LinearModel.hh
liberty/Sequential.hh
liberty/TableModel.hh
liberty/TimingArc.hh
liberty/TimingModel.hh
liberty/TimingRole.hh
liberty/Transition.hh
liberty/Units.hh
liberty/Wireload.hh
network/ConcreteLibrary.hh
network/ConcreteNetwork.hh
network/HpinDrvrLoad.hh
network/MakeConcreteNetwork.hh
network/Network.hh
network/NetworkClass.hh
network/NetworkCmp.hh
network/ParseBus.hh
network/PortDirection.hh
network/SdcNetwork.hh
network/VerilogNamespace.hh
parasitics/ConcreteParasitics.hh
parasitics/ConcreteParasiticsPvt.hh
parasitics/EstimateParasitics.hh
parasitics/MakeConcreteParasitics.hh
parasitics/NullParasitics.hh
parasitics/Parasitics.hh
parasitics/ParasiticsClass.hh
parasitics/ReduceParasitics.hh
parasitics/SpefNamespace.hh
parasitics/SpefReader.hh
sdc/Clock.hh
sdc/ClockGatingCheck.hh
sdc/ClockGroups.hh
sdc/ClockInsertion.hh
sdc/ClockLatency.hh
sdc/CycleAccting.hh
sdc/DataCheck.hh
sdc/DeratingFactors.hh
sdc/DisabledPorts.hh
sdc/ExceptionPath.hh
sdc/InputDrive.hh
sdc/MinMaxValues.hh
sdc/PinPair.hh
sdc/PortDelay.hh
sdc/PortExtCap.hh
sdc/RiseFallMinMax.hh
sdc/RiseFallValues.hh
sdc/Sdc.hh
sdc/SdcClass.hh
sdc/SdcCmdComment.hh
sdc/WriteSdc.hh
sdc/WriteSdcPvt.hh
sdf/ReportAnnotation.hh
sdf/Sdf.hh
sdf/SdfReader.hh
sdf/SdfWriter.hh
search/Bfs.hh
search/CheckMaxSkews.hh
search/CheckMinPeriods.hh
search/CheckMinPulseWidths.hh
search/CheckSlewLimits.hh
search/CheckTiming.hh
search/ClkInfo.hh
search/ClkSkew.hh
search/Corner.hh
search/Crpr.hh
search/FindRegister.hh
search/GatedClk.hh
search/Genclks.hh
search/Latches.hh
search/Levelize.hh
search/Path.hh
search/PathAnalysisPt.hh
search/PathEnd.hh
search/PathEnum.hh
search/PathEnumed.hh
search/PathExpanded.hh
search/PathRef.hh
search/PathGroup.hh
search/PathVertex.hh
search/PathVertexRep.hh
search/Power.hh
search/Property.hh
search/ReportPath.hh
search/Search.hh
search/SearchClass.hh
search/SearchPred.hh
search/Sim.hh
search/Sta.hh
search/StaState.hh
search/Tag.hh
search/TagGroup.hh
search/VertexVisitor.hh
search/VisitPathEnds.hh
search/VisitPathGroupVertices.hh
search/WorstSlack.hh
2019-01-04 01:14:15 +01:00
search/WritePathSpice.hh
2019-01-01 21:27:23 +01:00
util/Condition.hh
util/Debug.hh
util/DisallowCopyAssign.hh
util/Error.hh
util/Fuzzy.hh
util/Hash.hh
util/HashSet.hh
util/HashMap.hh
util/Iterator.hh
util/Machine.hh
util/Map.hh
util/MinMax.hh
util/Mutex.hh
util/ObjectIndex.hh
util/PatternMatch.hh
util/Pthread.hh
util/Pool.hh
util/ReadWriteLock.hh
util/Report.hh
util/ReportStd.hh
util/ReportTcl.hh
util/Set.hh
util/Stats.hh
util/StringSeq.hh
util/StringSet.hh
util/StringUtil.hh
util/Thread.hh
util/ThreadException.hh
util/ThreadForEach.hh
util/ThreadPool.hh
util/ThreadWorker.hh
util/TokenParser.hh
util/UnorderedMap.hh
util/Vector.hh
util/Zlib.hh
verilog/Verilog.hh
verilog/VerilogReader.hh
)
# Source files.
set(STA_TCL_FILES
tcl/Util.tcl
tcl/Graph.tcl
tcl/Liberty.tcl
tcl/Link.tcl
tcl/Network.tcl
tcl/NetworkEdit.tcl
tcl/Sdc.tcl
tcl/Search.tcl
tcl/Cmds.tcl
tcl/Variables.tcl
tcl/Sta.tcl
tcl/Power.tcl
tcl/Splash.tcl
dcalc/DelayCalc.tcl
parasitics/Parasitics.tcl
sdf/Sdf.tcl
verilog/Verilog.tcl
)
set(STA_SWIG_FILES
tcl/NetworkEdit.i
tcl/StaException.i
sdf/Sdf.i
dcalc/DelayCalc.i
parasitics/Parasitics.i
verilog/Verilog.i
tcl/StaTcl.i
app/StaApp.i
)
################################################################
2019-01-06 01:09:27 +01:00
#
2019-01-01 21:27:23 +01:00
# Library dependencies
2019-01-06 01:09:27 +01:00
#
2019-01-01 21:27:23 +01:00
################################################################
2019-01-06 01:09:27 +01:00
# Pthreads
2019-01-01 21:27:23 +01:00
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
find_package(Threads)
set(HAVE_PTHREADS ${CMAKE_USE_PTHREADS_INIT})
2019-01-06 01:09:27 +01:00
if (HAVE_PTHREADS)
message(STATUS "Found pthreads")
endif()
2019-01-01 21:27:23 +01:00
2019-01-06 01:09:27 +01:00
# Zlib
2019-01-01 21:27:23 +01:00
include(FindZLIB)
2019-01-06 01:09:27 +01:00
################################################################
#
# Locate CUDD bdd packagte
# CUDD variable has precidence over environment variable.
if("${CUDD}" STREQUAL "")
set(CUDD $ENV{CUDD})
endif()
if("${CUDD}" STREQUAL "")
set(CUDD_INCLUDE "")
set(CUDD_LIB "")
set(CUDD_FOUND FALSE)
else()
set(CUDD_INCLUDE ${CUDD}/include)
find_library(CUDD_LIB NAMES cudd PATHS ${CUDD}/lib)
2019-01-01 21:27:23 +01:00
if (CUDD_LIB)
2019-01-06 01:09:27 +01:00
# CUDD_FOUND referenced by config.h.cmake
2019-01-01 21:27:23 +01:00
set(CUDD_FOUND TRUE)
message(STATUS "CUDD library: ${CUDD_LIB}")
endif()
endif()
2019-01-06 01:09:27 +01:00
if("${SSTA}" STREQUAL "")
set(SSTA 0)
endif()
message(STATUS "Enable SSTA: ${SSTA}")
2019-01-01 21:27:23 +01:00
# configure a header file to pass some of the CMake settins
2019-01-06 01:09:27 +01:00
configure_file(${STA_HOME}/config.h.cmake
${STA_HOME}/config.h
)
2019-01-01 21:27:23 +01:00
2019-01-06 01:09:27 +01:00
################################################################
#
2019-01-01 21:27:23 +01:00
# Locate TCL library.
#
2019-01-06 01:09:27 +01:00
# Note that the cmake findTcl module is hopeless for OSX
2019-01-01 21:27:23 +01:00
# because there doesn't appear to be a way to override
# searching OSX system directories before unix directories.
set(TCL_POSSIBLE_NAMES tcl87 tcl8.7
tcl86 tcl8.6
tcl85 tcl8.5
tcl84 tcl8.4
tcl83 tcl8.3
tcl82 tcl8.2
)
# tcl lib path guesses.
if (NOT TCL_LIB_PATHS)
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(TCL_LIB_PATHS /usr/local/lib)
set(TCL_NO_DEFAULT_PATH TRUE)
endif()
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(TCL_LIB_PATHS /usr/lib
/usr/local/lib
)
set(TCL_NO_DEFAULT_PATH FALSE)
endif()
if (NOT TCL_LIB)
# bagbiter cmake doesn't have a way to pass NO_DEFAULT_PATH as a parameter.
if (TCL_NO_DEFAULT_PATH)
find_library(TCL_LIB
NAMES tcl ${TCL_POSSIBLE_NAMES}
PATHS ${TCL_LIB_PATHS}
NO_DEFAULT_PATH
)
else()
find_library(TCL_LIB
NAMES tcl ${TCL_POSSIBLE_NAMES}
PATHS ${TCL_LIB_PATHS}
)
endif()
2019-01-06 01:09:27 +01:00
endif()
2019-01-01 21:27:23 +01:00
message(STATUS "TCL lib: ${TCL_LIB}")
get_filename_component(TCL_LIB_DIR "${TCL_LIB}" PATH)
get_filename_component(TCL_LIB_PARENT1 "${TCL_LIB_DIR}" PATH)
get_filename_component(TCL_LIB_PARENT2 "${TCL_LIB_PARENT1}" PATH)
# Locate tcl.h
if (NOT TCL_HEADER)
find_file(TCL_HEADER tcl.h
PATHS ${TCL_LIB_PARENT1} ${TCL_LIB_PARENT2}
PATH_SUFFIXES include include/tcl
NO_DEFAULT_PATH
)
2019-01-06 01:09:27 +01:00
endif()
2019-01-01 21:27:23 +01:00
message(STATUS "TCL header: ${TCL_HEADER}")
get_filename_component(TCL_HEADER_DIR "${TCL_HEADER}" PATH)
2019-01-06 01:09:27 +01:00
################################################################
#
# Flex/bison scanner/parsers
#
2019-01-01 21:27:23 +01:00
################################################################
find_package(FLEX)
find_package(BISON)
2019-01-04 01:14:15 +01:00
# LibertyExpr scan/parse.
bison_target(LibertyExprParser liberty/LibertyExprParse.yy ${STA_HOME}/liberty/LibertyExprParse.cc
DEFINES_FILE ${STA_HOME}/liberty/LibertyExprParse.hh
COMPILE_FLAGS --name-prefix=LibertyExprParse_
)
2019-01-01 21:27:23 +01:00
2019-01-04 01:14:15 +01:00
flex_target(LibertyExprLex liberty/LibertyExprLex.ll ${STA_HOME}/liberty/LibertyExprLex.cc
DEFINES_FILE ${STA_HOME}/liberty/LibertyExprLex.hh
COMPILE_FLAGS --prefix=LibertyExprLex_
2019-01-01 21:27:23 +01:00
)
2019-01-04 01:14:15 +01:00
add_flex_bison_dependency(LibertyExprLex LibertyExprParser)
2019-01-01 21:27:23 +01:00
# Liberty scan/parse.
bison_target(LibertyParser liberty/LibertyParse.yy ${STA_HOME}/liberty/LibertyParse.cc
DEFINES_FILE ${STA_HOME}/liberty/LibertyParse.hh
COMPILE_FLAGS --name-prefix=LibertyParse_
)
2019-01-04 01:14:15 +01:00
flex_target(LibertyLex liberty/LibertyLex.ll ${STA_HOME}/liberty/LibertyLex.cc
DEFINES_FILE ${STA_HOME}/liberty/LibertyLex.hh
COMPILE_FLAGS --prefix=LibertyLex_
)
2019-01-01 21:27:23 +01:00
2019-01-04 01:14:15 +01:00
add_flex_bison_dependency(LibertyLex LibertyParser)
2019-01-01 21:27:23 +01:00
# Spef scan/parse.
bison_target(SpefParser parasitics/SpefParse.yy ${STA_HOME}/parasitics/SpefParse.cc
2019-01-04 01:14:15 +01:00
DEFINES_FILE ${STA_HOME}/parasitics/SpefParse.hh
COMPILE_FLAGS --name-prefix=SpefParse_
)
2019-01-01 21:27:23 +01:00
2019-01-04 01:14:15 +01:00
flex_target(SpefLex parasitics/SpefLex.ll ${STA_HOME}/parasitics/SpefLex.cc
DEFINES_FILE ${STA_HOME}/parasitics/SpefLex.hh
COMPILE_FLAGS --prefix=SpefLex_
)
2019-01-01 21:27:23 +01:00
2019-01-04 01:14:15 +01:00
add_flex_bison_dependency(SpefLex SpefParser)
2019-01-01 21:27:23 +01:00
2019-01-04 01:14:15 +01:00
# Verilog scan/parse.
bison_target(VerilogParser verilog/VerilogParse.yy ${STA_HOME}/verilog/VerilogParse.cc
DEFINES_FILE ${STA_HOME}/verilog/VerilogParse.hh
COMPILE_FLAGS --name-prefix=VerilogParse_
2019-01-01 21:27:23 +01:00
)
2019-01-04 01:14:15 +01:00
flex_target(VerilogLex verilog/VerilogLex.ll ${STA_HOME}/verilog/VerilogLex.cc
DEFINES_FILE ${STA_HOME}/verilog/VerilogLex.hh
COMPILE_FLAGS --prefix=VerilogLex_
)
add_flex_bison_dependency(VerilogLex VerilogParser)
# Sdf scan/parse.
bison_target(SdfParser sdf/SdfParse.yy ${STA_HOME}/sdf/SdfParse.cc
DEFINES_FILE ${STA_HOME}/sdf/SdfParse.hh
COMPILE_FLAGS --name-prefix=SdfParse_
)
flex_target(SdfLex sdf/SdfLex.ll ${STA_HOME}/sdf/SdfLex.cc
DEFINES_FILE ${STA_HOME}/sdf/SdfLex.hh
COMPILE_FLAGS --prefix=SdfLex_
2019-01-01 21:27:23 +01:00
)
2019-01-04 01:14:15 +01:00
add_flex_bison_dependency(SdfLex SdfParser)
2019-01-01 21:27:23 +01:00
################################################################
include(FindSWIG)
add_custom_command(OUTPUT ${STA_HOME}/app/StaApp_wrap.cc
COMMAND ${SWIG_EXECUTABLE} -tcl8 -c++ -namespace -prefix sta -o ${STA_HOME}/app/StaApp_wrap.cc ${STA_HOME}/app/StaApp.i
COMMAND ${STA_HOME}/etc/SwigCleanup.tcl ${STA_HOME}/app/StaApp_wrap.cc
WORKING_DIRECTORY ${STA_HOME}
DEPENDS ${STA_SWIG_FILES}
)
################################################################
2019-01-04 01:14:15 +01:00
# TCL files included as part of the executable are shoved into TclInitVar.cc.
# These files are encoded and shipped as part of the executable
# so that they do not have to be installed on the client host.
add_custom_command(OUTPUT ${STA_HOME}/app/TclInitVar.cc
COMMAND etc/TclEncode.tcl app/TclInitVar.cc tcl_inits ${STA_TCL_FILES}
WORKING_DIRECTORY ${STA_HOME}
DEPENDS ${STA_TCL_FILES} etc/TclEncode.tcl
)
################################################################
2019-01-01 21:27:23 +01:00
set(STA_INCLUDE_DIRS
app
dcalc
dcalc/verilog
graph
liberty
network
parasitics
sdc
sdf
search
util
verilog
. # config.h
${TCL_HEADER_DIR}
${CUDD_INCLUDE}
)
###########################################################
# Library
###########################################################
# compatibility with configure
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${STA_HOME}/app)
add_library(OpenSTA ${STA_SOURCE})
target_include_directories(OpenSTA PUBLIC ${STA_INCLUDE_DIRS})
target_compile_features(OpenSTA
PUBLIC cxx_auto_type
)
###########################################################
# Executable
###########################################################
# compatibility with configure
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${STA_HOME}/app)
# Note executable and lib name cannot be the same because
# on osx something is case insensitive. Using STA for the
# lib name results in "No rule to make target ../depend.
add_executable(sta app/Main.cc)
target_link_libraries(sta
OpenSTA
Threads::Threads
${TCL_LIB}
${CUDD_LIB}
)
if (ZLIB_FOUND)
target_link_libraries(sta ${ZLIB_LIBRARIES})
2019-01-06 01:09:27 +01:00
endif()
2019-01-01 21:27:23 +01:00
message(STATUS "STA executable: ${STA_HOME}/app/sta")
set(STA_COMPILE_OPTIONS -Wall -Wcast-qual -Wunused-parameter -Wno-deprecated-register)
if (CMAKE_CXX_COMPILER_ID MATCHES AppleClang|Clang|GNU)
target_compile_options(OpenSTA PUBLIC ${STA_COMPILE_OPTIONS})
target_compile_options(sta PUBLIC ${STA_COMPILE_OPTIONS})
message(STATUS "Compiler options: ${STA_COMPILE_OPTIONS}")
endif()
################################################################
# Install
# cmake .. -DCMAKE_INSTALL_PREFIX=<prefix_path>
# executable
install(TARGETS sta DESTINATION bin)
# library
install(TARGETS OpenSTA DESTINATION lib)
# include
install(FILES ${STA_HEADERS} DESTINATION include)