diff --git a/.reuse/dep5 b/.reuse/dep5 index 18c9ce9..b71c06c 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -9,7 +9,7 @@ Copyright: None License: CC0-1.0 # gitignore -Files: .clog.toml .gitignore org.freedesktop.UDisks2.ObjectManager.xml CHANGELOG.md +Files: .clog.toml .gitignore CHANGELOG.md src/org.freedesktop.UDisks2.ObjectManager.xml Copyright: None License: CC0-1.0 @@ -19,7 +19,7 @@ Copyright: None License: CC0-1.0 # Project file -Files: *.pro *.pri +Files: *CMakeLists.txt config.h.in .tx/* Copyright: None License: CC0-1.0 @@ -28,7 +28,17 @@ Files: README.md README.zh_CN.md CHANGELOG.md Copyright: UnionTech Software Technology Co., Ltd. License: CC-BY-4.0 -# org.freedesktop.UDisks2.xml -Files: org.freedesktop.UDisks2.xml +# src/org.freedesktop.UDisks2.xml +Files: src/org.freedesktop.UDisks2.xml Copyright: 2011 David Zeuthen License: LGPL-2.0-or-later + +# src/modules +Files: src/modules/* +Copyright: 2024 usertow +License: LGPL-2.0-or-later + +# src +Files: src/* +Copyright: UnionTech Software Technology Co., Ltd. +License: GPL-3.0-or-later diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..edb8da4 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,68 @@ +cmake_minimum_required(VERSION 3.7 FATAL_ERROR) + +project(udisks-qt LANGUAGES CXX VERSION 0.1.0) + +find_package(Qt5 COMPONENTS Core DBus REQUIRED) + +set(UDISKS_API_LEVEL "0") + +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +# Forbid in-tree building +if(${CMAKE_SOURCE_DIR} MATCHES ${CMAKE_BINARY_DIR}) + message(STATUS "Please do an out-of-tree build:") + message(STATUS "rm -f CMakeCache.txt && mkdir build && cd build; cmake .. && make") + message(FATAL_ERROR "In-tree-build detected!") +endif(${CMAKE_SOURCE_DIR} MATCHES ${CMAKE_BINARY_DIR}) + +# +# Options +# + +# NONE + +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX + "/usr" CACHE PATH "udisks default install prefix" FORCE) +endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + +# +# Configure files +# +set (PREFIXDIR "${CMAKE_INSTALL_PREFIX}") +set (DATADIR "${CMAKE_INSTALL_PREFIX}/share") +set (PKGDATADIR "${DATA_INSTALL_DIR}") +set (LIBDIR "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}") +set (PKGLIBDIR "${LIBDIR}/udisks") +set (GETTEXT_PACKAGE "udisks") +set (LOCALE_DIR "${DATADIR}/locale") +set (VERSION "${UDISKS_VERSION}") +set (BUILDDIR "${CMAKE_BINARY_DIR}") +set (LOCALSTATEDIR "/var") + +add_definitions("-DLOCALSTATEDIR=\"${LOCALSTATEDIR}\"") + +set(CMAKE_INSTALL_LIBDIR "lib/${CMAKE_LIBRARY_ARCHITECTURE}" CACHE PATH "Output directory for libraries") + +configure_file(config.h.in ${CMAKE_BINARY_DIR}/config.h) + +# +# Custom C flags +# +set (MAINTAINER_CFLAGS "-Werror -Wall -Wcast-align -Wno-uninitialized -Wempty-body -Wformat-security -Winit-self") +option (DISABLE_MAINTAINER_CFLAGS "Disable maintainer CFlags" ON) +if (DISABLE_MAINTAINER_CFLAGS) + set (MAINTAINER_CFLAGS "") +endif (DISABLE_MAINTAINER_CFLAGS) +add_definitions(${MAINTAINER_CFLAGS}) + +include_directories( + ${CMAKE_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_BINARY_DIR} +) + +add_subdirectory(src) diff --git a/README.md b/README.md index 60393bd..3c02181 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ UDisks2 DBus interfaces binding of Qt5. $ cd /path/to/your/source/code $ mkdir build $ cd build -$ qmake ../ +$ cmake ../ $ make $ sudo make install ``` @@ -33,4 +33,4 @@ We encourage you to report issues and contribute changes ## License -udisks2-qt5 is licensed under [GPL-3.0-or-later](LICENSE.txt) \ No newline at end of file +udisks2-qt5 is licensed under [GPL-3.0-or-later](LICENSE.txt) diff --git a/README.zh_CN.md b/README.zh_CN.md index 2554f1a..c271d1d 100644 --- a/README.zh_CN.md +++ b/README.zh_CN.md @@ -15,7 +15,7 @@ $ cd /path/to/your/source/code $ mkdir build $ cd build -$ qmake ../ +$ cmake ../ $ make $ sudo make install ``` @@ -34,4 +34,4 @@ $ sudo make install ## 开源许可证 -udisks2-qt5 在 [GPL-3.0-or-later](LICENSE.txt)下发布。 \ No newline at end of file +udisks2-qt5 在 [GPL-3.0-or-later](LICENSE.txt)下发布。 diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..386eb52 --- /dev/null +++ b/config.h.in @@ -0,0 +1,19 @@ +#ifndef CONFIG_H +#define CONFIG_H + +/* Paths */ +#define LOCALEDIR "@LOCALE_DIR@" +#define PKGDATADIR "@PKGDATADIR@" +#define PKGLIBDIR "@PKGLIBDIR@" +#define PREFIXDIR "@PREFIXDIR@" +#define DATADIR "@DATADIR@" +#define LIBDIR "@LIBDIR@" +#define BUILDDIR "@BUILDDIR@" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "@PROJECT_VERSION@" + +/* Version number of package */ +#define VERSION "@PROJECT_VERSION@" + +#endif /*CONFIG_H*/ diff --git a/private/private.pri b/private/private.pri deleted file mode 100644 index d13cb40..0000000 --- a/private/private.pri +++ /dev/null @@ -1,2 +0,0 @@ -HEADERS += \ - $$PWD/dblockdevice_p.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..1de6713 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,60 @@ +set(udisksqt_SRC + dblockdevice.cpp + dblockpartition.cpp + ddiskdevice.cpp + ddiskmanager.cpp + dudisksjob.cpp + udisks2_dbus_common.cpp +) + +set(udisksqt_HEADERS + dblockdevice.h + dblockpartition.h + ddiskdevice.h + ddiskmanager.h + dudisksjob.h + udisks2_dbus_common.h +) + +set(udisksqt_HEADERS_PRIVATE + private/dblockdevice_p.h +) + +set_property(SOURCE org.freedesktop.UDisks2.xml PROPERTY INCLUDE udisks2_dbus_common.h) +set_property(SOURCE org.freedesktop.UDisks2.xml PROPERTY NO_NAMESPACE true) +qt5_add_dbus_interface(udisksqt_SRC org.freedesktop.UDisks2.xml udisks2_interface) + +set_property(SOURCE org.freedesktop.DBus.ObjectManager.xml PROPERTY INCLUDE udisks2_dbus_common.h) +set_property(SOURCE org.freedesktop.DBus.ObjectManager.xml PROPERTY NO_NAMESPACE true) +qt5_add_dbus_interface(udisksqt_SRC org.freedesktop.UDisks2.ObjectManager.xml objectmanager_interface) + +add_library(udisks2-qt5 SHARED ${udisksqt_SRC} ${udisksqt_HEADERS} ${udisksqt_HEADERS_PRIVATE}) +set_target_properties(udisks2-qt5 PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${UDISKS_API_LEVEL}) + +list(APPEND udisksqt_HEADERS + ${CMAKE_CURRENT_BINARY_DIR}/udisks2_interface.h + ${CMAKE_CURRENT_BINARY_DIR}/objectmanager_interface.h +) +target_link_libraries(udisks2-qt5 + Qt5::Core + Qt5::DBus +) + +set_property(TARGET udisks2-qt5 PROPERTY COMPILE_DEFINITIONS UDISKS_STATIC) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/udisks2-qt5.pc.in + ${CMAKE_CURRENT_BINARY_DIR}/udisks2-qt5.pc + @ONLY +) + +install(TARGETS udisks2-qt5 DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/udisks2-qt5.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig +) +install(FILES ${udisksqt_HEADERS} + DESTINATION include/udisks2-qt5 +) +install(FILES ${udisksqt_HEADERS_PRIVATE} + DESTINATION include/udisks2-qt5/private +) +add_subdirectory(modules) diff --git a/dblockdevice.cpp b/src/dblockdevice.cpp similarity index 100% rename from dblockdevice.cpp rename to src/dblockdevice.cpp diff --git a/dblockdevice.h b/src/dblockdevice.h similarity index 100% rename from dblockdevice.h rename to src/dblockdevice.h diff --git a/dblockpartition.cpp b/src/dblockpartition.cpp similarity index 100% rename from dblockpartition.cpp rename to src/dblockpartition.cpp diff --git a/dblockpartition.h b/src/dblockpartition.h similarity index 100% rename from dblockpartition.h rename to src/dblockpartition.h diff --git a/ddiskdevice.cpp b/src/ddiskdevice.cpp similarity index 100% rename from ddiskdevice.cpp rename to src/ddiskdevice.cpp diff --git a/ddiskdevice.h b/src/ddiskdevice.h similarity index 100% rename from ddiskdevice.h rename to src/ddiskdevice.h diff --git a/ddiskmanager.cpp b/src/ddiskmanager.cpp similarity index 100% rename from ddiskmanager.cpp rename to src/ddiskmanager.cpp diff --git a/ddiskmanager.h b/src/ddiskmanager.h similarity index 100% rename from ddiskmanager.h rename to src/ddiskmanager.h diff --git a/dudisksjob.cpp b/src/dudisksjob.cpp similarity index 100% rename from dudisksjob.cpp rename to src/dudisksjob.cpp diff --git a/dudisksjob.h b/src/dudisksjob.h similarity index 100% rename from dudisksjob.h rename to src/dudisksjob.h diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt new file mode 100644 index 0000000..f3c5914 --- /dev/null +++ b/src/modules/CMakeLists.txt @@ -0,0 +1,15 @@ +# CMakeLists for UDisks2-QT5 lib extra modules + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/udisks2qt5-config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/udisks2qt5-config.cmake + @ONLY +) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/udisks2qt5-config-version.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/udisks2qt5-config-version.cmake + @ONLY +) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/udisks2qt5-config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/udisks2qt5-config-version.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/udisks2-qt5/ +) diff --git a/src/modules/udisks2qt5-config-version.cmake.in b/src/modules/udisks2qt5-config-version.cmake.in new file mode 100644 index 0000000..78200a1 --- /dev/null +++ b/src/modules/udisks2qt5-config-version.cmake.in @@ -0,0 +1,12 @@ +SET(PACKAGE_VERSION @VERSION@) +IF (PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION) + SET(PACKAGE_VERSION_EXACT "true") +ENDIF (PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION) +IF (NOT PACKAGE_FIND_VERSION VERSION_GREATER PACKAGE_VERSION) + SET(PACKAGE_VERSION_COMPATIBLE "true") +ELSE (NOT PACKAGE_FIND_VERSION VERSION_GREATER PACKAGE_VERSION) + SET(PACKAGE_VERSION_UNSUITABLE "true") +ENDIF (NOT PACKAGE_FIND_VERSION VERSION_GREATER PACKAGE_VERSION) +IF (PACKAGE_VERSION_UNSUITABLE) + MESSAGE("VERSION CHECK FAILED FOR ${PACKAGE_FIND_NAME}. WANTED ${PACKAGE_FIND_VERSION}, HAVE ${PACKAGE_VERSION}") +ENDIF(PACKAGE_VERSION_UNSUITABLE) diff --git a/src/modules/udisks2qt5-config.cmake.in b/src/modules/udisks2qt5-config.cmake.in new file mode 100644 index 0000000..3009c47 --- /dev/null +++ b/src/modules/udisks2qt5-config.cmake.in @@ -0,0 +1,11 @@ +# - Config information for UDisks2-Qt5 +# This file defines: +# +# UDisks2Qt5_INCLUDE_DIR - the UDisks2Qt5 include directory +# UDisks2Qt5_LIBRARIES - Link these to use UDisks2-Qt5 + +SET(prefix "@CMAKE_INSTALL_PREFIX@") +SET(exec_prefix "@CMAKE_INSTALL_PREFIX@") +SET(UDisks2Qt5_LIBRARIES "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libudisks2-qt5.so" CACHE FILEPATH "Libraries for UDisks2-Qt5") +SET(UDisks2Qt5_INCLUDE_DIR "@CMAKE_INSTALL_PREFIX@/include/udisks2-qt5/" CACHE PATH "Include path for UDisks2-Qt5") +SET(UDisks2Qt5_FOUND "TRUE") diff --git a/org.freedesktop.UDisks2.ObjectManager.xml b/src/org.freedesktop.UDisks2.ObjectManager.xml similarity index 100% rename from org.freedesktop.UDisks2.ObjectManager.xml rename to src/org.freedesktop.UDisks2.ObjectManager.xml diff --git a/org.freedesktop.UDisks2.xml b/src/org.freedesktop.UDisks2.xml similarity index 100% rename from org.freedesktop.UDisks2.xml rename to src/org.freedesktop.UDisks2.xml diff --git a/private/dblockdevice_p.h b/src/private/dblockdevice_p.h similarity index 100% rename from private/dblockdevice_p.h rename to src/private/dblockdevice_p.h diff --git a/src/udisks2-qt5.pc.in b/src/udisks2-qt5.pc.in new file mode 100644 index 0000000..7e1d369 --- /dev/null +++ b/src/udisks2-qt5.pc.in @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include/udisks2-qt5 + + +Name: udisks2-qt5 +Description: UDisks2 Library with Qt5 +Version: 0.0.1 +Libs: -ludisks2-qt5 +Cflags: -I${includedir} diff --git a/udisks2_dbus_common.cpp b/src/udisks2_dbus_common.cpp similarity index 100% rename from udisks2_dbus_common.cpp rename to src/udisks2_dbus_common.cpp diff --git a/udisks2_dbus_common.h b/src/udisks2_dbus_common.h similarity index 100% rename from udisks2_dbus_common.h rename to src/udisks2_dbus_common.h diff --git a/udisks2.pro b/udisks2.pro deleted file mode 100644 index 3087132..0000000 --- a/udisks2.pro +++ /dev/null @@ -1,62 +0,0 @@ -TARGET = udisks2-qt5 -QT += core dbus -QT -= gui -TEMPLATE = lib - -isEmpty(VERSION): VERSION = 0.0.1 - -SOURCES += \ - $$PWD/ddiskdevice.cpp \ - $$PWD/ddiskmanager.cpp \ - $$PWD/udisks2_dbus_common.cpp \ - $$PWD/dblockdevice.cpp \ - $$PWD/dblockpartition.cpp \ - $$PWD/dudisksjob.cpp - -udisk2.files = $$PWD/org.freedesktop.UDisks2.xml -udisk2.header_flags = -i $$PWD/udisks2_dbus_common.h -N - -DBUS_INTERFACES += udisk2 $$PWD/org.freedesktop.UDisks2.ObjectManager.xml - -HEADERS += \ - $$PWD/ddiskdevice.h \ - $$PWD/udisks2_dbus_common.h \ - $$PWD/ddiskmanager.h \ - $$PWD/dblockdevice.h \ - $$PWD/dblockpartition.h \ - $$PWD/dudisksjob.h - -include($$PWD/private/private.pri) - -INCLUDEPATH += $$PWD - -OTHER_FILES += $$PWD/*.xml - -isEmpty(PREFIX): PREFIX = /usr - -isEmpty(LIB_INSTALL_DIR) { - target.path = $$PREFIX/lib -} else { - target.path = $$LIB_INSTALL_DIR -} - -isEmpty(INCLUDE_INSTALL_DIR) { - includes.path = $$PREFIX/include/$$TARGET -} else { - includes.path = $$INCLUDE_INSTALL_DIR -} - -includes.files += $$PWD/*.h -includes_private.path = $$includes.path/private -includes_private.files += $$PWD/private/*.h - -INSTALLS += includes includes_private target - -CONFIG += create_pc create_prl no_install_prl - -QMAKE_PKGCONFIG_LIBDIR = $$target.path -QMAKE_PKGCONFIG_VERSION = $$VERSION -QMAKE_PKGCONFIG_DESTDIR = pkgconfig -QMAKE_PKGCONFIG_NAME = $$TARGET -QMAKE_PKGCONFIG_DESCRIPTION = UDisks2 Library with Qt5 -QMAKE_PKGCONFIG_INCDIR = $$includes.path