Skip to content

Commit bd78964

Browse files
committed
Minimal changes to make Qt6 compilation possible
Untested. Compiles, with a bunch of deprecation warnings. There's likely room for improvement all around.
1 parent 643562d commit bd78964

File tree

5 files changed

+21
-22
lines changed

5 files changed

+21
-22
lines changed

CMakeLists.txt

+9-15
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ project( libmygpo-qt )
55
set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
66
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII" )
77

8-
option(BUILD_WITH_QT4 "Build libmygpo-qt with Qt4" OFF)
8+
option(BUILD_WITH_QT6 "Build libmygpo-qt with Qt6" OFF)
99
option(MYGPO_BUILD_TESTS "Build all unit tests" ON)
1010

11-
if( NOT BUILD_WITH_QT4 )
11+
if( NOT BUILD_WITH_QT6 )
1212
if( MYGPO_BUILD_TESTS )
1313
find_package(Qt5 REQUIRED COMPONENTS Core Network Test CONFIG)
1414
else()
@@ -23,35 +23,29 @@ if( NOT BUILD_WITH_QT4 )
2323
# pkg-config names of QtCore and QtNetwork are Qt5Core and Qt5Network for
2424
# Qt5
2525
set(MYGPO_QT_MAJOR_VERSION "5")
26-
set(MYGPO_QT4_QJSON_DEP "")
2726
else()
28-
message(STATUS "Could not find Qt5, searching for Qt4 instead...")
29-
message(STATUS "Qt4 Support is deprecated, building with Qt4 is no longer officially supported")
27+
message(STATUS "Could not find Qt5, searching for Qt6 instead...")
3028
if( MYGPO_BUILD_TESTS )
31-
find_package( Qt4 COMPONENTS QtCore QtNetwork QtTest REQUIRED )
29+
find_package( Qt6 COMPONENTS Core Network Test REQUIRED )
3230
else( MYGPO_BUILD_TESTS )
33-
find_package( Qt4 COMPONENTS QtCore QtNetwork REQUIRED )
31+
find_package( Qt6 COMPONENTS Core Network REQUIRED )
3432
endif()
35-
set( QT_DONT_USE_QTGUI TRUE )
36-
include( ${QT_USE_FILE} )
33+
set(MYGPO_QT_VERSION_SUFFIX 6)
3734

3835
macro(qt_wrap_cpp)
39-
qt4_wrap_cpp(${ARGN})
36+
qt6_wrap_cpp(${ARGN})
4037
endmacro()
4138

42-
set(MYGPO_QT_MAJOR_VERSION "")
43-
set(MYGPO_QT4_QJSON_DEP "Requires.private: QJson")
39+
set(MYGPO_QT_MAJOR_VERSION "6")
4440

45-
# QJson is only required for Qt4
46-
find_package(QJSON REQUIRED)
4741
endif()
4842

4943
# Don't use absolute path in Mygpo-qtTargets-$buildType.cmake
5044
# (This will have no effect with CMake < 2.8)
5145
# set(QT_USE_IMPORTED_TARGETS TRUE)
5246

5347
set( MYGPO_QT_VERSION_MAJOR "1" )
54-
set( MYGPO_QT_VERSION_MINOR "1" )
48+
set( MYGPO_QT_VERSION_MINOR "2" )
5549
set( MYGPO_QT_VERSION_PATCH "0" )
5650
set( MYGPO_QT_VERSION "${MYGPO_QT_VERSION_MAJOR}.${MYGPO_QT_VERSION_MINOR}.${MYGPO_QT_VERSION_PATCH}" )
5751

libmygpo-qt.pc.in

-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,5 @@ Description: libmygpo-qt is a C++/Qt Library that wraps the gpodder.net WebAPI
88
URL: http://wiki.gpodder.org/wiki/Libmygpo-qt
99
Version: @MYGPO_QT_VERSION@
1010
Requires: Qt@MYGPO_QT_MAJOR_VERSION@Core Qt@MYGPO_QT_MAJOR_VERSION@Network
11-
@MYGPO_QT4_QJSON_DEP@
1211
Libs: -L${libdir} -lmygpo-qt@MYGPO_QT_VERSION_SUFFIX@
1312
Cflags: -I${includedir}

