@@ -6,60 +6,46 @@ set(APPDIR_USR ${APPDIR}/usr)
66set (LINUXDEPLOY ${CMAKE_BINARY_DIR } /linuxdeploy-x86_64.AppImage)
77set (LINUXDEPLOY_QT ${CMAKE_BINARY_DIR } /linuxdeploy-plugin-qt-x86_64.AppImage)
88
9- function (resolve_qt6_qmake out_var )
10- set (qt6_qmake_candidates "" )
9+ set (APPIMAGE_ENV_VARS
10+ LDAI_OUTPUT=NotepadNext-v${PROJECT_VERSION } -x86_64.AppImage
11+ )
1112
12- find_package (Qt6CoreTools QUIET )
13- if (TARGET Qt6::qmake)
14- get_target_property (qt6_qmake_target Qt6::qmake IMPORTED_LOCATION )
15- if (qt6_qmake_target)
16- list (APPEND qt6_qmake_candidates "${qt6_qmake_target} " )
17- endif ()
18- endif ()
13+ if (DEFINED ENV{QMAKE} AND NOT "$ENV{QMAKE} " STREQUAL "" )
14+ set (APPIMAGE_QMAKE "$ENV{QMAKE} " )
15+ else ()
16+ find_program (APPIMAGE_QMAKE NAMES qmake )
17+ endif ()
1918
20- find_program ( qmake6_executable
21- NAMES qmake6 qmake-qt6 qmake
22- HINTS
23- /usr/lib/qt6/bin
24- /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}/qt6/bin
19+ if ( NOT APPIMAGE_QMAKE)
20+ message ( FATAL_ERROR
21+ "Could not find qmake for AppImage packaging. \n "
22+ "Please configure with a Qt 6 qmake, for example: \n "
23+ " QMAKE=$(which qmake6) cmake -S . -B build -DAPP_DISTRIBUTION=AppImage"
2524 )
26- if (qmake6_executable)
27- list (APPEND qt6_qmake_candidates "${qmake6_executable} " )
28- endif ()
29-
30- list (REMOVE_DUPLICATES qt6_qmake_candidates)
31-
32- foreach (qmake_candidate IN LISTS qt6_qmake_candidates)
33- execute_process (
34- COMMAND "${qmake_candidate} " -query QT_VERSION
35- OUTPUT_VARIABLE qmake_qt_version
36- OUTPUT_STRIP_TRAILING_WHITESPACE
37- ERROR_QUIET
38- RESULT_VARIABLE qmake_result
39- )
40- if (qmake_result EQUAL 0 AND qmake_qt_version MATCHES "^6\\ ." )
41- set (${out_var} "${qmake_candidate} " PARENT_SCOPE )
42- return ()
43- endif ()
44- endforeach ()
25+ endif ()
4526
46- set (${out_var} "" PARENT_SCOPE )
47- endfunction ()
27+ execute_process (
28+ COMMAND "${APPIMAGE_QMAKE} " -query QT_VERSION
29+ OUTPUT_VARIABLE APPIMAGE_QT_VERSION
30+ OUTPUT_STRIP_TRAILING_WHITESPACE
31+ ERROR_QUIET
32+ RESULT_VARIABLE APPIMAGE_QMAKE_RESULT
33+ )
4834
49- resolve_qt6_qmake (QT6_QMAKE )
50- if (QT6_QMAKE)
51- message (STATUS "Using Qt qmake for AppImage packaging: ${QT6_QMAKE} " )
52- set (APPIMAGE_ENV_VARS
53- LDAI_OUTPUT=NotepadNext-v${PROJECT_VERSION } -x86_64.AppImage
54- QMAKE=${QT6_QMAKE}
55- )
56- else ()
57- message (WARNING "Could not locate a Qt 6 qmake binary for AppImage packaging" )
58- set (APPIMAGE_ENV_VARS
59- LDAI_OUTPUT=NotepadNext-v${PROJECT_VERSION } -x86_64.AppImage
35+ if (NOT APPIMAGE_QMAKE_RESULT EQUAL 0 OR NOT APPIMAGE_QT_VERSION MATCHES "^6\\ ." )
36+ message (FATAL_ERROR
37+ "AppImage packaging requires a Qt 6 qmake, but CMake found:\n "
38+ " ${APPIMAGE_QMAKE} \n "
39+ "Reported Qt version:\n "
40+ " ${APPIMAGE_QT_VERSION} \n "
41+ "Please re-run CMake with a Qt 6 qmake, for example:\n "
42+ " QMAKE=$(which qmake6) cmake -S . -B build -DAPP_DISTRIBUTION=AppImage"
6043 )
6144endif ()
6245
46+ message (STATUS "Using qmake for AppImage packaging: ${APPIMAGE_QMAKE} " )
47+ list (APPEND APPIMAGE_ENV_VARS QMAKE=${APPIMAGE_QMAKE} )
48+
6349install (TARGETS NotepadNext
6450 RUNTIME DESTINATION bin
6551)
0 commit comments