Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 12 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 3.13)
project(deepin-diskmanager)

find_package(Threads REQUIRED)
Expand Down Expand Up @@ -31,17 +31,20 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector-all -fPIC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-all -fPIE")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z relro -z now -z noexecstack -pie")

# Qt 版本检测
find_package(Qt6 QUIET)
if(Qt6_FOUND)
message("Found Qt6.")
# Auto-detect Qt version (tries Qt6 first, falls back to Qt5)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
message(STATUS "Found Qt version: ${QT_VERSION_MAJOR}")

set(QT_VERSION_MAJOR 6)
set(DTK_VERSION 6)
# Map to DTK version (Qt6→DTK6, Qt5→DTK5)
if (QT_VERSION_MAJOR MATCHES 6)
set(DTK_VERSION_MAJOR 6)
else()
message("Found Qt5.")
set(DTK_VERSION_MAJOR "")
endif()
message(STATUS "Build with DTK: ${DTK_VERSION_MAJOR}")

set(QT_VERSION_MAJOR 5)
# For Qt5, add DBUS caller auth check
if (QT_VERSION_MAJOR MATCHES 5)
add_compile_definitions(NO_DBUS_CALLER_AUTH_CHECK)
message("NO_DBUS_CALLER_AUTH_CHECK is on.")
endif()
Expand Down
20 changes: 12 additions & 8 deletions application/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 3.13)
project(deepin-diskmanager)

if (NOT DEFINED VERSION)
Expand All @@ -15,8 +15,8 @@ set(CMAKE_AUTOUIC ON)#开启uic 编译转换*.ui文件生存设计界面对应

# Find the library
find_package(PkgConfig REQUIRED)
find_package(Dtk${DTK_VERSION}Widget REQUIRED)
find_package(Dtk${DTK_VERSION}Gui REQUIRED)
find_package(Dtk${DTK_VERSION_MAJOR}Widget REQUIRED)
find_package(Dtk${DTK_VERSION_MAJOR}Gui REQUIRED)
#find_package(DtkCMake REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS
Core
Expand All @@ -29,12 +29,16 @@ set(LINK_LIBS
Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::DBus
Qt${QT_VERSION_MAJOR}::Widgets
Qt${QT_VERSION_MAJOR}::WidgetsPrivate
Dtk${DTK_VERSION}::Core
Dtk${DTK_VERSION}::Gui
Dtk${DTK_VERSION}::Widget
Dtk${DTK_VERSION_MAJOR}::Core
Dtk${DTK_VERSION_MAJOR}::Gui
Dtk${DTK_VERSION_MAJOR}::Widget
)

# Qt6 has WidgetsPrivate module, Qt5 does not (use private target differently)
if (QT_VERSION_MAJOR MATCHES 6)
list(APPEND LINK_LIBS Qt${QT_VERSION_MAJOR}::WidgetsPrivate)
endif()

#common resource names
set(APP_RES_DIR "assets")
set(APP_DESKTOP "deepin-diskmanager.desktop")
Expand Down Expand Up @@ -80,7 +84,7 @@ add_executable(${PROJECT_NAME} ${ALL_SRCS} ${APP_QRC} ${DTNG_QM_FILES})

target_include_directories(${PROJECT_NAME} PUBLIC
${DtkWidget_INCLUDE_DIRS}
${Qt5Gui_PRIVATE_INCLUDE_DIRS}
Qt${QT_VERSION_MAJOR}::GuiPrivate
${PROJECT_BINARY_DIR}
)

Expand Down
4 changes: 2 additions & 2 deletions basestruct/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: GPL-3.0-only

cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 3.13)
project(basestruct)

# Find the library
Expand All @@ -26,7 +26,7 @@ set(BASESTRUCT_SRCS ${BASESTRUCT_SOURCES} ${BASESTRUCT_HEADERS} )

add_library(${PROJECT_NAME} STATIC ${BASESTRUCT_SRCS})
target_include_directories(${PROJECT_NAME} PUBLIC
${Qt6Gui_PRIVATE_INCLUDE_DIRS}
Qt${QT_VERSION_MAJOR}::GuiPrivate
${PROJECT_BINARY_DIR}
)

Expand Down
13 changes: 6 additions & 7 deletions debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ Build-Depends:
cmake,
pkg-config,
libc6-dev,
qt6-tools-dev | qttools5-dev,
qt6-base-dev | qtbase5-dev,
qt6-tools-dev,
qt6-base-dev,
libx11-dev,
libdtk6widget-dev | libdtkwidget-dev,
qt6-tools-dev-tools | qttools5-dev-tools,
qt6-base-private-dev | qtbase5-private-dev,
libdtk6widget-dev,
qt6-tools-dev-tools,
qt6-base-private-dev,
libparted-dev,
libparted-fs-resize0,
libpolkit-qt6-1-dev | libpolkit-qt5-1-dev,
libpolkit-qt6-1-dev,
libgtest-dev,
libgmock-dev,
deepin-gettext-tools
Expand All @@ -26,4 +26,3 @@ Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, smartmontools, pkexec
Description: Disk Utility is a disk management tool for creating, reorganizing and formatting partitions.
Disk Utility is a disk management tool for disk.

28 changes: 28 additions & 0 deletions debian/control.1
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
Source: deepin-diskmanager
Section: admin
Priority: optional
Maintainer: deepin <packages@deepin.com>
Build-Depends:
debhelper (>= 11),
cmake,
pkg-config,
libc6-dev,
qttools5-dev,
qtbase5-dev,
libx11-dev,
libdtkwidget-dev,
qttools5-dev-tools,
qtbase5-private-dev,
libparted-dev,
libparted-fs-resize0,
libpolkit-qt5-1-dev,
libgtest-dev,
libgmock-dev,
deepin-gettext-tools
Standards-Version: 4.1.3

