From c837319767bb609c6ec806336e49a347c77b11d3 Mon Sep 17 00:00:00 2001
From: Sine Striker <trueful@163.com>
Date: 周五, 22 12月 2023 21:30:53 +0800
Subject: [PATCH] Add non-system-border option on Windows

---
 src/core/CMakeLists.txt |   80 ++++++++++++++++++++++++++++++++-------
 1 files changed, 65 insertions(+), 15 deletions(-)

diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 03fa2dd..6e20cf1 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -4,44 +4,94 @@
 )
 
 set(_src
-    qwkcoreglobal.h
-    corewindowagent.h
-    corewindowagent_p.h
-    corewindowagent.cpp
-    windowitemdelegate.h
-    handler/abstractwindowcontext_p.h
-    handler/abstractwindowcontext.cpp
+    qwkglobal.h
+    qwkglobal_p.h
+    windowagentbase.h
+    windowagentbase_p.h
+    windowagentbase.cpp
+    windowitemdelegate_p.h
+    windowitemdelegate.cpp
+    kernel/nativeeventfilter_p.h
+    kernel/nativeeventfilter.cpp
+    shared/systemwindow_p.h
+    contexts/abstractwindowcontext_p.h
+    contexts/abstractwindowcontext.cpp
 )
+
+set(_links_private)
 
 if(WIN32)
     list(APPEND _src
         qwindowkit_windows.h
-        handler/win32windowcontext_p.h
-        handler/win32windowcontext.cpp
+        qwindowkit_windows.cpp
+        shared/qwkwindowsextra_p.h
     )
+elseif(APPLE)
 else()
     list(APPEND _src
-        handler/qtwindowcontext_p.h
-        handler/qtwindowcontext.cpp
+        qwindowkit_linux.h
     )
-    if(APPLE)
-        # add files
+endif()
+
+if(QWINDOWKIT_ENABLE_QT_WINDOW_CONTEXT)
+    list(APPEND _src
+        contexts/qtwindowcontext_p.h
+        contexts/qtwindowcontext.cpp
+    )
+else()
+    if(WIN32)
+        list(APPEND _src
+            contexts/win32windowcontext_p.h
+            contexts/win32windowcontext.cpp
+        )
+    elseif(APPLE)
+        list(APPEND _src
+            contexts/cocoawindowcontext_p.h
+            contexts/cocoawindowcontext.mm
+        )
+        list(APPEND _links_private
+            "-framework Foundation"
+            "-framework Cocoa"
+            "-framework AppKit"
+        )
     else()
         list(APPEND _src
-            qwindowkit_linux.h
+            contexts/qtwindowcontext_p.h
+            contexts/qtwindowcontext.cpp
         )
+    endif()
+endif()
+
+if(QWINDOWKIT_ENABLE_STYLE_AGENT)
+    list(APPEND _src
+        style/styleagent.h
+        style/styleagent_p.h
+        style/styleagent.cpp
+    )
+
+    if(WIN32)
+        list(APPEND _src style/styleagent_win.cpp)
+    elseif(APPLE)
+        list(APPEND _src style/styleagent_mac.mm)
+    else()
+        list(APPEND _src style/styleagent_linux.cpp)
     endif()
 endif()
 
 qwk_add_library(${PROJECT_NAME} AUTOGEN
     SOURCES ${_src}
     LINKS
+    LINKS_PRIVATE ${_links_private}
     QT_LINKS Core Gui
     QT_INCLUDE_PRIVATE Core Gui
+    INCLUDE_PRIVATE kernel contexts shared
     PREFIX QWK_CORE
 )
 
 set_target_properties(${PROJECT_NAME} PROPERTIES
     CXX_STANDARD 17
     CXX_STANDARD_REQUIRED TRUE
-)
\ No newline at end of file
+)
+
+set(QWINDOWKIT_ENABLED_TARGETS ${QWINDOWKIT_ENABLED_TARGETS} ${PROJECT_NAME} PARENT_SCOPE)
+set(QWINDOWKIT_ENABLED_SUBDIRECTORIES ${QWINDOWKIT_ENABLED_SUBDIRECTORIES} core PARENT_SCOPE)
\ No newline at end of file

--
Gitblit v1.9.1