macro (GETENV_PATH var name) set(${var} $ENV{${name}}) if (WIN32) string(REGEX REPLACE "\\\\" "/" ${var} "${${var}}") endif(WIN32) endmacro (GETENV_PATH var name) macro(find_qt) if (${ARGC} EQUAL 0) set(required "REQUIRED") endif() if(NOT COVISE_USE_QT5) covise_find_package(Qt6 QUIET COMPONENTS Core OPTIONAL_COMPONENTS WebEngineWidgets) covise_find_package(Qt6 QUIET COMPONENTS Core OPTIONAL_COMPONENTS WebView) covise_find_package(Qt6 COMPONENTS Core OPTIONAL_COMPONENTS Quick) covise_find_package(Qt6 COMPONENTS Core OPTIONAL_COMPONENTS Svg) covise_find_package(Qt6 COMPONENTS Core OPTIONAL_COMPONENTS SvgWidgets) covise_find_package(Qt6 COMPONENTS Core OPTIONAL_COMPONENTS OpenGL) covise_find_package(Qt6 COMPONENTS Core OPTIONAL_COMPONENTS OpenGLWidgets) covise_find_package(Qt6 COMPONENTS Core OPTIONAL_COMPONENTS PrintSupport) covise_find_package(Qt6 COMPONENTS Core OPTIONAL_COMPONENTS UiTools) covise_find_package(Qt6 QUIET COMPONENTS Core Gui Xml Network ${required} OPTIONAL_COMPONENTS WebEngineWidgets WebView Quick Svg SvgWidgets OpenGL OpenGLWidgets PrintSupport UiTools) if (Qt6WebEngineWidgets_FOUND) set(COVISE_USE_WEBENGINE TRUE) endif() else() if (NOT "$ENV{VCPKG_ROOT}" EQUAL "") set(CMAKE_PREFIX_PATH $ENV{VCPKG_ROOT}/installed/x64-windows ${CMAKE_PREFIX_PATH}) endif() GETENV_PATH(EXTERNLIBSQT EXTERNLIBS) STRING(REPLACE "/" \\ USING_FILES "${USING_FILES}") set(CMAKE_PREFIX_PATH ${EXTERNLIBSQT}/qt5 ${CMAKE_PREFIX_PATH}) covise_find_package(Qt5 COMPONENTS Core ${required}) covise_find_package(Qt5 COMPONENTS Core Network ${required}) covise_find_package(Qt5 COMPONENTS Core Xml ${required}) covise_find_package(Qt5 COMPONENTS Core Widgets ${required}) covise_find_package(Qt5 COMPONENTS Core OpenGL ${required}) covise_find_package(Qt5 COMPONENTS Core Gui ${required}) covise_find_package(Qt5 COMPONENTS Core Svg ${required}) covise_find_package(Qt5 COMPONENTS Core PrintSupport ${required}) covise_find_package(Qt5 COMPONENTS Core UiTools ${required}) covise_find_package(Qt5 COMPONENTS Core WebEngine QUIET) covise_find_package(Qt5 COMPONENTS Core WebEngineWidgets QUIET) if (Qt5WebEngine_FOUND AND Qt5WebEngineWidgets_FOUND) set(COVISE_USE_WEBENGINE TRUE) else() covise_find_package(Qt5 COMPONENTS Core WebKit QUIET) covise_find_package(Qt5 COMPONENTS Core WebKitWidgets QUIET) if (Qt5WebKit_FOUND AND Qt5WebKitWidgets_FOUND) set(COVISE_USE_WEBKIT TRUE) endif() endif() covise_find_package(Qt5 COMPONENTS Core Quick QUIET) if (Qt5Quick_FOUND) add_definitions(-DHAVE_QT_QUICK) endif() covise_find_package(Qt5 COMPONENTS Core Location QUIET) if (Qt5Location_FOUND) add_definitions(-DHAVE_QT_LOCATION) endif() covise_find_package(Qt5 COMPONENTS Core Positioning QUIET) if (Qt5Positioning_FOUND) add_definitions(-DHAVE_QT_POSITIONING) endif() covise_find_package(Qt5 COMPONENTS Core Multimedia QUIET) if (Qt5Multimedia_FOUND) add_definitions(-DHAVE_QT_MULTIMEDIA) endif() covise_find_package(Qt5 COMPONENTS Core Script QUIET) covise_find_package(Qt5 COMPONENTS Core ScriptTools QUIET) if (Qt5Script_FOUND AND Qt5ScriptTools_FOUND) add_definitions(-DHAVE_QT_SCRIPT) endif() covise_find_package(Qt5 COMPONENTS Core X11Extras QUIET) if (Qt5X11Extras_FOUND) set(-DHAVE_QT_X11EXTRAS) endif() set(CMAKE_PREFIX_PATH ${SAVED_CMAKE_PREFIX_PATH}) endif() endmacro(find_qt) macro(qt_wrap_cpp) if(NOT COVISE_USE_QT5) qt6_wrap_cpp(${ARGV}) else() qt5_wrap_cpp(${ARGV}) endif() endmacro(qt_wrap_cpp) macro(qt_wrap_ui) IF(NOT COVISE_USE_QT5) qt6_wrap_ui(${ARGV}) ELSE() qt5_wrap_ui(${ARGV}) ENDIF() endmacro(qt_wrap_ui) macro(qt_add_resources) if(NOT COVISE_USE_QT5) qt6_add_resources(${ARGV}) else() qt5_add_resources(${ARGV}) endif() endmacro(qt_add_resources) macro(qt_use_modules target) if(NOT COVISE_USE_QT5) if (NOT Qt6Core_FOUND) covise_find_package(Qt6 COMPONENTS Core REQUIRED) endif() qt6_disable_unicode_defines(${target}) #target_include_directories(${target} SYSTEM ${Qt6${mod}_INCLUDE_DIRS}) #target_link_libraries(${target} ${Qt6${mod}_LIBRARIES}) foreach(mod ${ARGN}) if (mod STREQUAL "Script" OR mod STREQUAL "ScriptTools") continue() elseif (mod STREQUAL "WebEngine") set(mod WebEngineWidgets) endif() #add_definitions(${Qt6${mod}_DEFINITIONS}) #target_include_directories(${target} SYSTEM ${Qt6${mod}_INCLUDE_DIRS}) #target_link_libraries(${target} ${Qt6${mod}_LIBRARIES}) target_link_libraries(${target} Qt6::${mod}) endforeach() else() if (NOT Qt5Core_FOUND) covise_find_package(Qt5 COMPONENTS Core REQUIRED) endif() foreach(mod ${ARGN}) if (mod STREQUAL "Script") covise_find_package(Qt5 COMPONENTS Core Script ${required}) endif() if (mod STREQUAL "ScriptTools") covise_find_package(Qt5 COMPONENTS Core ScriptTools ${required}) endif() if (mod STREQUAL "Quick") covise_find_package(Qt5 COMPONENTS Core Quick ${required}) endif() if (mod STREQUAL "Positioning") covise_find_package(Qt5 COMPONENTS Core Positioning ${required}) endif() if (mod STREQUAL "Location") covise_find_package(Qt5 COMPONENTS Core Location ${required}) endif() if (mod STREQUAL "SvgWidgets") set(mod "Svg") endif() if (mod STREQUAL "OpenGLWidgets") set(mod "OpenGL") endif() target_compile_definitions(${target} PRIVATE ${Qt5${mod}_DEFINITIONS}) include_directories(SYSTEM ${Qt5${mod}_INCLUDE_DIRS}) target_link_libraries(${target} ${Qt5${mod}_LIBRARIES}) endforeach() endif() endmacro(qt_use_modules)