Package: deepin-diskmanager
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, smartmontools, pkexec
Description: Disk Utility is a disk management tool for creating, reorganizing and formatting partitions.
Disk Utility is a disk management tool for disk.
4 changes: 2 additions & 2 deletions log/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#install(TARGETS dlmlog DESTINATION lib)

cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 3.13)
project(ddmlog)

# Find the library
Expand All @@ -50,7 +50,7 @@ set(LOG_SRCS

add_library(${PROJECT_NAME} STATIC ${LOG_SRCS})
target_include_directories(${PROJECT_NAME} PUBLIC
Qt${QT_VERSION_MAJOR}::Gui_private
Qt${QT_VERSION_MAJOR}::GuiPrivate
${PROJECT_BINARY_DIR}
)

Expand Down
10 changes: 5 additions & 5 deletions service/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 3.13)
project(deepin-diskmanager-service)


Expand All @@ -26,18 +26,18 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")

# Find the library
find_package(PkgConfig REQUIRED)
find_package(Dtk${DTK_VERSION}Gui REQUIRED)
find_package(Dtk${DTK_VERSION_MAJOR}Gui REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS
Core
Widgets
DBus
REQUIRED)
find_package(PolkitQt${QT_VERSION_MAJOR}-1)
find_package(PolkitQt${QT_VERSION_MAJOR}-1 REQUIRED)

set(LINK_LIBS
Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::DBus
Dtk${DTK_VERSION}::Core
Dtk${DTK_VERSION_MAJOR}::Core
parted
parted-fs-resize
PolkitQt${QT_VERSION_MAJOR}-1::Agent
Expand All @@ -63,7 +63,7 @@ link_directories(${PROJECT_BINARY_DIR})

add_executable(${PROJECT_NAME} ${ALL_SOURCES} ${ALL_HEADERS})
target_include_directories(${PROJECT_NAME} PUBLIC
${Qt6Gui_PRIVATE_INCLUDE_DIRS}
Qt${QT_VERSION_MAJOR}::GuiPrivate
${PROJECT_BINARY_DIR}
)
#link_libraries(../basestruct/basestruct)
Expand Down
2 changes: 1 addition & 1 deletion test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ file(GLOB ALL_SOURCES "../service/diskoperation/*.cpp" "../service/diskoperation

add_executable(${PROJECT_NAME_TEST} ${SRC_LIST} ${ALL_HEADERS} ${ALL_SOURCES})

target_link_libraries(${PROJECT_NAME_TEST} gmock gmock_main gtest gtest_main pthread Qt5::Core basestruct parted parted-fs-resize)
target_link_libraries(${PROJECT_NAME_TEST} gmock gmock_main gtest gtest_main pthread Qt${QT_VERSION_MAJOR}::Core basestruct parted parted-fs-resize)

# 添加 QTest 测试
add_test(${PROJECT_NAME_TEST} that-test-I-made COMMAND ${PROJECT_NAME_TEST})
Expand Down
21 changes: 12 additions & 9 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ file(GLOB ALL_QRCS "../application/assets/appicons.qrc")
list(REMOVE_ITEM ALL_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/../application/main.cpp)

find_package(PkgConfig REQUIRED)
find_package(Dtk${DTK_VERSION}Widget REQUIRED)
find_package(Dtk${DTK_VERSION}Gui REQUIRED)
find_package(Dtk${DTK_VERSION_MAJOR}Widget REQUIRED)
find_package(Dtk${DTK_VERSION_MAJOR}Gui REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS
Core
Widgets
Expand All @@ -53,21 +53,25 @@ set(LINK_LIBS
Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::DBus
Qt${QT_VERSION_MAJOR}::Widgets
Qt${QT_VERSION_MAJOR}::WidgetsPrivate

Dtk${DTK_VERSION}::Core
Dtk${DTK_VERSION}::Gui
Dtk${DTK_VERSION}::Widget
Dtk${DTK_VERSION_MAJOR}::Core
Dtk${DTK_VERSION_MAJOR}::Gui
Dtk${DTK_VERSION_MAJOR}::Widget
)

# Qt6 has WidgetsPrivate module, Qt5 does not
if (QT_VERSION_MAJOR MATCHES 6)
list(APPEND LINK_LIBS Qt${QT_VERSION_MAJOR}::WidgetsPrivate)
endif()

##需要生成的moc文件,输出文件名称放在变量 mocfiles中,必须在find QT5 package才能调用
#QT5_WRAP_CPP (UDLC_UI_HEADERS_MOC ${ALL_HEADERS})

add_executable(${PROJECT_NAME_TEST} ${SRC_LIST} ${ALL_HEADERS} ${ALL_SOURCES} ${ALL_QRCS})

target_include_directories(${PROJECT_NAME} PUBLIC
target_include_directories(${PROJECT_NAME_TEST} PUBLIC
${DtkWidget_INCLUDE_DIRS}
${Qt5Gui_PRIVATE_INCLUDE_DIRS}
Qt${QT_VERSION_MAJOR}::GuiPrivate
${PROJECT_BINARY_DIR}
)
target_link_libraries(${PROJECT_NAME_TEST}
Expand All @@ -82,7 +86,6 @@ target_link_libraries(${PROJECT_NAME_TEST}
parted-fs-resize
Qt${QT_VERSION_MAJOR}::DBus
Qt${QT_VERSION_MAJOR}::Widgets
Qt${QT_VERSION_MAJOR}::WidgetsPrivate
Qt${QT_VERSION_MAJOR}::Test ${LINK_LIBS})

# 添加 QTest 测试
Expand Down