diff --git a/CMakeLists.txt b/CMakeLists.txt index c0b64b3..35dad42 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,99 +22,8 @@ find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Gui REQUIRED) find_package(QT NAMES Qt6 Qt5 COMPONENTS Quick) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Quick) -set(SOURCES - framelesshelper_global.h - framelesshelper.h - framelesshelper.cpp - framelesswindowsmanager.h - framelesswindowsmanager.cpp - utilities.h - utilities.cpp -) - -if(TARGET Qt${QT_VERSION_MAJOR}::Quick) - list(APPEND SOURCES - framelessquickhelper.h - framelessquickhelper.cpp - ) -endif() - -if(WIN32) - list(APPEND SOURCES - framelesshelper_windows.h - utilities_win32.cpp - framelesshelper_win32.h - framelesshelper_win32.cpp - ) -else() - if(APPLE) - list(APPEND SOURCES utilities_macos.mm) - else() - find_package(Qt${QT_VERSION_MAJOR} COMPONENTS X11Extras REQUIRED) - list(APPEND SOURCES utilities_linux.cpp) - endif() -endif() - -if(WIN32 AND BUILD_SHARED_LIBS) - enable_language(RC) - list(APPEND SOURCES framelesshelper.rc) -endif() - -add_library(${PROJECT_NAME} ${SOURCES}) -add_library(wangwenx190::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) - -if(NOT BUILD_SHARED_LIBS) - target_compile_definitions(${PROJECT_NAME} PUBLIC - FRAMELESSHELPER_STATIC - ) -endif() - -target_compile_definitions(${PROJECT_NAME} PRIVATE - QT_NO_CAST_FROM_ASCII - QT_NO_CAST_TO_ASCII - QT_NO_KEYWORDS - QT_DEPRECATED_WARNINGS - QT_DISABLE_DEPRECATED_BEFORE=0x060100 - FRAMELESSHELPER_BUILD_LIBRARY -) - -if(TEST_UNIX) - target_compile_definitions(${PROJECT_NAME} PRIVATE - FRAMELESSHELPER_TEST_UNIX - ) -endif() - -if(WIN32) - target_link_libraries(${PROJECT_NAME} PRIVATE - dwmapi - ) -else() - if(APPLE) - target_link_libraries(${PROJECT_NAME} PRIVATE - "-framework Cocoa -framework Carbon" - ) - else() - target_link_libraries(${PROJECT_NAME} PRIVATE - Qt${QT_VERSION_MAJOR}::X11Extras - X11 - ) - endif() -endif() - -target_link_libraries(${PROJECT_NAME} PRIVATE - Qt${QT_VERSION_MAJOR}::GuiPrivate -) - -if(TARGET Qt${QT_VERSION_MAJOR}::Quick) - target_link_libraries(${PROJECT_NAME} PRIVATE - Qt${QT_VERSION_MAJOR}::Quick - ) -endif() - -target_include_directories(${PROJECT_NAME} PUBLIC - "$" -) +add_subdirectory(src) if(BUILD_EXAMPLES) add_subdirectory(examples) -endif() +endif() \ No newline at end of file diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index db13084..5a481c0 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,6 +1,8 @@ find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets) +include_directories(../src) + if(TARGET Qt${QT_VERSION_MAJOR}::Widgets) add_subdirectory(widget) add_subdirectory(mainwindow) diff --git a/examples/mainwindow/mainwindow.cpp b/examples/mainwindow/mainwindow.cpp index 5a892c4..ea4461f 100644 --- a/examples/mainwindow/mainwindow.cpp +++ b/examples/mainwindow/mainwindow.cpp @@ -24,8 +24,7 @@ #include "mainwindow.h" #include -#include "../../framelesswindowsmanager.h" -#include "../../utilities.h" +#include "core/utilities.h" FRAMELESSHELPER_USE_NAMESPACE diff --git a/examples/mainwindow/mainwindow.h b/examples/mainwindow/mainwindow.h index 70ad3eb..c5c1e05 100644 --- a/examples/mainwindow/mainwindow.h +++ b/examples/mainwindow/mainwindow.h @@ -27,7 +27,7 @@ #include #include "ui_MainWindow.h" #include "ui_TitleBar.h" -#include "../../framelesshelper.h" +#include "core/framelesshelper.h" class MainWindow : public QMainWindow { diff --git a/examples/minimal/flwindow.cpp b/examples/minimal/flwindow.cpp index 06f0880..a32beb3 100644 --- a/examples/minimal/flwindow.cpp +++ b/examples/minimal/flwindow.cpp @@ -1,6 +1,6 @@ #include "flwindow.h" -#include "../../framelesshelper.h" -#include "../../utilities.h" +#include "core/framelesshelper.h" +#include "core/utilities.h" #include #include diff --git a/examples/minimal/flwindow.h b/examples/minimal/flwindow.h index 516cf09..5d1bb19 100644 --- a/examples/minimal/flwindow.h +++ b/examples/minimal/flwindow.h @@ -1,7 +1,7 @@ #pragma once #include -#include "framelesshelper.h" +#include "core/framelesshelper.h" class QPushButton; diff --git a/examples/widget/widget.cpp b/examples/widget/widget.cpp index f0f925b..7710e17 100644 --- a/examples/widget/widget.cpp +++ b/examples/widget/widget.cpp @@ -29,9 +29,8 @@ #include #include #include -#include "../../utilities.h" -#include "../../framelesswindowsmanager.h" -#include "../../framelesshelper.h" +#include "core/utilities.h" +#include "core/framelesshelper.h" FRAMELESSHELPER_USE_NAMESPACE diff --git a/examples/widget/widget.h b/examples/widget/widget.h index bd86c10..e1fd75f 100644 --- a/examples/widget/widget.h +++ b/examples/widget/widget.h @@ -25,7 +25,7 @@ #pragma once #include -#include "../../framelesshelper.h" +#include "core/framelesshelper.h" QT_BEGIN_NAMESPACE QT_FORWARD_DECLARE_CLASS(QLabel) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..a66547e --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,92 @@ +set(SOURCES + framelesshelper_global.h + core/framelesshelper.h + core/framelesshelper.cpp + core/utilities.h + core/utilities.cpp + core/framelesswindowsmanager.h + core/framelesswindowsmanager.cpp +) + +if(TARGET Qt${QT_VERSION_MAJOR}::Quick) + list(APPEND SOURCES + quick/framelessquickhelper.h + quick/framelessquickhelper.cpp + ) +endif() + +if(WIN32) + list(APPEND SOURCES + core/framelesshelper_windows.h + core/utilities_win32.cpp + core/framelesshelper_win32.h + core/framelesshelper_win32.cpp + ) +else() + if(APPLE) + list(APPEND SOURCES core/utilities_macos.mm) + else() + find_package(Qt${QT_VERSION_MAJOR} COMPONENTS X11Extras REQUIRED) + list(APPEND SOURCES core/utilities_linux.cpp) + endif() +endif() + +if(WIN32 AND BUILD_SHARED_LIBS) + enable_language(RC) + list(APPEND SOURCES framelesshelper.rc) +endif() + +add_library(${PROJECT_NAME} ${SOURCES}) +add_library(wangwenx190::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) + +if(NOT BUILD_SHARED_LIBS) + target_compile_definitions(${PROJECT_NAME} PUBLIC + FRAMELESSHELPER_STATIC + ) +endif() + +target_compile_definitions(${PROJECT_NAME} PRIVATE + QT_NO_CAST_FROM_ASCII + QT_NO_CAST_TO_ASCII + QT_NO_KEYWORDS + QT_DEPRECATED_WARNINGS + QT_DISABLE_DEPRECATED_BEFORE=0x060100 + FRAMELESSHELPER_BUILD_LIBRARY +) + +if(TEST_UNIX) + target_compile_definitions(${PROJECT_NAME} PRIVATE + FRAMELESSHELPER_TEST_UNIX + ) +endif() + +if(WIN32) + target_link_libraries(${PROJECT_NAME} PRIVATE + dwmapi + ) +else() + if(APPLE) + target_link_libraries(${PROJECT_NAME} PRIVATE + "-framework Cocoa -framework Carbon" + ) + else() + target_link_libraries(${PROJECT_NAME} PRIVATE + Qt${QT_VERSION_MAJOR}::X11Extras + X11 + ) + endif() +endif() + +target_link_libraries(${PROJECT_NAME} PRIVATE + Qt${QT_VERSION_MAJOR}::GuiPrivate +) + +if(TARGET Qt${QT_VERSION_MAJOR}::Quick) + target_link_libraries(${PROJECT_NAME} PRIVATE + Qt${QT_VERSION_MAJOR}::Quick + ) +endif() + +target_include_directories(${PROJECT_NAME} PUBLIC + "$" +) diff --git a/framelesshelper.cpp b/src/core/framelesshelper.cpp similarity index 100% rename from framelesshelper.cpp rename to src/core/framelesshelper.cpp diff --git a/framelesshelper.h b/src/core/framelesshelper.h similarity index 100% rename from framelesshelper.h rename to src/core/framelesshelper.h diff --git a/framelesshelper_win32.cpp b/src/core/framelesshelper_win32.cpp similarity index 100% rename from framelesshelper_win32.cpp rename to src/core/framelesshelper_win32.cpp diff --git a/framelesshelper_win32.h b/src/core/framelesshelper_win32.h similarity index 100% rename from framelesshelper_win32.h rename to src/core/framelesshelper_win32.h diff --git a/framelesshelper_windows.h b/src/core/framelesshelper_windows.h similarity index 100% rename from framelesshelper_windows.h rename to src/core/framelesshelper_windows.h diff --git a/framelesswindowsmanager.cpp b/src/core/framelesswindowsmanager.cpp similarity index 100% rename from framelesswindowsmanager.cpp rename to src/core/framelesswindowsmanager.cpp diff --git a/framelesswindowsmanager.h b/src/core/framelesswindowsmanager.h similarity index 100% rename from framelesswindowsmanager.h rename to src/core/framelesswindowsmanager.h diff --git a/utilities.cpp b/src/core/utilities.cpp similarity index 100% rename from utilities.cpp rename to src/core/utilities.cpp diff --git a/utilities.h b/src/core/utilities.h similarity index 100% rename from utilities.h rename to src/core/utilities.h diff --git a/utilities_linux.cpp b/src/core/utilities_linux.cpp similarity index 100% rename from utilities_linux.cpp rename to src/core/utilities_linux.cpp diff --git a/utilities_macos.mm b/src/core/utilities_macos.mm similarity index 100% rename from utilities_macos.mm rename to src/core/utilities_macos.mm diff --git a/utilities_win32.cpp b/src/core/utilities_win32.cpp similarity index 100% rename from utilities_win32.cpp rename to src/core/utilities_win32.cpp diff --git a/framelesshelper.pro b/src/framelesshelper.pro similarity index 100% rename from framelesshelper.pro rename to src/framelesshelper.pro diff --git a/framelesshelper.rc b/src/framelesshelper.rc similarity index 100% rename from framelesshelper.rc rename to src/framelesshelper.rc diff --git a/framelesshelper_global.h b/src/framelesshelper_global.h similarity index 100% rename from framelesshelper_global.h rename to src/framelesshelper_global.h diff --git a/lib.pro b/src/lib.pro similarity index 100% rename from lib.pro rename to src/lib.pro diff --git a/framelessquickhelper.cpp b/src/quick/framelessquickhelper.cpp similarity index 98% rename from framelessquickhelper.cpp rename to src/quick/framelessquickhelper.cpp index 4022111..9052cee 100644 --- a/framelessquickhelper.cpp +++ b/src/quick/framelessquickhelper.cpp @@ -23,7 +23,7 @@ */ #include "framelessquickhelper.h" -#include "framelesswindowsmanager.h" +#include "core/framelesswindowsmanager.h" #include FRAMELESSHELPER_BEGIN_NAMESPACE diff --git a/framelessquickhelper.h b/src/quick/framelessquickhelper.h similarity index 100% rename from framelessquickhelper.h rename to src/quick/framelessquickhelper.h