diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 064523e..f201456 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -52,8 +52,7 @@ jobs: -DUSE_SHARED_ZLIB=on \ -DUSE_SHARED_PIXMAN=on \ -DUSE_SHARED_FREETYPE=on \ - -DUSE_SHARED_HARFBUZZ=on \ - -DQT_PLUGIN_PATH=`qmake -query QT_INSTALL_PLUGINS` + -DUSE_SHARED_HARFBUZZ=on cmake --build build --config Release sudo cmake --install build --config Release diff --git a/CMakeLists.txt b/CMakeLists.txt index ffb86a3..0682ea7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,27 +33,22 @@ target_link_libraries(qaseprite set(QT_PLUGIN_PATH "" CACHE STRING "Install location for Qt plugins") if(NOT QT_PLUGIN_PATH) + set(QT_INSTALL_PREFIX ${QT${QT_VERSION_MAJOR}_INSTALL_PREFIX}) + set(QT_INSTALL_PLUGINS ${QT${QT_VERSION_MAJOR}_INSTALL_PLUGINS}) + if(DEFINED ENV{QT_PLUGIN_PATH}) set(QT_PLUGIN_PATH $ENV{QT_PLUGIN_PATH}) + elseif(QT_INSTALL_PREFIX AND QT_INSTALL_PLUGINS) + set(QT_PLUGIN_PATH "${QT_INSTALL_PREFIX}/${QT_INSTALL_PLUGINS}") else() - set(QT_INSTALL_PREFIX ${QT${QT_VERSION_MAJOR}_INSTALL_PREFIX}) - set(QT_INSTALL_PLUGINS ${QT${QT_VERSION_MAJOR}_INSTALL_PLUGINS}) - - # If QT_INSTALL_PREFIX is empty, try to derive it from QT_DIR, cutting off the - # last three components ("lib/cmake/Qt5") from the path - if(NOT QT_INSTALL_PREFIX) - set(QT_INSTALL_PREFIX ${QT_DIR}) - get_filename_component(QT_INSTALL_PREFIX ${QT_INSTALL_PREFIX} DIRECTORY) - get_filename_component(QT_INSTALL_PREFIX ${QT_INSTALL_PREFIX} DIRECTORY) - get_filename_component(QT_INSTALL_PREFIX ${QT_INSTALL_PREFIX} DIRECTORY) + find_program(QT_QMAKE_EXECUTABLE NAMES "qmake" "qmake-qt5" "qmake.exe") + if(QT_QMAKE_EXECUTABLE) + execute_process(COMMAND "${QT_QMAKE_EXECUTABLE}" "-query" "QT_INSTALL_PLUGINS" + OUTPUT_VARIABLE QT_PLUGIN_PATH + OUTPUT_STRIP_TRAILING_WHITESPACE) + else() + message(FATAL_ERROR "Cannot find qmake executable") endif() - - # If QT_INSTALL_PLUGINS is empty, set it to "plugins" - if(NOT QT_INSTALL_PLUGINS) - set(QT_INSTALL_PLUGINS "plugins") - endif() - - set(QT_PLUGIN_PATH "${QT_INSTALL_PREFIX}/${QT_INSTALL_PLUGINS}") endif() set(QT_PLUGIN_PATH "${QT_PLUGIN_PATH}" CACHE STRING "Install location for Qt plugins" FORCE) endif()