Changeset - 9d8cc029351b
[Not reviewed]
default
0 1 0
Hasan Yavuz ÖZDERYA - 7 years ago 2019-02-10 09:05:13
hy@ozderya.net
fix FindQwt script for platforms where qwt qt5 version isn't called 'qwt-qt5'

also added check for Qt version of the found qwt library
1 file changed with 23 insertions and 5 deletions:
0 comments (0 inline, 0 general)
cmake/modules/FindQwt.cmake
Show inline comments
 
#
 
# Copyright © 2017 Hasan Yavuz Özderya
 
# Copyright © 2019 Hasan Yavuz Özderya
 
#
 
# This file is part of serialplot.
 
#
 
# serialplot is free software: you can redistribute it and/or modify
 
# it under the terms of the GNU General Public License as published by
 
# the Free Software Foundation, either version 3 of the License, or
 
# (at your option) any later version.
 
#
 
# serialplot is distributed in the hope that it will be useful,
 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
# GNU General Public License for more details.
 
@@ -57,66 +57,84 @@ if(qwt_roots)
 
		set(QWT_ROOT ${qwt_root})
 
		set(QWT_VERSION ${qwt_version_string})
 
		break() # version is not specified stop at the first qwt_root
 
	  endif(Qwt_FIND_VERSION)
 
	else(qwt_version_string)
 
	  message(WARNING "Couldn't find version string in qwt_global.h file.")
 
	endif(qwt_version_string)
 
  endforeach(qwt_root ${qwt_roots})
 
endif(qwt_roots)
 

	
 
if(QWT_ROOT)
 
  set(QWT_INCLUDE_DIR "${QWT_ROOT}/include")
 
  find_library(QWT_LIBRARY "qwt-qt5"
 
	PATHS "${QWT_ROOT}/lib")
 
  find_library(QWT_LIBRARY NAMES "qwt-qt5" "qwt" PATHS "${QWT_ROOT}/lib")
 
else (QWT_ROOT)
 
  ## Look into system locations
 
  find_path(QWT_INCLUDE_DIR qwt_plot.h PATHS /usr/include/qwt)
 
  # try extracting version information
 
  if (QWT_INCLUDE_DIR)
 
	unset(qwt_version_string)
 
	file(STRINGS "${QWT_INCLUDE_DIR}/qwt_global.h" qwt_version_string
 
	  REGEX "#define[ \t]+QWT_VERSION_STR")
 
	if(qwt_version_string)
 
	  string(REGEX REPLACE "[^\"]*\"([0-9.]+)\".*" "\\1"
 
		qwt_version_string ${qwt_version_string})
 
	  if(Qwt_FIND_VERSION)
 
		if( (qwt_version_string VERSION_EQUAL Qwt_FIND_VERSION) OR
 
		  (qwt_version_string VERSION_GREATER Qwt_FIND_VERSION))
 
		  set(QWT_VERSION ${qwt_version_string})
 
		else ()
 
		  set(QWT_INCLUDE_DIR "NOTFOUND")
 
		endif()
 
	  endif(Qwt_FIND_VERSION)
 
	endif(qwt_version_string)
 
  endif (QWT_INCLUDE_DIR)
 
  # look into system locations for lib file
 
  find_library(QWT_LIBRARY "qwt-qt5" PATHS /usr/lib)
 
  find_library(QWT_LIBRARY NAMES "qwt-qt5" "qwt" PATHS /usr/lib)
 
endif(QWT_ROOT)
 

	
 
# set version variables
 
if(QWT_VERSION)
 
  string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1"
 
	QWT_MAJOR_VERSION ${QWT_VERSION})
 
  string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2"
 
	QWT_MINOR_VERSION ${QWT_VERSION})
 
  string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3"
 
	QWT_PATCH_VERSION ${QWT_VERSION})
 
endif(QWT_VERSION)
 

	
 
# check Qwt library 'Qt' version
 
if (QWT_LIBRARY)
 
  include(GetPrerequisites)
 
  GET_PREREQUISITES(${QWT_LIBRARY} qwt_lib_deps 0 0 "" "")
 
  set(qwt_is_qt5 FALSE)
 
  foreach (dep ${qwt_lib_deps})
 
    if (${dep} MATCHES "libQt5Gui")
 
      set(qwt_is_qt5 TRUE)
 
    endif()
 
  endforeach ()
 
  if (NOT qwt_is_qt5)
 
    message(WARNING "Found qwt library (${QWT_LIBRARY}) isn't compiled with Qt5!")
 
    LIST_PREREQUISITES(${QWT_LIBRARY})
 
  endif()
 
endif (QWT_LIBRARY)
 

	
 
# set QWT_FOUND
 
if(QWT_INCLUDE_DIR AND QWT_LIBRARY)
 
if(QWT_INCLUDE_DIR AND QWT_LIBRARY AND qwt_is_qt5)
 
  set(QWT_INCLUDE_DIRS ${QWT_INCLUDE_DIR})
 
  set(QWT_LIBRARIES ${QWT_LIBRARY})
 
  set(QWT_FOUND true)
 
else()
 
  set(QWT_FOUND false)
 
endif()
 

	
 
# errors
 
if(NOT QWT_FOUND)
 
  unset(QWT_INCLUDE_DIR CACHE)
 
  unset(QWT_LIBRARY CACHE)
 

	
 
  if(Qwt_FIND_QUIET)
 
	message(WARNING "Couldn't find Qwt.")
 
  elseif(Qwt_FIND_REQUIRED)
 
	message(FATAL_ERROR "Couldn't find Qwt.")
 
  endif(Qwt_FIND_QUIET)
 
endif(NOT QWT_FOUND)
0 comments (0 inline, 0 general)