From 1e06a7aef2b4528e65f22960038d1eb6ce584594 Mon Sep 17 00:00:00 2001 From: Rick Vogel Date: Tue, 20 Dec 2022 14:21:29 +0100 Subject: [PATCH] populate cmake prefix path --- .github/workflows/cmake.yml | 14 ++++- .../iotdashboard_smoketest/CMakeLists.txt | 57 ++++--------------- 2 files changed, 24 insertions(+), 47 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 5c77f6f7..39dc1249 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -35,6 +35,7 @@ jobs: qtversion: "5.15.2", qtdirkey: "Qt5_DIR", qtdirvalue: "../Qt/5.15.2/msvc2019_64/lib/cmake/Qt5", + qtprefixpath: "../Qt/5.15.2/msvc2019_64", }, screenshot_filename: "windows-latest-msvc-qt-5-15-2.jpg", } @@ -53,6 +54,7 @@ jobs: qtversion: "6.2.4", qtdirkey: "Qt6_DIR", qtdirvalue: "../Qt/6.2.4/msvc2019_64/lib/cmake/Qt6", + qtprefixpath: "../Qt/6.2.4/msvc2019_64", }, screenshot_filename: "windows-latest-msvc-qt-6-2-4.jpg", } @@ -71,6 +73,7 @@ jobs: qtversion: "5.15.2", qtdirkey: "Qt5_DIR", qtdirvalue: "../Qt/5.15.2/msvc2019_64/lib/cmake/Qt5", + qtprefixpath: "../Qt/5.15.2/msvc2019_64", }, screenshot_filename: "windows-2019-msvc-qt-5-15-2.jpg", } @@ -89,6 +92,7 @@ jobs: qtversion: "6.2.4", qtdirkey: "Qt6_DIR", qtdirvalue: "../Qt/6.2.4/msvc2019_64/lib/cmake/Qt6", + qtprefixpath: "../Qt/6.2.4/msvc2019_64", }, screenshot_filename: "windows-2019-msvc-qt-6-2-4.jpg", } @@ -107,6 +111,7 @@ jobs: qtversion: "5.15.2", qtdirkey: "Qt5_DIR", qtdirvalue: "../Qt/5.15.2/gcc_64/lib/cmake/Qt5", + qtprefixpath: "../Qt/5.15.2/gcc_64", }, screenshot_filename: "ubuntu-latest-gcc-qt-5-15-2.jpg", } @@ -125,6 +130,7 @@ jobs: qtversion: "6.2.4", qtdirkey: "Qt6_DIR", qtdirvalue: "../Qt/6.2.4/gcc_64/lib/cmake/Qt6", + qtprefixpath: "../Qt/6.2.4/gcc_64", }, screenshot_filename: "ubuntu-latest-gcc-qt-6-2-4.jpg", } @@ -143,6 +149,7 @@ jobs: qtversion: "5.15.2", qtdirkey: "Qt5_DIR", qtdirvalue: "../Qt/5.15.2/gcc_64/lib/cmake/Qt5", + qtprefixpath: "../Qt/5.15.2/gcc_64", }, screenshot_filename: "ubuntu-latest-gcc-9-qt-5-15-2.jpg", } @@ -161,6 +168,7 @@ jobs: qtversion: "6.2.4", qtdirkey: "Qt6_DIR", qtdirvalue: "../Qt/6.2.4/gcc_64/lib/cmake/Qt6", + qtprefixpath: "../Qt/6.2.4/gcc_64", }, screenshot_filename: "ubuntu-latest-gcc-9-qt-6-2-4.jpg", } @@ -178,6 +186,7 @@ jobs: qtversion: "5.15.2", qtdirkey: "Qt5_DIR", qtdirvalue: "../Qt/5.15.2/clang_64/lib/cmake/Qt5", + qtprefixpath: "../Qt/5.15.2/clang_64", }, screenshot_filename: "macos-latest-clang-qt-5-15-2.jpg", } @@ -195,6 +204,7 @@ jobs: qtversion: "6.2.4", qtdirkey: "Qt6_DIR", qtdirvalue: "../Qt/6.2.4/clang_64/lib/cmake/Qt6", + qtprefixpath: "../Qt/6.2.4/clang_64", }, screenshot_filename: "macos-latest-clang-qt-6-2-4.jpg", } @@ -343,7 +353,7 @@ jobs: -G "${{ matrix.config.generators }}" \ -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ -DCMAKE_INSTALL_PREFIX:PATH=qskinny_install \ - -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" + -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" - name: Build ( QSkinny ) shell: bash @@ -414,7 +424,7 @@ jobs: -B qskinny_build_test \ -G "${{ matrix.config.generators }}" \ -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ - -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \ + -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \ -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny - name: Build ( CMake Integration Test ) diff --git a/examples/iotdashboard_smoketest/CMakeLists.txt b/examples/iotdashboard_smoketest/CMakeLists.txt index 3d65b45c..2ee64519 100644 --- a/examples/iotdashboard_smoketest/CMakeLists.txt +++ b/examples/iotdashboard_smoketest/CMakeLists.txt @@ -4,54 +4,21 @@ project(iotdashboard_smoketest) find_package(QSkinny REQUIRED) -if("${Qt5_DIR}" STREQUAL "" AND "${Qt6_DIR}" STREQUAL "") - message(FATAL_ERROR "Neither Qt5_DIR nor Qt6_DIR defined!") +find_package(Qt6 COMPONENTS Core QUIET) +if (NOT Qt6_FOUND) + find_package(Qt5 5.15 REQUIRED COMPONENTS Core Gui OpenGL Quick Svg Widgets) + find_package(Qt5 5.15 OPTIONAL_COMPONENTS QuickWidgets WebEngine WebEngineCore) + message(WARNING "using QSkinny's 'qt_add_executable()'") + function(qt_add_executable) + add_executable(${ARGV}) + endfunction(qt_add_executable) + message(WARNING "using QSkinny's 'qt_add_library()'") + function(qt_add_library) + add_library(${ARGV}) + endfunction(qt_add_library) else() - # force include Qt's private headers - if(NOT "${Qt5_DIR}" STREQUAL "") - set(Qt5Core_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - set(Qt5Gui_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - set(Qt5OpenGL_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - set(Qt5Quick_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - set(Qt5QuickWidgets_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - set(Qt5Svg_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - set(Qt5WebEngine_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - set(Qt5WebEngineCore_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - set(Qt5Widgets_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - elseif(NOT "${Qt6_DIR}" STREQUAL "") - #set(Qt6Core_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - #set(Qt6Gui_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - set(Qt6OpenGL_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - #set(Qt6Quick_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - #set(Qt6QuickWidgets_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - #set(Qt6Svg_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - set(Qt6WebEngine_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - set(Qt6WebEngineCore_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - set(Qt6WebEngineQuick_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - #set(Qt6Widgets_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE) - endif() -endif() - -if(NOT "${Qt5_DIR}" STREQUAL "") - find_package(Qt5 REQUIRED COMPONENTS Core Gui OpenGL Quick Svg Widgets) - find_package(Qt5 OPTIONAL_COMPONENTS QuickWidgets WebEngine WebEngineCore) - set(Qt Qt${Qt5_VERSION_MAJOR}) - set(Qt_VERSION ${Qt5_VERSION}) - set(Qt_VERSION_MAJOR ${Qt5_VERSION_MAJOR}) - set(Qt_VERSION_MINOR ${Qt5_VERSION_MINOR}) - set(Qt_VERSION_PATCH ${Qt5_VERSION_PATCH}) -elseif(NOT "${Qt6_DIR}" STREQUAL "") - - string(REPLACE "/lib/cmake/Qt6" "" Qt6_PREFIX_DIR "${Qt6_DIR}") - set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${Qt6_PREFIX_DIR}) - find_package(Qt6 REQUIRED COMPONENTS Core Gui OpenGL Quick QuickWidgets Svg Widgets) find_package(Qt6 OPTIONAL_COMPONENTS QuickWidgets WebEngineCore WebEngineQuick) - set(Qt Qt${Qt6_VERSION_MAJOR}) - set(Qt_VERSION ${Qt6_VERSION}) - set(Qt_VERSION_MAJOR ${Qt6_VERSION_MAJOR}) - set(Qt_VERSION_MINOR ${Qt6_VERSION_MINOR}) - set(Qt_VERSION_PATCH ${Qt6_VERSION_PATCH}) endif() add_subdirectory(../iotdashboard ${CMAKE_CURRENT_BINARY_DIR}/../iotdashboard) \ No newline at end of file