LAMPCAE/cmake/FindQwt.cmake

148 lines
4.5 KiB
CMake
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# FindQwt
# --------
#
# Find the Qwt libraries(Only for Qwt provided by LAMPCAE)
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# The following variables will be defined:
#
# ``Qwt_FOUND`` True if Qwt found on the local system
#
# ``Qwt_VERSION`` Qwt Version(x.x.x)
#
# ``Qwt_VERSION_MAJOR`` Qwt Major Version
#
# ``Qwt_VERSION_MINOR`` Qwt Minor Version
#
# ``Qwt_VERSION_PATCH`` Qwt Patch Version
#
# ``QwtPolar_VERSION`` QwtPolar Version(x.x.x)
#
# ``QwtPolar_VERSION_MAJOR`` QwtPolar Major Version
#
# ``QwtPolar_VERSION_MINOR`` QwtPolar Minor Version
#
# ``QwtPolar_VERSION_PATCH`` QwtPolar Patch Version
#
# ``Qwt_DIRS`` Location of Qwt(root dir)
#
# ``Qwt_INCLUDE_DIRS`` Location of Qwt(QwtPolar) header files
#
# ``Qwt_LIBRARY_DIRS`` Location of Qwt(QwtPolar) libraries
#
# ``Qwt_LIBRARIES`` List of the Qwt libraries(with QwtPolar libraries) found
#
# ``Qwt_BINARY_DIRS`` Location of VTK binary
#
# 防止重复引入
if(LAMPCAE_Qwt_ALREADY_INCLUDED)
return()
endif()
set(LAMPCAE_Qwt_ALREADY_INCLUDED 1)
# find_path 搜索包含某个文件的路径
# 如果在某个路径下发现了该文件,该结果会被存储到该变量中;如果没有找到,存储的结果将会是<VAR>-NOTFOUND
set(Qwt_DIRS C:/Qwt) # 设置qwt 路径
find_path(Qwt_DIRS
NAMES
qwt.h
PATHS
C:/Qwt
NO_SYSTEM_ENVIRONMENT_PATH
NO_CMAKE_SYSTEM_PATH
)
set(Qwt_VERSION_MAJOR 6)
set(Qwt_VERSION_MINOR 2)
set(Qwt_VERSION_PATCH 0)
#set(QwtPolar_VERSION_MAJOR 1)
#set(QwtPolar_VERSION_MINOR 1)
#set(QwtPolar_VERSION_PATCH 1)
set(Qwt_VERSION "${Qwt_VERSION_MAJOR}.${Qwt_VERSION_MINOR}.${Qwt_VERSION_PATCH}")
#set(QwtPolar_VERSION "${QwtPolar_VERSION_MAJOR}.${QwtPolar_VERSION_MINOR}.${QwtPolar_VERSION_PATCH}")
find_path(Qwt_INCLUDE_DIRS
NAMES
qwt.h
HINTS
C:/Qwt/include
)
find_path(Qwt_LIBRARY_DIRS
NAMES
qwt.lib libqwt.so
HINTS
C:/Qwt/lib
)
find_path(Qwt_BINARY_DIRS
NAMES
qwt.dll libqwt.so
HINTS
C:/Qwt/lib
)
set(Qwt_LIBRARIES LAMPCAE::QWT;LAMPCAE::QWTPOLAR)
add_library(LAMPCAE::QWT SHARED IMPORTED)
add_library(LAMPCAE::QWTPOLAR SHARED IMPORTED)
set_property(TARGET LAMPCAE::QWT PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${Qwt_INCLUDE_DIRS})
set_property(TARGET LAMPCAE::QWT APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_property(TARGET LAMPCAE::QWT PROPERTY INTERFACE_LINK_LIBRARIES Qt5::Svg Qt5::OpenGL)
set_property(TARGET LAMPCAE::QWT PROPERTY INTERFACE_COMPILE_DEFINITIONS "QWT_DLL")
set_property(TARGET LAMPCAE::QWTPOLAR PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${Qwt_INCLUDE_DIRS})
set_property(TARGET LAMPCAE::QWTPOLAR APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_property(TARGET LAMPCAE::QWTPOLAR PROPERTY INTERFACE_LINK_LIBRARIES LAMPCAE::QWT Qt5::PrintSupport)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set_target_properties(LAMPCAE::QWT PROPERTIES
IMPORTED_LOCATION_RELEASE "${Qwt_LIBRARY_DIRS}/libqwt.so.${Qwt_VERSION_MAJOR}.${Qwt_VERSION_MINOR}.${Qwt_VERSION_PATCH}"
IMPORTED_SONAME_RELEASE "libqwt.so.${Qwt_VERSION_MAJOR}"
)
# set_target_properties(LAMPCAE::QWTPOLAR PROPERTIES
# IMPORTED_LOCATION_RELEASE "${Qwt_LIBRARY_DIRS}/libqwtpolar.so.${QwtPolar_VERSION_MAJOR}.${QwtPolar_VERSION_MINOR}.${QwtPolar_VERSION_PATCH}"
# IMPORTED_SONAME_RELEASE "libqwtpolar.so.${QwtPolar_VERSION_MAJOR}"
# )
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set_property(TARGET LAMPCAE::QWT APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
set_property(TARGET LAMPCAE::QWTPOLAR APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(LAMPCAE::QWT PROPERTIES
IMPORTED_IMPLIB_RELEASE "${Qwt_LIBRARY_DIRS}/qwt.lib"
IMPORTED_LOCATION_RELEASE "${Qwt_BINARY_DIRS}/qwt.dll"
IMPORTED_IMPLIB_DEBUG "${Qwt_LIBRARY_DIRS}/qwtd.lib"
IMPORTED_LOCATION_DEBUG "${Qwt_BINARY_DIRS}/qwtd.dll"
)
set_target_properties(LAMPCAE::QWTPOLAR PROPERTIES
IMPORTED_IMPLIB_RELEASE "${Qwt_LIBRARY_DIRS}/qwt.lib"
IMPORTED_LOCATION_RELEASE "${Qwt_BINARY_DIRS}/qwt.dll"
IMPORTED_IMPLIB_DEBUG "${Qwt_LIBRARY_DIRS}/qwtd.lib"
IMPORTED_LOCATION_DEBUG "${Qwt_BINARY_DIRS}/qwtd.dll"
# qwtploar 集成进 qwt6.2.0 中
# IMPORTED_IMPLIB_RELEASE "${Qwt_LIBRARY_DIRS}/qwtpolar.lib"
# IMPORTED_LOCATION_RELEASE "${Qwt_BINARY_DIRS}/qwtpolar.dll"
# IMPORTED_IMPLIB_DEBUG "${Qwt_LIBRARY_DIRS}/qwtpolard.lib"
# IMPORTED_LOCATION_DEBUG "${Qwt_BINARY_DIRS}/qwtpolard.dll"
)
endif()
include(FindPackageHandleStandardArgs)
# 如果找到所有需要的变量并且版本匹配则将Qwt_FOUND变量设置为TRUE
find_package_handle_standard_args(Qwt
FOUND_VAR
Qwt_FOUND
REQUIRED_VARS
Qwt_DIRS
Qwt_INCLUDE_DIRS
Qwt_LIBRARY_DIRS
Qwt_LIBRARIES
Qwt_BINARY_DIRS
VERSION_VAR
Qwt_VERSION
)