src/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,10 @@ add_library( ${MYGPO_QT_TARGET_NAME} SHARED ${LIBMYGPO_QT_SRC} ${LIBMYGPO_QT_MOC
8181

8282
set_target_properties( ${MYGPO_QT_TARGET_NAME} PROPERTIES VERSION ${MYGPO_QT_VERSION} SOVERSION ${MYGPO_QT_SONAME} DEFINE_SYMBOL MYGPO_MAKEDLL)
8383

84-
if( NOT BUILD_WITH_QT4 )
84+
if( NOT BUILD_WITH_QT6 )
8585
target_link_libraries( ${MYGPO_QT_TARGET_NAME} Qt5::Core Qt5::Network)
8686
else()
87-
target_link_libraries( ${MYGPO_QT_TARGET_NAME} ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} ${QJSON_LIBRARIES})
87+
target_link_libraries( ${MYGPO_QT_TARGET_NAME} Qt6::Core Qt6::Network)
8888
endif()
8989

9090
install( TARGETS ${MYGPO_QT_TARGET_NAME} EXPORT ${MYGPO_QT_TARGET_NAME}Export DESTINATION ${LIB_INSTALL_DIR} )

src/DeviceList.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ bool DeviceListPrivate::parse( const QVariant& data )
6464
DevicePtr ptr( new Device( var, this ) );
6565
m_devicesList.append( ptr );
6666
QVariant v;
67-
v.setValue<DevicePtr>( ptr );
67+
v.setValue<DevicePtr>( QSharedPointer<mygpo::Device>(ptr) );
6868
devList.append( v );
6969
}
7070
m_devices = devList;

tests/CMakeLists.txt

+9-3
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,18 @@ include_directories( ${QJSON_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CU
1111

1212
# UrlBuilder library
1313
add_library( UrlBuilder ${TESTOBJECTS_SRCDIR}/UrlBuilder.cpp ${TESTOBJECTS_SRCDIR}/Config.cpp )
14-
if( NOT BUILD_WITH_QT4 )
14+
if( NOT BUILD_WITH_QT6 )
1515
target_link_libraries( UrlBuilder Qt5::Core )
16+
else()
17+
target_link_libraries( UrlBuilder Qt6::Core )
1618
endif()
1719
# JSONCreator library
1820
QT_WRAP_CPP(LIBMYGPO_QT_MOC_SRC ${TESTOBJECTS_SRCDIR}/EpisodeAction.h ${TESTOBJECTS_SRCDIR}/EpisodeAction_p.h )
1921
add_library( JsonCreator ${TESTOBJECTS_SRCDIR}/JsonCreator.cpp ${TESTOBJECTS_SRCDIR}/EpisodeAction.cpp ${TESTOBJECTS_SRCDIR}/qjsonwrapper/Json.cpp ${LIBMYGPO_QT_MOC_SRC})
20-
if( NOT BUILD_WITH_QT4 )
22+
if( NOT BUILD_WITH_QT6 )
2123
target_link_libraries( JsonCreator Qt5::Core Qt5::Network )
24+
else()
25+
target_link_libraries( JsonCreator Qt6::Core Qt6::Network )
2226
endif()
2327

2428
set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
@@ -29,8 +33,10 @@ macro(add_libmygpo_test _source)
2933
add_executable(${_name} ${_source} ${${_name}_MOC_SRC})
3034
target_link_libraries(${_name} ${QT_QTCORE_LIBRARY} ${QT_QTTEST_LIBRARY} ${QT_QTNETWORK_LIBRARY})
3135
add_test(${_name}-test ${EXECUTABLE_OUTPUT_PATH}/${_name})
32-
if( NOT BUILD_WITH_QT4 )
36+
if( NOT BUILD_WITH_QT6 )
3337
target_link_libraries(${_name} Qt5::Network Qt5::Test)
38+
else()
39+
target_link_libraries(${_name} Qt6::Network Qt6::Test)
3440
endif()
3541
endmacro(add_libmygpo_test)
3642

0 commit comments

Comments
 (0)