diff --git a/CMakeLists.txt b/CMakeLists.txt index 213f4ab9..773dc103 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,7 @@ project(STA VERSION 2.3.0 LANGUAGES CXX ) +option(USE_CUDD "Use CUDD BDD package") option(CUDD_DIR "CUDD BDD package directory") set(CMAKE_VERBOSE_MAKEFILE ON) @@ -381,27 +382,29 @@ find_package(Threads) # Locate CUDD bdd package. # set(CUDD 0) -find_library(CUDD_LIB - NAME cudd - PATHS ${CUDD_DIR} - PATH_SUFFIXES lib lib/cudd - ) -if (CUDD_LIB) - message(STATUS "CUDD library: ${CUDD_LIB}") - get_filename_component(CUDD_LIB_DIR "${CUDD_LIB}" PATH) - get_filename_component(CUDD_LIB_PARENT1 "${CUDD_LIB_DIR}" PATH) - find_file(CUDD_HEADER cudd.h - PATHS ${CUDD_LIB_PARENT1}/include ${CUDD_LIB_PARENT1}/include/cudd) - if (CUDD_HEADER) - get_filename_component(CUDD_INCLUDE "${CUDD_HEADER}" PATH) - message(STATUS "CUDD header: ${CUDD_HEADER}") - # CUDD referenced by StaConfig.hh.cmake - set(CUDD 1) +if (USE_CUDD) + find_library(CUDD_LIB + NAME cudd + PATHS ${CUDD_DIR} + PATH_SUFFIXES lib lib/cudd + ) + if (CUDD_LIB) + message(STATUS "CUDD library: ${CUDD_LIB}") + get_filename_component(CUDD_LIB_DIR "${CUDD_LIB}" PATH) + get_filename_component(CUDD_LIB_PARENT1 "${CUDD_LIB_DIR}" PATH) + find_file(CUDD_HEADER cudd.h + PATHS ${CUDD_LIB_PARENT1}/include ${CUDD_LIB_PARENT1}/include/cudd) + if (CUDD_HEADER) + get_filename_component(CUDD_INCLUDE "${CUDD_HEADER}" PATH) + message(STATUS "CUDD header: ${CUDD_HEADER}") + # CUDD referenced by StaConfig.hh.cmake + set(CUDD 1) + else() + message(STATUS "CUDD header: not found") + endif() else() - message(STATUS "CUDD header: not found") + message(STATUS "CUDD library: not found") endif() -else() - message(STATUS "CUDD library: not found") endif() if("${SSTA}" STREQUAL "") diff --git a/README.md b/README.md index da8b87a1..177b4f69 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,7 @@ or [here](https://sourceforge.net/projects/cudd-mirror/). Note that the file hierarchy of the CUDD installation changed with version 3.0. Some changes to CMakeLists.txt are required to support older versions. +Use the USE_CUDD option to look for the cudd library. Use the CUDD_DIR option to set the install directory if it is not in one of the normal install directories. @@ -105,7 +106,7 @@ make make install cd /build -cmake .. -DCUDD_DIR=$HOME/cudd +cmake .. -DUSE_CUDD -DCUDD_DIR=$HOME/cudd ``` The Zlib library is an optional. If CMake finds libz, OpenSTA can