build(CMake): also support build with Qt6
This commit is contained in:
parent
e472000507
commit
c6a7032d73
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: 2022 Gary Wang <wzc782970009@gmail.com>
|
# SPDX-FileCopyrightText: 2022 - 2023 Gary Wang <git@blumia.net>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
@ -11,17 +11,33 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake)
|
||||||
include (GNUInstallDirs)
|
include (GNUInstallDirs)
|
||||||
include (FeatureSummary)
|
include (FeatureSummary)
|
||||||
|
|
||||||
|
option (EXIV2_METADATA_SUPPORT "Better image metadata support via libexiv2" ON)
|
||||||
|
option (PREFER_QT_5 "Prefer to use Qt 5 even if we have Qt 6" ON)
|
||||||
|
|
||||||
set (CMAKE_AUTOMOC ON)
|
set (CMAKE_AUTOMOC ON)
|
||||||
set (CMAKE_AUTORCC ON)
|
set (CMAKE_AUTORCC ON)
|
||||||
set (QT_MINIMUM_VERSION "5.10")
|
|
||||||
|
|
||||||
option (EXIV2_METADATA_SUPPORT "Better image metadata support via libexiv2" ON)
|
if (PREFER_QT_5)
|
||||||
|
find_package(QT NAMES Qt5 REQUIRED COMPONENTS Core)
|
||||||
|
else ()
|
||||||
|
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
|
||||||
|
endif ()
|
||||||
|
|
||||||
find_package(Qt5 ${QT_MINIMUM_VERSION} REQUIRED
|
if (${QT_VERSION_MAJOR} EQUAL "5")
|
||||||
|
set (QT_MINIMUM_VERSION "5.10")
|
||||||
|
else ()
|
||||||
|
set (QT_MINIMUM_VERSION "6.4")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
find_package(Qt${QT_VERSION_MAJOR} ${QT_MINIMUM_VERSION} REQUIRED
|
||||||
COMPONENTS Widgets Svg LinguistTools
|
COMPONENTS Widgets Svg LinguistTools
|
||||||
OPTIONAL_COMPONENTS DBus
|
OPTIONAL_COMPONENTS DBus
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (${QT_VERSION_MAJOR} EQUAL "6")
|
||||||
|
find_package(Qt${QT_DEFAULT_MAJOR_VERSION} ${QT_MINIMUM_VERSION} CONFIG REQUIRED SvgWidgets)
|
||||||
|
endif ()
|
||||||
|
|
||||||
if (EXIV2_METADATA_SUPPORT)
|
if (EXIV2_METADATA_SUPPORT)
|
||||||
find_package(LibExiv2)
|
find_package(LibExiv2)
|
||||||
set_package_properties(LibExiv2 PROPERTIES
|
set_package_properties(LibExiv2 PROPERTIES
|
||||||
|
@ -86,7 +102,12 @@ set (EXE_NAME ppic)
|
||||||
file (GLOB PPIC_TS_FILES app/translations/*.ts)
|
file (GLOB PPIC_TS_FILES app/translations/*.ts)
|
||||||
set (PPIC_CPP_FILES_FOR_I18N ${PPIC_CPP_FILES})
|
set (PPIC_CPP_FILES_FOR_I18N ${PPIC_CPP_FILES})
|
||||||
|
|
||||||
qt5_create_translation(PPIC_QM_FILES ${PPIC_CPP_FILES_FOR_I18N} ${PPIC_TS_FILES})
|
if (${QT_VERSION_MAJOR} EQUAL "5")
|
||||||
|
# TODO: remove this when we lift our Qt5 minimum version to Qt 5.15
|
||||||
|
qt5_create_translation(PPIC_QM_FILES ${PPIC_CPP_FILES_FOR_I18N} ${PPIC_TS_FILES})
|
||||||
|
else ()
|
||||||
|
qt_create_translation(PPIC_QM_FILES ${PPIC_CPP_FILES_FOR_I18N} ${PPIC_TS_FILES})
|
||||||
|
endif ()
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
list(APPEND PPIC_RC_FILES assets/pineapple-pictures.rc)
|
list(APPEND PPIC_RC_FILES assets/pineapple-pictures.rc)
|
||||||
|
@ -100,7 +121,10 @@ add_executable (${EXE_NAME}
|
||||||
${PPIC_QM_FILES}
|
${PPIC_QM_FILES}
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries (${EXE_NAME} Qt5::Widgets Qt5::Svg)
|
target_link_libraries (${EXE_NAME} Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Svg)
|
||||||
|
if (${QT_VERSION_MAJOR} EQUAL "6")
|
||||||
|
target_link_libraries (${EXE_NAME} Qt::SvgWidgets)
|
||||||
|
endif ()
|
||||||
|
|
||||||
if (LibExiv2_FOUND)
|
if (LibExiv2_FOUND)
|
||||||
message(INFO ${LibExiv2_INCLUDE_DIRS})
|
message(INFO ${LibExiv2_INCLUDE_DIRS})
|
||||||
|
|
Loading…
Reference in New Issue
Block a user