diff --git a/CMakeLists.txt b/CMakeLists.txt index 0784349..79c5fc9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,10 +5,11 @@ cmake_minimum_required(VERSION 3.12.4) option(BUILD_TESTS "Build tests" OFF) option(BUILD_UTILS "Build utilities" ON) option(BUILD_DOCS "Build documentation" ON) +option(FORCE_QT5 "Ignore Qt6 when found." OFF) # Version if (NOT PROJECT_VERSION) - set(PROJECT_VERSION "0.0.1") + set(PROJECT_VERSION "0.1.0") endif() if (NOT PROJECT_VERSION_MAJOR) @@ -20,7 +21,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) # Instruct CMake to run moc automatically when needed set(CMAKE_AUTOMOC ON) set(CMAKE_CXX_FLAGS "-g -Wall") -set(QT_MINIMUM_VERSION "5.6.3") +set(QT5_MINIMUM_VERSION "5.15.0") # Install settings if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) @@ -29,8 +30,22 @@ endif () include(GNUInstallDirs) -# Find the QtWidgets library -find_package(Qt5 ${QT_MINIMUM_VERSION} CONFIG REQUIRED Core) +# Find the Qt library +if (NOT FORCE_QT5) + find_package(Qt6 COMPONENTS Core) +endif() +if(Qt6_FOUND) + message(STATUS "Using Qt6") +else() + find_package(Qt5 ${QT5_MINIMUM_VERSION} COMPONENTS Core) + if(Qt5_FOUND) + message(STATUS "Using Qt5") + endif() +endif() +if(NOT Qt${QT_DEFAULT_MAJOR_VERSION}_FOUND) + message(FATAL_ERROR "Qt6 or Qt5 >= ${QT5_MINIMUM_VERSION} are required.") +endif() + find_package(PkgConfig REQUIRED) find_package(Doxygen) @@ -39,7 +54,7 @@ pkg_check_modules(GIOMM giomm-2.4) # look into FindPkgConfig.cmake add_subdirectory (gio-qt) if (BUILD_TESTS) - find_package(Qt5 ${QT_MINIMUM_VERSION} CONFIG REQUIRED Test) + find_package(Qt${QT_DEFAULT_MAJOR_VERSION} COMPONENTS Test REQUIRED) add_subdirectory(test) endif () @@ -69,7 +84,7 @@ if (BUILD_DOCS) COMMENT "Generate documentation via Doxygen" ) - install (FILES ${CMAKE_CURRENT_BINARY_DIR}/docs/gio-qt.qch DESTINATION share/qt5/doc) + install (FILES ${CMAKE_CURRENT_BINARY_DIR}/docs/gio-qt.qch DESTINATION share/qt${QT_DEFAULT_MAJOR_VERSION}/doc) else () message (STATUS "") diff --git a/gio-qt/CMakeLists.txt b/gio-qt/CMakeLists.txt index 5805d4f..c7f1bab 100644 --- a/gio-qt/CMakeLists.txt +++ b/gio-qt/CMakeLists.txt @@ -55,7 +55,7 @@ PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include ) -target_link_libraries (gio-qt Qt5::Core ${GIOMM_LIBRARIES}) +target_link_libraries (gio-qt Qt::Core ${GIOMM_LIBRARIES}) target_compile_definitions(gio-qt PRIVATE QT_NO_KEYWORDS diff --git a/gio-qt/gio-qt.pc.in b/gio-qt/gio-qt.pc.in index eb7ebc3..78a812d 100644 --- a/gio-qt/gio-qt.pc.in +++ b/gio-qt/gio-qt.pc.in @@ -6,7 +6,7 @@ includedir=${prefix}/include Name: gio-qt Description: Qt wrapper library for GIO. Version: @PROJECT_VERSION@ -Requires: glibmm-2.4, Qt5Core +Requires: glibmm-2.4, Qt@QT5_MINIMUM_VERSION@Core Libs: -L${libdir} -lgio-qt -Cflags: -I${includedir} -I${includedir}/gio-qt \ No newline at end of file +Cflags: -I${includedir} -I${includedir}/gio-qt diff --git a/gio-qt/include/dgiofile.h b/gio-qt/include/dgiofile.h index 1a39f4a..7f5b71d 100644 --- a/gio-qt/include/dgiofile.h +++ b/gio-qt/include/dgiofile.h @@ -8,6 +8,8 @@ #include #include +#include + namespace Gio { class File; } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 20d7b19..d5055c1 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -10,7 +10,7 @@ function(DGIO_CREATE_TEST _generated_target_name _input_file_name _use_giomm) ${_input_file_name} ) add_test (NAME ${_generated_target_name} COMMAND ${_generated_target_name} ) - target_link_libraries (${_generated_target_name} gio-qt Qt5::Test ${extra_libraries}) + target_link_libraries (${_generated_target_name} gio-qt Qt::Test ${extra_libraries}) if (_use_giomm) target_include_directories(${_generated_target_name} PRIVATE ${GIOMM_INCLUDE_DIRS}) target_compile_definitions(${_generated_target_name} PRIVATE QT_NO_KEYWORDS)