Skip to content

Commit ee1ba5d

Browse files
authored
Merge pull request #156 from tibirna/compile-w-qt6
Compile with qt6
2 parents eb8479a + d09dc22 commit ee1ba5d

30 files changed

Lines changed: 799 additions & 612 deletions

.github/workflows/build.yaml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,27 +22,39 @@ on:
2222

2323
jobs:
2424
build:
25-
name: Build (Linux, Ubuntu 22.04 LTS)
25+
name: Build (Linux, Qt ${{ matrix.qt_major }}, Ubuntu 22.04 LTS)
2626
runs-on: ubuntu-22.04
27+
strategy:
28+
fail-fast: false
29+
matrix:
30+
include:
31+
- qt_major: 5
32+
packages: qtbase5-dev
33+
- qt_major: 6
34+
packages: libgl1-mesa-dev libglx-dev libqt6core5compat6-dev qt6-base-dev
2735
steps:
2836
- name: 'Install build dependencies'
37+
env:
38+
packages: ${{ matrix.packages }}
2939
run: |-
3040
set -e
3141
sudo apt-get update
3242
sudo apt-get install --yes --no-install-recommends \
3343
build-essential \
3444
cmake \
35-
qtbase5-dev
45+
${packages}
3646
3747
- name: 'Checkout Git branch'
3848
uses: actions/checkout@v2.0.0
3949

4050
- name: 'Configure'
51+
env:
52+
qt_major: ${{ matrix.qt_major }}
4153
run: |-
4254
set -e
4355
mkdir build
4456
cd build
45-
cmake ..
57+
cmake -DQT_PACKAGE="Qt${qt_major}" ..
4658
4759
- name: 'Build'
4860
run: |-

CMakeLists.txt

Lines changed: 42 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,49 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
1717
# Instruct CMake to run moc automatically when needed.
1818
set(CMAKE_AUTOMOC ON)
1919

20-
option(UseQt5 "Use Qt5?" ON)
21-
if (UseQt5)
22-
set(QT_MIN_VERSION 5.11.0)
23-
find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Gui Widgets)
24-
set(QT_LIBRARIES Qt5::Widgets)
25-
26-
macro(qt_wrap_ui)
27-
qt5_wrap_ui(${ARGN})
28-
endmacro()
29-
macro(qt_add_resources)
30-
qt5_add_resources(${ARGN})
31-
endmacro()
32-
else()
33-
find_package(Qt4 REQUIRED COMPONENTS QtCore QtGui)
34-
include(${QT_USE_FILE})
35-
36-
macro(qt_wrap_ui)
37-
qt4_wrap_ui(${ARGN})
38-
endmacro()
39-
macro(qt_add_resources)
40-
qt4_add_resources(${ARGN})
41-
endmacro()
42-
endif()
20+
# Select the Qt major version and its dependencies\
21+
set(QT_PACKAGE "Qt6" CACHE STRING "Major Qt version")
22+
set_property(CACHE QT_PACKAGE PROPERTY STRINGS "Qt6" "Qt5" "Qt4")
23+
24+
find_package(QT NAMES ${QT_PACKAGE} REQUIRED)
25+
set(QT Qt${QT_VERSION_MAJOR})
26+
message(STATUS "Using ${QT}")
27+
28+
if (QT_VERSION_MAJOR EQUAL 6)
29+
set(QT_MIN_VERSION 6.2.4)
30+
set(QT_MODULES Core Gui Widgets Core5Compat)
31+
set(QT_LIBRARIES Qt6::Widgets Qt6::Core5Compat)
32+
elseif (QT_VERSION_MAJOR EQUAL 5)
33+
set(QT_MIN_VERSION 5.11.0)
34+
set(QT_MODULES Core Gui Widgets)
35+
set(QT_LIBRARIES Qt5::Widgets)
36+
elseif (QT_MAJOR_VERSION EQUAL 4)
37+
set(QT_MODULES QtCore QtGui)
38+
include(${QT_USE_FILE})
39+
endif()
40+
41+
find_package(${QT} ${QT_MIN_VERSION} REQUIRED COMPONENTS ${QT_MODULES})
42+
43+
if (QT_VERSION VERSION_LESS 5.15)
44+
if (QT_VERSION_MAJOR EQUAL 4)
45+
macro(qt_wrap_ui)
46+
qt4_wrap_ui(${ARGN})
47+
endmacro()
48+
macro(qt_add_resources)
49+
qt4_add_resources(${ARGN})
50+
endmacro()
51+
elseif(QT_VERSION_MAJOR EQUAL 5)
52+
macro(qt_wrap_ui)
53+
qt5_wrap_ui(${ARGN})
54+
endmacro()
55+
macro(qt_add_resources)
56+
qt5_add_resources(${ARGN})
57+
endmacro()
58+
endif()
59+
endif()
60+
4361

62+
# Sources
4463
include_directories(
4564
${CMAKE_SOURCE_DIR}/src
4665
)

src/FileHistory.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,11 @@ void FileHistory::clear(bool complete) {
122122
rowData.clear();
123123

124124
if (testFlag(REL_DATE_F)) {
125+
#if QT_VERSION >= 0x06000
126+
secs = QDateTime::currentDateTime().toSecsSinceEpoch();
127+
#else
125128
secs = QDateTime::currentDateTime().toTime_t();
129+
#endif
126130
#ifdef HAVE_COLUMNTYPE
127131
headerInfo[ColumnType::TIME_COL] = "Last Change";
128132
#else

0 commit comments

Comments
 (0)