JKQtPlotter/cmake/jkqtplotter_common_qtsettings.cmake

70 lines
2.8 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)
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)