mirror of
https://github.com/jkriege2/JKQtPlotter.git
synced 2024-11-15 18:15:52 +08:00
75 lines
2.9 KiB
CMake
75 lines
2.9 KiB
CMake
|
|
# Instruct CMake to run moc+rcc+uic automatically when needed.
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_AUTORCC ON)
|
|
set(CMAKE_AUTOUIC ON)
|
|
|
|
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
|
|
|
|
if(QT_VERSION_MAJOR LESS 5)
|
|
message(FATAL_ERROR "Minimum supported Qt version is 5, but you are trying to compile against Qt${QT_VERSION_MAJOR}")
|
|
endif()
|
|
|
|
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets Svg Xml OpenGL REQUIRED)
|
|
if(${QT_VERSION_MAJOR} VERSION_GREATER_EQUAL "6")
|
|
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS OpenGLWidgets)
|
|
endif()
|
|
if(NOT ${JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT})
|
|
find_package(Qt${QT_VERSION_MAJOR} OPTIONAL_COMPONENTS PrintSupport)
|
|
else()
|
|
message(STATUS "WARNING: not searching for Qt${QT_VERSION_MAJOR}::PrintSupport, because JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT=${JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT}")
|
|
endif()
|
|
|
|
|
|
set(JKQtPlotter_HAS_NO_PRINTER_SUPPORT FALSE)
|
|
set(JKQTPLOTTER_PRINTSUPPORT_LIBSTRING "PrintSupport")
|
|
if(JKQtPlotter_BUILD_FORCE_NO_PRINTER_SUPPORT)
|
|
set(JKQtPlotter_HAS_NO_PRINTER_SUPPORT TRUE)
|
|
set(JKQTPLOTTER_PRINTSUPPORT_LIBSTRING "")
|
|
else()
|
|
if(TARGET Qt${QT_VERSION_MAJOR}::PrintSupport)
|
|
else()
|
|
set(JKQtPlotter_HAS_NO_PRINTER_SUPPORT TRUE)
|
|
set(JKQTPLOTTER_PRINTSUPPORT_LIBSTRING "")
|
|
endif()
|
|
if(${QT_VERSION_MAJOR} VERSION_LESS "5" )
|
|
set(JKQtPlotter_HAS_NO_PRINTER_SUPPORT FALSE)
|
|
set(JKQTPLOTTER_PRINTSUPPORT_LIBSTRING "PrintSupport")
|
|
endif()
|
|
endif()
|
|
|
|
if(${QT_VERSION_MAJOR} VERSION_LESS "6")
|
|
set(JKQtPlotter_QT_CXX_STANDARD 11)
|
|
set(JKQtPlotter_QT_CXX_STANDARD_REQUIRED TRUE)
|
|
set(JKQtPlotter_QT_CXX_COMPILE_FEATURE cxx_std_11)
|
|
else()
|
|
set(JKQtPlotter_QT_CXX_STANDARD 17)
|
|
set(JKQtPlotter_QT_CXX_STANDARD_REQUIRED TRUE)
|
|
set(JKQtPlotter_QT_CXX_COMPILE_FEATURE cxx_std_17)
|
|
endif()
|
|
|
|
if (JKQtPlotter_ENABLED_CXX20)
|
|
set(JKQtPlotter_QT_CXX_STANDARD 20)
|
|
set(JKQtPlotter_QT_CXX_STANDARD_REQUIRED TRUE)
|
|
set(JKQtPlotter_QT_CXX_COMPILE_FEATURE cxx_std_20)
|
|
endif(JKQtPlotter_ENABLED_CXX20)
|
|
|
|
set(JKQtPlotter_QT_BINDIR $<TARGET_FILE_DIR:Qt${QT_VERSION_MAJOR}::qmake>) # ${QT_DIR}../../../../bin
|
|
|
|
if (WIN32)
|
|
get_target_property(_qmake_executable Qt${QT_VERSION_MAJOR}::qmake IMPORTED_LOCATION)
|
|
get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY)
|
|
find_program(JKQtPlotter_WINDEPLOYQT_ENV_SETUP qtenv2.bat HINTS "${_qt_bin_dir}")
|
|
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
find_program(JKQtPlotter_WINDEPLOYQT_EXECUTABLE NAMES windeployqt.debug.bat HINTS "${_qt_bin_dir}")
|
|
else()
|
|
find_program(JKQtPlotter_WINDEPLOYQT_EXECUTABLE NAMES windeployqt HINTS "${_qt_bin_dir}")
|
|
endif()
|
|
if (NOT EXISTS ${JKQtPlotter_WINDEPLOYQT_EXECUTABLE})
|
|
find_program(JKQtPlotter_WINDEPLOYQT_EXECUTABLE NAMES windeployqt HINTS "${_qt_bin_dir}")
|
|
endif()
|
|
if (NOT EXISTS ${WINDEPLOYQT_EXECUTABLE})
|
|
find_program(JKQtPlotter_WINDEPLOYQT_EXECUTABLE NAMES windeployqt.exe HINTS "${_qt_bin_dir}")
|
|
endif()
|
|
endif(WIN32)
|