ソースを参照

Fixes problems with cmake detection of GnuTLS. The current CMakeLists.txt uses check_function_exists to identify legacy versions of GnuTLS but cmake performs this test by linking a small test program. If libgnutls, libgcrypt, or libgpg-error are outside the default library search path, linking the test program fails even though gnutls and it's dependencies are installed. This patch makes it possible to specify the location of each of the three libraries independently and only as needed.

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@5160 3789f03b-4d11-0410-bbf8-ca57d06f2519
tags/v1.3.90
Brian Hinz 10年前
コミット
236b019980
3個のファイルの変更84行の追加0行の削除
  1. 12
    0
      CMakeLists.txt
  2. 36
    0
      cmake/Modules/FindGcrypt.cmake
  3. 36
    0
      cmake/Modules/FindGpg_Error.cmake

+ 12
- 0
CMakeLists.txt ファイルの表示

@@ -303,8 +303,20 @@ endif()
option(ENABLE_GNUTLS "Enable protocol encryption and advanced authentication" ON)
if(ENABLE_GNUTLS)
find_package(GnuTLS)
find_package(Gcrypt)
find_package(Gpg_Error)
if (GNUTLS_FOUND)
include_directories(${GNUTLS_INCLUDE_DIR})
if (GCRYPT_FOUND)
include_directories(${GCRYPT_INCLUDE_DIR})
set(GNUTLS_LIBRARIES ${GNUTLS_LIBRARIES};${GCRYPT_LIBRARIES})
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${GCRYPT_LIBRARIES})
if (GPG_ERROR_FOUND)
include_directories(${GPG_ERROR_INCLUDE_DIR})
set(GNUTLS_LIBRARIES ${GNUTLS_LIBRARIES};${GPG_ERROR_LIBRARIES})
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${GPG_ERROR_LIBRARIES})
endif()
endif()
add_definitions("-DHAVE_GNUTLS")
add_definitions(${GNUTLS_DEFINITIONS})

+ 36
- 0
cmake/Modules/FindGcrypt.cmake ファイルの表示

@@ -0,0 +1,36 @@
# - Find gcrypt
# Find the native GCRYPT includes and library
#
# GCRYPT_FOUND - True if gcrypt found.
# GCRYPT_INCLUDE_DIR - where to find gcrypt.h, etc.
# GCRYPT_LIBRARIES - List of libraries when using gcrypt.

if (GCRYPT_INCLUDE_DIR AND GCRYPT_LIBRARIES)
set(GCRYPT_FIND_QUIETLY TRUE)
endif (GCRYPT_INCLUDE_DIR AND GCRYPT_LIBRARIES)

# Include dir
find_path(GCRYPT_INCLUDE_DIR
NAMES
gcrypt.h
)

# Library
find_library(GCRYPT_LIBRARY
NAMES gcrypt
)

# handle the QUIETLY and REQUIRED arguments and set GCRYPT_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GCRYPT DEFAULT_MSG GCRYPT_LIBRARY GCRYPT_INCLUDE_DIR)

IF(GCRYPT_FOUND)
SET( GCRYPT_LIBRARIES ${GCRYPT_LIBRARY} )
ELSE(GCRYPT_FOUND)
SET( GCRYPT_LIBRARIES )
ENDIF(GCRYPT_FOUND)

# Lastly make it so that the GCRYPT_LIBRARY and GCRYPT_INCLUDE_DIR variables
# only show up under the advanced options in the gui cmake applications.
MARK_AS_ADVANCED( GCRYPT_LIBRARY GCRYPT_INCLUDE_DIR )

+ 36
- 0
cmake/Modules/FindGpg_Error.cmake ファイルの表示

@@ -0,0 +1,36 @@
# - Find gpg-error
# Find the native GPG_ERROR includes and library
#
# GPG_ERROR_FOUND - True if gpg-error found.
# GPG_ERROR_INCLUDE_DIR - where to find gpg-error.h, etc.
# GPG_ERROR_LIBRARIES - List of libraries when using gpg-error.

if (GPG_ERROR_INCLUDE_DIR AND GPG_ERROR_LIBRARIES)
set(GPG_ERROR_FIND_QUIETLY TRUE)
endif (GPG_ERROR_INCLUDE_DIR AND GPG_ERROR_LIBRARIES)

# Include dir
find_path(GPG_ERROR_INCLUDE_DIR
NAMES
gpg-error.h
)

# Library
find_library(GPG_ERROR_LIBRARY
NAMES gpg-error
)

# handle the QUIETLY and REQUIRED arguments and set GPG_ERROR_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GPG_ERROR DEFAULT_MSG GPG_ERROR_LIBRARY GPG_ERROR_INCLUDE_DIR)

IF(GPG_ERROR_FOUND)
SET( GPG_ERROR_LIBRARIES ${GPG_ERROR_LIBRARY} )
ELSE(GPG_ERROR_FOUND)
SET( GPG_ERROR_LIBRARIES )
ENDIF(GPG_ERROR_FOUND)

# Lastly make it so that the GPG_ERROR_LIBRARY and GPG_ERROR_INCLUDE_DIR variables
# only show up under the advanced options in the gui cmake applications.
MARK_AS_ADVANCED( GPG_ERROR_LIBRARY GPG_ERROR_INCLUDE_DIR )

読み込み中…
キャンセル
保存