Changeset - e9cebfbc996c
[Not reviewed]
default
0 1 0
Hasan Yavuz ÖZDERYA - 10 years ago 2015-04-18 08:52:28
hy@ozderya.net
replaced FindQwt.cmake with my version
1 file changed with 92 insertions and 112 deletions:
0 comments (0 inline, 0 general)
cmake/modules/FindQwt.cmake
Show inline comments
 
# Qt Widgets for Technical Applications
 
# available at http://www.http://qwt.sourceforge.net/
 
#
 
# Copyright © 2015 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.
 
#
 
# The module defines the following variables:
 
#  QWT_FOUND - the system has Qwt
 
#  QWT_INCLUDE_DIR - where to find qwt_plot.h
 
#  QWT_INCLUDE_DIRS - qwt includes
 
#  QWT_LIBRARY - where to find the Qwt library
 
#  QWT_LIBRARIES - aditional libraries
 
#  QWT_MAJOR_VERSION - major version
 
#  QWT_MINOR_VERSION - minor version
 
#  QWT_PATCH_VERSION - patch version
 
#  QWT_VERSION_STRING - version (ex. 5.2.1)
 
#  QWT_ROOT_DIR - root dir (ex. /usr/local)
 
# 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.
 
#
 
# You should have received a copy of the GNU General Public License
 
# along with serialplot.  If not, see <http://www.gnu.org/licenses/>.
 
#
 

	
 
#
 
# Note: This module will only find local Qwt installations in
 
# /usr/local/qwt-VERSION directories.
 
#
 

	
 
#=============================================================================
 
# Copyright 2010-2013, Julien Schueller
 
# Copyright 2015 Hasan Yavuz Özderya
 
# All rights reserved.
 
# 
 
# Redistribution and use in source and binary forms, with or without
 
# modification, are permitted provided that the following conditions are met: 
 
# 
 
# 1. Redistributions of source code must retain the above copyright notice, this
 
#    list of conditions and the following disclaimer. 
 
# 2. Redistributions in binary form must reproduce the above copyright notice,
 
#    this list of conditions and the following disclaimer in the documentation
 
#    and/or other materials provided with the distribution. 
 
#
 
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
 
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
file(GLOB qwt_glob_dir "/usr/local/qwt*/")
 

	
 
# The views and conclusions contained in the software and documentation are those
 
# of the authors and should not be interpreted as representing official policies, 
 
# either expressed or implied, of the FreeBSD Project.
 
#=============================================================================
 

	
 
# TODO: handle multiple versions of qwt
 
file(GLOB QWT_GLOB_DIR "/usr/local/qwt*/")
 
if(qwt_glob_dir)
 
  foreach(qwt_path ${qwt_glob_dir})
 
	# find the qwt_global.h file
 
	unset(qwt_root CACHE)
 
	find_path(qwt_root
 
	  "include/qwt_global.h"
 
	  HINTS "${qwt_path}")
 
	if(qwt_root)
 
	  list(APPEND qwt_roots ${qwt_root})
 
	endif(qwt_root)
 
  endforeach(qwt_path)
 
endif(qwt_glob_dir)
 

	
 
find_path ( QWT_INCLUDE_DIR
 
  NAMES qwt_plot.h
 
  HINTS ${QT_INCLUDE_DIR} "${QWT_GLOB_DIR}/include"
 
  PATH_SUFFIXES qwt qwt-qt3 qwt-qt4 qwt-qt5
 
)
 

	
 
set ( QWT_INCLUDE_DIRS ${QWT_INCLUDE_DIR} )
 
# select qwt root according to version
 
