Jelajahi Sumber

Merge topic 'improve-findjasper'

a580a23 FindJasper: support version number
9bf7c4e FindJasper: find debug libraries
David Cole 14 tahun lalu
induk
melakukan
dc3fb5ac4e
1 mengubah file dengan 23 tambahan dan 7 penghapusan
  1. 23 7
      Modules/FindJasper.cmake

+ 23 - 7
Modules/FindJasper.cmake

@@ -3,11 +3,13 @@
 #
 #  JASPER_FOUND - system has Jasper
 #  JASPER_INCLUDE_DIR - the Jasper include directory
-#  JASPER_LIBRARIES - The libraries needed to use Jasper
+#  JASPER_LIBRARIES - the libraries needed to use Jasper
+#  JASPER_VERSION_STRING - the version of Jasper found (since CMake 2.8.8)
 
 #=============================================================================
 # Copyright 2006-2009 Kitware, Inc.
 # Copyright 2006 Alexander Neundorf <[email protected]>
+# Copyright 2012 Rolf Eike Beer <[email protected]>
 #
 # Distributed under the OSI-approved BSD License (the "License");
 # see accompanying file Copyright.txt for details.
@@ -19,19 +21,33 @@
 # (To distribute this file outside of CMake, substitute the full
 #  License text for the above reference.)
 
-FIND_PACKAGE(JPEG)
-
 FIND_PATH(JASPER_INCLUDE_DIR jasper/jasper.h)
 
-FIND_LIBRARY(JASPER_LIBRARY NAMES jasper libjasper)
+IF (NOT JASPER_LIBRARIES)
+    FIND_PACKAGE(JPEG)
+
+    FIND_LIBRARY(JASPER_LIBRARY_RELEASE NAMES jasper libjasper)
+    FIND_LIBRARY(JASPER_LIBRARY_DEBUG NAMES japserd)
+
+    INCLUDE(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
+    SELECT_LIBRARY_CONFIGURATIONS(JASPER)
+ENDIF (NOT JASPER_LIBRARIES)
+
+IF (JASPER_INCLUDE_DIR AND EXISTS "${JASPER_INCLUDE_DIR}/jasper/jas_config.h")
+    FILE(STRINGS "${JASPER_INCLUDE_DIR}/jasper/jas_config.h" jasper_version_str REGEX "^#define[\t ]+JAS_VERSION[\t ]+\".*\".*")
+
+    STRING(REGEX REPLACE "^#define[\t ]+JAS_VERSION[\t ]+\"([^\"]+)\".*" "\\1" JASPER_VERSION_STRING "${jasper_version_str}")
+ENDIF (JASPER_INCLUDE_DIR AND EXISTS "${JASPER_INCLUDE_DIR}/jasper/jas_config.h")
 
 # handle the QUIETLY and REQUIRED arguments and set JASPER_FOUND to TRUE if 
 # all listed variables are TRUE
 INCLUDE(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Jasper DEFAULT_MSG JASPER_LIBRARY JASPER_INCLUDE_DIR JPEG_LIBRARIES)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Jasper
+                                  REQUIRED_VARS JASPER_LIBRARIES JASPER_INCLUDE_DIR JPEG_LIBRARIES
+                                  VERSION_VAR JASPER_VERSION_STRING)
 
 IF (JASPER_FOUND)
-   SET(JASPER_LIBRARIES ${JASPER_LIBRARY} ${JPEG_LIBRARIES} )
+   SET(JASPER_LIBRARIES ${JASPER_LIBRARIES} ${JPEG_LIBRARIES} )
 ENDIF (JASPER_FOUND)
 
-MARK_AS_ADVANCED(JASPER_INCLUDE_DIR JASPER_LIBRARY)
+MARK_AS_ADVANCED(JASPER_INCLUDE_DIR)