From 93bd1cf26cc0ae199060ddaaaf61836e14c0ba4d Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周日, 11 8月 2024 23:35:40 +0800 Subject: [PATCH] Fix issue #125 --- CMakeLists.txt | 49 +++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 43 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 11bfc38..ba12076 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,17 +1,45 @@ -cmake_minimum_required(VERSION 3.17) +cmake_minimum_required(VERSION 3.19) -project(QWindowKit VERSION 0.0.1.1 LANGUAGES CXX) +project(QWindowKit VERSION 1.1.1.0 LANGUAGES CXX) # ---------------------------------- # Build Options # ---------------------------------- option(QWINDOWKIT_BUILD_STATIC "Build static libraries" OFF) option(QWINDOWKIT_BUILD_WIDGETS "Build widgets module" ON) -option(QWINDOWKIT_BUILD_QUICK "Build quick module" ON) -option(QWINDOWKIT_BUILD_STYLE_SUPPORT "Build style support module" ON) +option(QWINDOWKIT_BUILD_QUICK "Build quick module" OFF) option(QWINDOWKIT_BUILD_EXAMPLES "Build examples" OFF) option(QWINDOWKIT_BUILD_DOCUMENTATIONS "Build documentations" OFF) option(QWINDOWKIT_INSTALL "Install library" ON) + +option(QWINDOWKIT_ENABLE_QT_WINDOW_CONTEXT "Enable Qt Window Context anyway" OFF) +option(QWINDOWKIT_ENABLE_WINDOWS_SYSTEM_BORDERS "Enable system borders on Windows" ON) +option(QWINDOWKIT_ENABLE_STYLE_AGENT "Enable building style agent" ON) + +#[[ + +Detailed Introcuction to Configure Options: + +`QWINDOWKIT_BUILD_DOCUMENTATIONS` + - If you have installed `Doxygen`, you can ENABLE this option so that the documentations + will also be built and installed. + - If not, you can read the comments in `qdoc` style in `cpp` files to get detailed usages + of the public APIs. + +`QWINDOWKIT_ENABLE_WINDOWS_SYSTEM_BORDERS` + - If you don't want the system borders on Windows 10/11, you can DISABLE this option. + - If so, the Windows 10 top border issue will disappear. However, part of the client edge + area will be occupied as the resizing margins. + +`QWINDOWKIT_ENABLE_QT_WINDOW_CONTEXT` + - If you want to use pure Qt emulated frameless implementation, you can ENABLE this option. + - If so, all system native features will be lost. + +`QWINDOWKIT_ENABLE_STYLE_AGENT` + - Select whether to exclude the style component by DISABLING this option according to your + requirements and your Qt version. + +#]] # ---------------------------------- # CMake Settings @@ -25,6 +53,9 @@ if(NOT DEFINED CMAKE_DEBUG_POSTFIX) set(CMAKE_DEBUG_POSTFIX "d") endif() +elseif(MINGW) + set(CMAKE_STATIC_LIBRARY_PREFIX "") + set(CMAKE_SHARED_LIBRARY_PREFIX "") endif() if(QWINDOWKIT_INSTALL) @@ -39,7 +70,7 @@ set(QWINDOWKIT_INSTALL_NAME ${PROJECT_NAME}) # ---------------------------------- -# Main Project +# Find basic dependencies # ---------------------------------- find_package(qmsetup QUIET) @@ -48,7 +79,7 @@ set(_source_dir ${CMAKE_CURRENT_SOURCE_DIR}/qmsetup) # Import install function - include("${_source_dir}/cmake/modules/InstallPackage.cmake") + include("${_source_dir}/cmake/modules/private/InstallPackage.cmake") # Install package in place set(_package_path) @@ -65,6 +96,12 @@ set(qmsetup_DIR ${_package_path} CACHE PATH "" FORCE) endif() +qm_import(Filesystem) +qm_init_directories() + +# ---------------------------------- +# Add source modules +# ---------------------------------- add_subdirectory(src) if(QWINDOWKIT_BUILD_EXAMPLES) -- Gitblit v1.9.1