if(qwt_roots)
 
  foreach(qwt_root ${qwt_roots})
 
	# extract the version information
 
	unset(qwt_version_string)
 
	file(STRINGS "${qwt_root}/include/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})
 

	
 
# version
 
set ( _VERSION_FILE ${QWT_INCLUDE_DIR}/qwt_global.h )
 
if ( EXISTS ${_VERSION_FILE} )
 
  file ( STRINGS ${_VERSION_FILE} _VERSION_LINE REGEX "define[ ]+QWT_VERSION_STR" )
 
  if ( _VERSION_LINE )
 
    string ( REGEX REPLACE ".*define[ ]+QWT_VERSION_STR[ ]+\"(.*)\".*" "\\1" QWT_VERSION_STRING "${_VERSION_LINE}" )
 
    string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" QWT_MAJOR_VERSION "${QWT_VERSION_STRING}" )
 
    string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" QWT_MINOR_VERSION "${QWT_VERSION_STRING}" )
 
    string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" QWT_PATCH_VERSION "${QWT_VERSION_STRING}" )
 
  endif ()
 
endif ()
 

	
 
	  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})
 
		  set(QWT_ROOT ${qwt_root})
 
		  break() # found an appropriate version
 
		endif()
 
	  else(Qwt_FIND_VERSION)
 
		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)
 

	
 
# check version
 
set ( _QWT_VERSION_MATCH TRUE )
 
if ( Qwt_FIND_VERSION AND QWT_VERSION_STRING )
 
  if ( Qwt_FIND_VERSION_EXACT )
 
    if ( NOT Qwt_FIND_VERSION VERSION_EQUAL QWT_VERSION_STRING )
 
      set ( _QWT_VERSION_MATCH FALSE )
 
    endif ()
 
  else ()
 
    if ( QWT_VERSION_STRING VERSION_LESS Qwt_FIND_VERSION )
 
      set ( _QWT_VERSION_MATCH FALSE )
 
    endif ()
 
  endif ()
 
endif ()
 

	
 

	
 
find_library ( QWT_LIBRARY
 
  NAMES qwt qwt-qt3 qwt-qt4 qwt-qt5
 
  HINTS ${QT_LIBRARY_DIR} "${QWT_GLOB_DIR}/lib"
 
)
 
if(QWT_ROOT)
 
  set(QWT_INCLUDE_DIR "${QWT_ROOT}/include")
 
  find_library(QWT_LIBRARY "qwt"
 
	PATHS "${QWT_ROOT}/lib")
 
endif(QWT_ROOT)
 

	
 
set ( QWT_LIBRARIES ${QWT_LIBRARY} )
 

	
 

	
 
# try to guess root dir from include dir
 
if ( QWT_INCLUDE_DIR )
 
  string ( REGEX REPLACE "(.*)/include.*" "\\1" QWT_ROOT_DIR ${QWT_INCLUDE_DIR} )
 
# try to guess root dir from library dir
 
elseif ( QWT_LIBRARY )
 
  string ( REGEX REPLACE "(.*)/lib[/|32|64].*" "\\1" QWT_ROOT_DIR ${QWT_LIBRARY} )
 
endif ()
 

	
 
# 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)
 

	
 
# handle the QUIETLY and REQUIRED arguments
 
include ( FindPackageHandleStandardArgs )
 
if ( CMAKE_VERSION LESS 2.8.3 )
 
  find_package_handle_standard_args( Qwt DEFAULT_MSG QWT_LIBRARY QWT_INCLUDE_DIR _QWT_VERSION_MATCH )
 
else ()
 
  find_package_handle_standard_args( Qwt REQUIRED_VARS QWT_LIBRARY QWT_INCLUDE_DIR _QWT_VERSION_MATCH VERSION_VAR QWT_VERSION_STRING )
 
endif ()
 

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

	
 
mark_as_advanced (
 
  QWT_LIBRARY 
 
  QWT_LIBRARIES
 
  QWT_INCLUDE_DIR
 
  QWT_INCLUDE_DIRS
 
  QWT_MAJOR_VERSION
 
  QWT_MINOR_VERSION
 
  QWT_PATCH_VERSION
 
  QWT_VERSION_STRING
 
  QWT_ROOT_DIR
 
)
 
# errors
 
if(NOT QWT_FOUND)
 
  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)