Update "About" dialog
[quassel.git] / cmake / modules / FindPhonon.cmake
index 9333269..ab0a86c 100644 (file)
 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
 
 macro(_phonon_find_version)
-   file(READ "${PHONON_INCLUDE_DIR}/phonon/phononnamespace.h" _phonon_header LIMIT 5000 OFFSET 1000)
+   set(_phonon_namespace_header_file "${PHONON_INCLUDE_DIR}/phonon/phononnamespace.h")
+   if (APPLE AND EXISTS "${PHONON_INCLUDE_DIR}/Headers/phononnamespace.h")
+      set(_phonon_namespace_header_file "${PHONON_INCLUDE_DIR}/Headers/phononnamespace.h")
+   endif (APPLE AND EXISTS "${PHONON_INCLUDE_DIR}/Headers/phononnamespace.h")
+   file(READ ${_phonon_namespace_header_file} _phonon_header LIMIT 5000 OFFSET 1000)
    string(REGEX MATCH "define PHONON_VERSION_STR \"(4\\.[0-9]+\\.[0-9a-z]+)\"" _phonon_version_match "${_phonon_header}")
    set(PHONON_VERSION "${CMAKE_MATCH_1}")
    message(STATUS "Phonon Version: ${PHONON_VERSION}")
@@ -26,13 +30,27 @@ else(PHONON_FOUND)
       set(PHONON_FIND_QUIETLY TRUE)
    endif(PHONON_INCLUDE_DIR AND PHONON_LIBRARY)
 
-   # As discussed on kde-buildsystem: first look at CMAKE_PREFIX_PATH, then at the suggested PATHS (kde4 install dir)
-   find_library(PHONON_LIBRARY NAMES phonon PATHS ${KDE4_LIB_INSTALL_DIR} ${QT_LIBRARY_DIR} NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)
-   # then at the default system locations (CMAKE_SYSTEM_PREFIX_PATH, i.e. /usr etc.)
-   find_library(PHONON_LIBRARY NAMES phonon)
+   find_library(PHONON_LIBRARY_RELEASE NAMES phonon phonon4 HINTS ${KDE4_LIB_INSTALL_DIR} ${QT_LIBRARY_DIR})
+   find_library(PHONON_LIBRARY_DEBUG NAMES phonond phonond4 HINTS ${KDE4_LIB_INSTALL_DIR} ${QT_LIBRARY_DIR})
 
-   find_path(PHONON_INCLUDE_DIR NAMES phonon/phonon_export.h PATHS ${KDE4_INCLUDE_INSTALL_DIR} ${QT_INCLUDE_DIR} ${INCLUDE_INSTALL_DIR} NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)
-   find_path(PHONON_INCLUDE_DIR NAMES phonon/phonon_export.h)
+   # if the release- as well as the debug-version of the library have been found:
+   IF (PHONON_LIBRARY_DEBUG AND PHONON_LIBRARY_RELEASE)
+     # if the generator supports configuration types then set
+     # optimized and debug libraries, or if the CMAKE_BUILD_TYPE has a value
+     IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
+       SET(PHONON_LIBRARY       optimized ${PHONON_LIBRARY_RELEASE} debug ${PHONON_LIBRARY_DEBUG})
+     ELSE(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
+       # if there are no configuration types and CMAKE_BUILD_TYPE has no value
+       # then just use the release libraries
+       SET(PHONON_LIBRARY       ${PHONON_LIBRARY_RELEASE} )
+     ENDIF(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
+   ELSE(PHONON_LIBRARY_DEBUG AND PHONON_LIBRARY_RELEASE)
+     IF (PHONON_LIBRARY_RELEASE)
+       SET(PHONON_LIBRARY ${PHONON_LIBRARY_RELEASE})
+     ENDIF (PHONON_LIBRARY_RELEASE)
+   ENDIF (PHONON_LIBRARY_DEBUG AND PHONON_LIBRARY_RELEASE)
+
+   find_path(PHONON_INCLUDE_DIR NAMES phonon/phonon_export.h HINTS ${KDE4_INCLUDE_INSTALL_DIR} ${QT_INCLUDE_DIR} ${INCLUDE_INSTALL_DIR} ${QT_LIBRARY_DIR})
 
    if(PHONON_INCLUDE_DIR AND PHONON_LIBRARY)
       set(PHONON_LIBS ${phonon_LIB_DEPENDS} ${PHONON_LIBRARY})
@@ -43,25 +61,8 @@ else(PHONON_FOUND)
       set(PHONON_FOUND FALSE)
    endif(PHONON_INCLUDE_DIR AND PHONON_LIBRARY)
 
-   if(PHONON_FOUND)
-      if(NOT PHONON_FIND_QUIETLY)
-         message(STATUS "Found Phonon: ${PHONON_LIBRARY}")
-         message(STATUS "Found Phonon Includes: ${PHONON_INCLUDES}")
-      endif(NOT PHONON_FIND_QUIETLY)
-   else(PHONON_FOUND)
-      if(Phonon_FIND_REQUIRED)
-         if(NOT PHONON_INCLUDE_DIR)
-            message(STATUS "Phonon includes NOT found!")
-         endif(NOT PHONON_INCLUDE_DIR)
-         if(NOT PHONON_LIBRARY)
-            message(STATUS "Phonon library NOT found!")
-         endif(NOT PHONON_LIBRARY)
-         message(FATAL_ERROR "Phonon library or includes NOT found!")
-      else(Phonon_FIND_REQUIRED)
-         message(STATUS "Unable to find Phonon")
-      endif(Phonon_FIND_REQUIRED)
-   endif(PHONON_FOUND)
-
+   include(FindPackageHandleStandardArgs)
+   find_package_handle_standard_args(Phonon  DEFAULT_MSG  PHONON_INCLUDE_DIR PHONON_LIBRARY)
 
-   mark_as_advanced(PHONON_INCLUDE_DIR PHONON_LIBRARY PHONON_INCLUDES)
+   mark_as_advanced(PHONON_INCLUDE_DIR PHONON_LIBRARY)
 endif(PHONON_FOUND)