cmake support for bdd package

This commit is contained in:
Vítor Santos Costa 2015-04-20 01:21:19 +01:00
parent e710319c0e
commit 76cd423784
5 changed files with 314 additions and 1 deletions

View File

@ -10,6 +10,8 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
cmake_policy( NO_POLICY_SCOPE )
endif()
set(configurations Debug)
cmake_policy(SET CMP0043 NEW)
project(YAP C CXX)
@ -543,6 +545,10 @@ macro_optional_add_subdirectory (packages/raptor)
macro_optional_add_subdirectory (packages/jpl)
macro_optional_add_subdirectory (packages/swig)
macro_optional_add_subdirectory (packages/bdd)
#add_subdirectory (packages/prosqlite)
#add_subdirectory (packages/zlib)

View File

@ -0,0 +1,62 @@
CMAKE_MINIMUM_REQUIRED ( VERSION 2.8 )
PROJECT ( YAP_BDD C )
SET ( YAP_BDD_VERSION 0.1)
SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
if (NOT YAP_FOUND)
FIND_PACKAGE(YAP REQUIRED)
ENDIF (NOT YAP_FOUND)
IF (NOT YAP_FOUND)
MESSAGE (SEND_ERROR "YAP was not found!")
ENDIF (NOT YAP_FOUND)
macro_optional_find_package (CUDD ON)
macro_log_feature (CUDD_FOUND "CUDD"
"Use CUDD Library"
"http://www.r.org" FALSE)
IF (CUDD_FOUND)
# CUDD_FOUND - system has Cudd
# CUDD_LIBRARIES - Link these to use Cudd
# CUDD_INCLUDE_DIR - Include directory for using Cudd
INCLUDE_DIRECTORIES(
${YAP_INCLUDE_DIR}
${CUDD_INCLUDE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
.
)
SET ( BDD_SOURCES
cudd.c
)
ADD_LIBRARY(cudd SHARED ${BDD_SOURCES} )
if(DEFINED YAP_MAJOR_VERSION)
TARGET_LINK_LIBRARIES(cudd
${CUDD_LIBRARIES}
libYap
)
else()
TARGET_LINK_LIBRARIES(cudd
${CUDD_LIBRARIES}
${YAP_LIBRARY}
)
endif()
set_target_properties (cudd PROPERTIES PREFIX "")
install(TARGETS cudd
LIBRARY DESTINATION ${dlls}
)
INSTALL(FILES bdd.yap DESTINATION ${libpl})
INSTALL(FILES ddnnf.yap DESTINATION ${libpl})
INSTALL(FILES simpbool.yap DESTINATION ${libpl})
INSTALL(FILES trie_sp.yap DESTINATION ${libpl})
ENDIF (CUDD_FOUND)

View File

@ -0,0 +1,169 @@
# - Try to find the CUD BDD RDF parsing library (http://librdf.org/CUDD /)
# Once done this will define
#
# CUDD_FOUND - system has CUDD
# CUDD_LIBRARIES - Link these to use CUDD
# CUDD_INCLUDE_DIR - Include directory for using CUDD
#
#
# Based on FindFontconfig Copyright (c) 2006,2007 Laurent Montel, <montel@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
MACRO ( FIND_CUDD )
ENDMACRO ()
# Check if we have cached results in case the last round was successful.
if ( NOT( CUDD_INCLUDE_DIR AND CUDD_LIBRARIES ) OR NOT CUDD_FOUND )
set( CUDD_LDFLAGS )
find_package(PkgConfig)
find_path(CUDD_INCLUDE_DIR
NAMES cudd.h
PATHS $ENV{CUDD_DIR}/include/cudd
$ENV{CUDD_DIR}/include
$ENV{CUDD_DIR}
~/Library/Frameworks
/Library/Frameworks
/usr/local/include/cudd
/usr/local/include
/usr/include/cudd
/usr/include/
/sw/include # Fink
/opt/local/include # MacPorts
/opt/csw/include # Blastwave
/opt/include
/usr/freeware/include
)
find_library(CUDD_INTERFACE_LIBRARY
NAMES cudd
PATHS
$ENV{CUDD_DIR}/lib
$ENV{CUDD_DIR}/lib64
$ENV{CUDD_DIR}/lib-dbg
$ENV{CUDD_DIR}
$ENV{CUDD_DIR}/cudd
~/Library/Frameworks
/Library/Frameworks
/usr/local/lib
/usr/local/lib64
/usr/lib
/usr/lib64
/usr/local/lib/cudd
/usr/local/lib64/cudd
/usr/lib/cudd
/usr/lib64/cudd
/usr/freeware/lib64
)
if ( CUDD_INTERFACE_LIBRARY AND CUDD_INCLUDE_DIR )
set( CUDD_FOUND ON )
list( APPEND CUDD_LIBRARIES ${CUDD_INTERFACE_LIBRARY} )
endif ()
find_library(CUDD_UTIL_LIBRARY
NAMES cuddutil util
PATHS
$ENV{CUDD_DIR}/lib
$ENV{CUDD_DIR}/lib64
$ENV{CUDD_DIR}/lib-dbg
$ENV{CUDD_DIR}
$ENV{CUDD_DIR}/util
~/Library/Frameworks
/Library/Frameworks
/usr/local/lib
/usr/local/lib64
/usr/lib
/usr/lib64
/usr/local/lib/util
/usr/local/lib64/util
/usr/lib/util
/usr/lib64/util
/usr/freeware/lib64
)
if ( CUDD_UTIL_LIBRARY )
list( APPEND CUDD_LIBRARIES ${CUDD_UTIL_LIBRARY} )
endif ()
find_library(CUDD_ST_LIBRARY
NAMES cuddst st
PATHS
$ENV{CUDD_DIR}/lib
$ENV{CUDD_DIR}/lib64
$ENV{CUDD_DIR}/lib-dbg
$ENV{CUDD_DIR}
$ENV{CUDD_DIR}/st
~/Library/Frameworks
/Library/Frameworks
/usr/local/lib
/usr/local/lib64
/usr/lib
/usr/lib64
/usr/lib/st
/usr/lib64/st
/usr/freeware/lib64
)
if ( CUDD_ST_LIBRARY )
list( APPEND CUDD_LIBRARIES ${CUDD_ST_LIBRARY} )
endif ()
find_library(CUDD_EPD_LIBRARY
NAMES epd
PATHS
$ENV{CUDD_DIR}/lib
$ENV{CUDD_DIR}/lib64
$ENV{CUDD_DIR}/lib-dbg
$ENV{CUDD_DIR}
$ENV{CUDD_DIR}/epd
~/Library/Frameworks
/Library/Frameworks
/usr/local/lib
/usr/local/lib64
/usr/lib
/usr/lib64
/usr/lib/epd
/usr/lib64/epd
/usr/freeware/lib64
)
if ( CUDD_MTR_LIBRARY )
list( APPEND CUDD_LIBRARIES ${CUDD_MTR_LIBRARY} )
endif ()
find_library(CUDD_MTR_LIBRARY
NAMES mtr
PATHS
$ENV{CUDD_DIR}/lib
$ENV{CUDD_DIR}/lib64
$ENV{CUDD_DIR}/lib-dbg
$ENV{CUDD_DIR}
$ENV{CUDD_DIR}/mtr
~/Library/Frameworks
/Library/Frameworks
/usr/local/lib
/usr/local/lib64
/usr/lib
/usr/lib64
/usr/lib/mtr
/usr/lib64/mtr
/usr/freeware/lib64
)
if ( CUDD_MTR_LIBRARY )
list( APPEND CUDD_LIBRARIES ${CUDD_MTR_LIBRARY} )
endif ()
endif () # Check for cached values

View File

@ -0,0 +1,76 @@
# CMake module to search for YAP library
#
# If YAP_INCLUDE_DIR and YAP_PL_LIBRARY_DIR sets YAP_FOUND
# Also checks for YAP_LIBRARY
if (YAP_ROOT)
set( YAP_INCLUDE_DIR ../../include )
set( YAP_PL_LIBRARY_DIR ${libpl} )
set( YAP_LIBRARY libYap )
set( YAP_DLLS ${dlls} )
else()
FIND_PATH(YAP_INCLUDE_DIR YapInterface.h
/usr/local/include/Yap
/usr/include/Yap
#MSVC
"$ENV{LIB_DIR}/include/Yap"
#mingw
c:/msys/local/include/Yap
c:/Yap/include/Yap
c:/Yap64/include/Yap
"c:/Program Files/Yap/include/Yap"
"c:/Program Files (x86)/Yap/include/Yap"
)
FIND_PATH(YAP_PL_LIBRARY_DIR terms.yap
/usr/local/share/Yap
/usr/share/Yap
#MSVC
"$ENV{LIB_DIR}/share/Yap"
#mingw
c:/msys/local/share/Yap
c:/Yap/share/Yap
c:/Yap64/share/Yap
"c:/Program Files/Yap/share/Yap"
"c:/Program Files (x86)/Yap/share/Yap"
)
FIND_LIBRARY(YAP_LIBRARY NAMES libYap.a libYap.so libYap.dylib PATHS
/usr/local/lib
/usr/lib
#MSVC
"$ENV{LIB_DIR}/lib"
#mingw
c:/msys/local/lib
c:/msys/local/lib
c:/Yap/lib
c:/Yap64/lib
"c:/Program Files/Yap/lib"
"c:/Program Files (x86)/Yap/lib"
)
If (YAP_INCLUDE_DIR AND YAP_PL_LIBRARY_DIR)
SET(YAP_FOUND TRUE)
ENDIF (YAP_INCLUDE_DIR AND YAP_PL_LIBRARY_DIR)
IF (YAP_FOUND)
IF (NOT YAP_FIND_QUIETLY)
MESSAGE(STATUS "Found YAP: ${YAP_LIBRARY}")
ENDIF (NOT YAP_FIND_QUIETLY)
get_filename_component( YAP_DLLS ${YAP_LIBRARY} PATH )
set( dlls ${YAP_DLLS}/Yap )
ELSE (YAP_FOUND)
IF (YAP_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find YAP")
ENDIF (YAP_FIND_REQUIRED)
ENDIF (YAP_FOUND)
endif()

View File

@ -103,7 +103,7 @@ if (ODBC_FOUND OR MYSQL_FOUND OR SQLITE3_FOUND OR PostgreSQL_FOUND)
endif (PostgreSQL_FOUND)
add_custom_target (plmyddas ALL DEPENDS ${GENERATED_SOURCES} ) # WORKING_DIRECTORY ${CMAKE_BINARY_DIR} )
endif (ODBC_FOUND OR MYSQL_FOUND OR SQLITE3_FOUND)
endif (ODBC_FOUND OR MYSQL_FOUND OR SQLITE3_FOUND OR PostgreSQL_FOUND)
cmake_dependent_option (WITH_MYDDAS_Stats
"enable the MYDDAS library statistics support" OFF