Revision: 5160
          http://sourceforge.net/p/tigervnc/code/5160
Author:   bphinz
Date:     2014-02-19 05:19:37 +0000 (Wed, 19 Feb 2014)
Log Message:
-----------
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.

Modified Paths:
--------------
    trunk/CMakeLists.txt

Added Paths:
-----------
    trunk/cmake/Modules/FindGcrypt.cmake
    trunk/cmake/Modules/FindGpg_Error.cmake

Modified: trunk/CMakeLists.txt
===================================================================
--- trunk/CMakeLists.txt        2014-02-12 10:10:19 UTC (rev 5159)
+++ trunk/CMakeLists.txt        2014-02-19 05:19:37 UTC (rev 5160)
@@ -303,8 +303,20 @@
 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})
     

Added: trunk/cmake/Modules/FindGcrypt.cmake
===================================================================
--- trunk/cmake/Modules/FindGcrypt.cmake                                (rev 0)
+++ trunk/cmake/Modules/FindGcrypt.cmake        2014-02-19 05:19:37 UTC (rev 
5160)
@@ -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 )

Added: trunk/cmake/Modules/FindGpg_Error.cmake
===================================================================
--- trunk/cmake/Modules/FindGpg_Error.cmake                             (rev 0)
+++ trunk/cmake/Modules/FindGpg_Error.cmake     2014-02-19 05:19:37 UTC (rev 
5160)
@@ -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 )

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
Tigervnc-commits mailing list
Tigervnc-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tigervnc-commits

Reply via email to