Add macro for finding Termcap with cmake, and some cleaning about readline

--HG--
branch : trunk
This commit is contained in:
Kudlaty
2009-09-06 00:39:13 +02:00
parent 5e13c487fd
commit b6e694ab68
4 changed files with 58 additions and 30 deletions

View File

@@ -7,6 +7,7 @@ include(cmake/FindAce.cmake)
include(cmake/FindMySql.cmake)
include(cmake/FindPostgreSql.cmake)
include(cmake/FindReadline.cmake)
include(cmake/FindTermcap.cmake)
CONFIGURE_FILE(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
@@ -159,17 +160,13 @@ ELSE(EXISTS ${ACE_INCLUDE_DIR}/ace/Stack_Trace.h)
message(STATUS "** Your libace is out of date. Please update your libace!")
ENDIF(EXISTS ${ACE_INCLUDE_DIR}/ace/Stack_Trace.h)
IF(UNIX AND NOT CENTOS)
FIND_READLINE()
IF(READLINE_FOUND)
message(STATUS "Found Readline library: ${READLINE_LIBRARY}")
message(STATUS "Include dir is: ${READLINE_INCLUDE_DIR}")
ELSE(READLINE_FOUND)
message(SEND_ERROR "** Readline library not found!")
message(SEND_ERROR "** Your distro may provide a binary for Readline e.g. for ubuntu try apt-get install libreadline5-dev")
return()
ENDIF(READLINE_FOUND)
ENDIF(UNIX AND NOT CENTOS)
IF(UNIX)
IF(CENTOS)
FIND_TERMCAP()
ELSE(CENTOS)
FIND_READLINE()
ENDIF(CENTOS)
ENDIF(UNIX)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
@@ -198,7 +195,6 @@ ${POSTGRESQL_INCLUDE_DIR}
${CMAKE_CURRENT_BINARY_DIR}/src/shared
${CMAKE_CURRENT_SOURCE_DIR}/..
${ACE_INCLUDE_DIR}
${READLINE_INCLUDE_DIR}
)
SET(CMAKE_SKIP_BUILD_RPATH FALSE)

View File

@@ -1,18 +1,23 @@
# find Readline (terminal input library) includes and library
#
# READLINE_INCLUDE_DIR - where the directory containing the READLINE headers can be found
# READLINE_LIBRARY - full path to the READLINE library
# READLINE_FOUND - TRUE if READLINE was found
MACRO(FIND_READLINE)
FIND_PATH(READLINE_INCLUDE_DIR readline/readline.h)
FIND_PATH(READLINE_INCLUDE_DIR radline/readline.h)
FIND_LIBRARY(READLINE_LIBRARY NAMES readline)
IF (READLINE_INCLUDE_DIR AND READLINE_LIBRARY)
SET(READLINE_FOUND TRUE)
SET(READLINE_FOUND TRUE)
MESSAGE(STATUS "Found Readline library: ${READLINE_LIBRARY}")
MESSAGE(STATUS "Include dir is: ${READLINE_INCLUDE_DIR}")
INCLUDE_DIRECTORIES(${READLINE_INCLUDE_DIR})
ELSE (READLINE_INCLUDE_DIR AND READLINE_LIBRARY)
SET(READLINE_FOUND FALSE)
MESSAGE(FATAL_ERROR "** Readline library not found!")
MESSAGE(FATAL_ERROR "** Your distro may provide a binary for Readline e.g. for ubuntu try apt-get install libreadline5-dev")
ENDIF (READLINE_INCLUDE_DIR AND READLINE_LIBRARY)
IF (READLINE_FOUND)
IF (NOT Readline_FIND_QUIETLY)
MESSAGE(STATUS "Found GNU readline: ${READLINE_LIBRARY}")
ENDIF (NOT Readline_FIND_QUIETLY)
ELSE (READLINE_FOUND)
IF (Readline_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find GNU readline")
ENDIF (Readline_FIND_REQUIRED)
ENDIF (READLINE_FOUND)
ENDMACRO(FIND_READLINE)

33
cmake/FindTermcap.cmake Normal file
View File

@@ -0,0 +1,33 @@
# find Terrmcap (terminal input library) includes and library
#
# TERMCAP_INCLUDE_DIR - where the directory containing the TERMCAP headers can be found
# TERMCAP_LIBRARY - full path to the TERMCAP library
# TERMCAP_FOUND - TRUE if TERMCAP was found
MACRO(FIND_TERMCAP)
FIND_PATH(TERMCAP_INCLUDE_DIR termcap.h
/usr/include
/usr/local/include
/opt/local/include
)
FIND_LIBRARY(TERMCAP_LIBRARY NAMES termcap PATH
/usr/lib
/usr/local/lib
/opt/local/lib
/usr/lib64
)
IF (TERMCAP_INCLUDE_DIR AND TERMCAP_LIBRARY)
SET(TERMCAP_FOUND TRUE)
MESSAGE(STATUS "Found GNU termcap: ${TERMCAP_LIBRARY}")
MESSAGE(STATUS "Include dir is: ${TERMCAP_INCLUDE_DIR}")
INCLUDE_DIRECTORIES(${TERMCAP_INCLUDE_DIR})
ELSE (TERMCAP_INCLUDE_DIR AND TERMCAP_LIBRARY)
SET(TERMCAP_FOUND FALSE)
MESSAGE(FATAL_ERROR "Could not find GNU termcap")
ENDIF (TERMCAP_INCLUDE_DIR AND TERMCAP_LIBRARY)
ENDMACRO(FIND_TERMCAP)

View File

@@ -48,6 +48,7 @@ vmaps
ZThread
g3dlite
${READLINE_LIBRARY}
${TERMCAP_LIBRARY}
gomp
${SCRIPT_LIB}
${MYSQL_LIBRARIES}
@@ -58,13 +59,6 @@ ${ZLIB}
${OSX_LIBS}
)
IF (CENTOS)
target_link_libraries(
trinity-core
termcap
)
ENDIF (CENTOS)
install(TARGETS trinity-core DESTINATION bin)