From 03a7ef368613cc977c9f63baa48b7cb993204f7e Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 12 Dec 2019 22:31:22 -0700 Subject: [PATCH] cmake simplify finding TCL lib --- CMakeLists.txt | 72 ++++++-------------------------------------------- 1 file changed, 8 insertions(+), 64 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bdfd9a1f..912aeb6c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -504,6 +504,10 @@ add_custom_command(OUTPUT ${STA_TCL_INIT} # ################################################################ +find_package(TCL) +message(STATUS "TCL lib: ${TCL_LIB}") +message(STATUS "TCL header: ${TCL_HEADER}") + # Zlib include(FindZLIB) # Translate cmake bool to StaConfig.h ifdef bool @@ -562,69 +566,6 @@ configure_file(${STA_HOME}/util/StaConfig.hh.cmake ${STA_HOME}/util/StaConfig.hh ) - -################################################################ -# -# Locate TCL library. -# -# Note that the cmake findTcl module is hopeless for OSX -# 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() -endif() -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 - ) -endif() -message(STATUS "TCL header: ${TCL_HEADER}") -get_filename_component(TCL_HEADER_DIR "${TCL_HEADER}" PATH) -include_directories(SYSTEM ${TCL_HEADER_DIR}) - ################################################################ set(STA_INCLUDE_DIRS @@ -670,7 +611,10 @@ add_library(OpenSTA ${BISON_VerilogParser_OUTPUTS} ) -target_include_directories(OpenSTA PUBLIC ${STA_INCLUDE_DIRS}) +target_include_directories(OpenSTA + PUBLIC ${STA_INCLUDE_DIRS} + SYSTEM ${TCL_HEADER_DIR} + ) target_compile_features(OpenSTA PUBLIC cxx_auto_type