forked from github_mirror/framelesshelper
examples: update cmake project
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
This commit is contained in:
parent
cf2bc7c1b9
commit
9e341e4e40
|
@ -67,6 +67,27 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
mkdir ci-test-build
|
mkdir ci-test-build
|
||||||
cd ci-test-build
|
cd ci-test-build
|
||||||
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_C_COMPILER=${{ matrix.CC }} -DCMAKE_CXX_COMPILER=${{ matrix.CXX }} -DCMAKE_INSTALL_PREFIX=../ci-test-install -DCMAKE_BUILD_TYPE=Release -DFRAMELESSHELPER_BUILD_EXAMPLES=ON ${{ matrix.lib_type_flag }} -DFRAMELESSHELPER_ENABLE_SPECTRE=ON -DFRAMELESSHELPER_ENABLE_EHCONTGUARD=ON -DFRAMELESSHELPER_ENABLE_INTELCET=ON -DFRAMELESSHELPER_ENABLE_INTELJCC=ON -DFRAMELESSHELPER_ENABLE_CFGUARD=ON -GNinja ..
|
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_C_COMPILER=${{ matrix.CC }} -DCMAKE_CXX_COMPILER=${{ matrix.CXX }} -DCMAKE_INSTALL_PREFIX=../install -DCMAKE_BUILD_TYPE=Release -DFRAMELESSHELPER_BUILD_EXAMPLES=ON ${{ matrix.lib_type_flag }} -DFRAMELESSHELPER_ENABLE_SPECTRE=ON -DFRAMELESSHELPER_ENABLE_INTELCET=ON -DFRAMELESSHELPER_ENABLE_INTELJCC=ON -DFRAMELESSHELPER_ENABLE_CFGUARD=ON -GNinja ..
|
||||||
cmake --build . --target all --config Release --parallel
|
cmake --build . --target all --config Release --parallel
|
||||||
cmake --install . --config Release --strip
|
cmake --install . --config Release --strip
|
||||||
|
cd ..
|
||||||
|
rm -rf ./ci-test-build
|
||||||
|
|
||||||
|
- name: Build standalone MainWindow example with CMake
|
||||||
|
run: |
|
||||||
|
mkdir ci-test-build
|
||||||
|
cd ci-test-build
|
||||||
|
cmake -DCMAKE_PREFIX_PATH=../install -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_C_COMPILER=${{ matrix.CC }} -DCMAKE_CXX_COMPILER=${{ matrix.CXX }} -DCMAKE_BUILD_TYPE=Release -DFRAMELESSHELPER_EXAMPLES_STANDALONE=ON -GNinja ../examples/mainwindow
|
||||||
|
cmake --build . --target all --config Release --parallel
|
||||||
|
cd ..
|
||||||
|
rm -rf ./ci-test-build
|
||||||
|
|
||||||
|
- name: Build standalone Quick example with CMake
|
||||||
|
if: ${{ matrix.qt-version == '6.4.2' }}
|
||||||
|
run: |
|
||||||
|
mkdir ci-test-build
|
||||||
|
cd ci-test-build
|
||||||
|
cmake -DCMAKE_PREFIX_PATH=../install -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_C_COMPILER=${{ matrix.CC }} -DCMAKE_CXX_COMPILER=${{ matrix.CXX }} -DCMAKE_BUILD_TYPE=Release -DFRAMELESSHELPER_EXAMPLES_STANDALONE=ON -GNinja ../examples/quick
|
||||||
|
cmake --build . --target all --config Release --parallel
|
||||||
|
cd ..
|
||||||
|
rm -rf ./ci-test-build
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
cmake_minimum_required(VERSION 3.20)
|
cmake_minimum_required(VERSION 3.20)
|
||||||
|
|
||||||
project(FramelessHelper
|
project(FramelessHelper
|
||||||
VERSION 2.3.5
|
VERSION "2.3.5"
|
||||||
DESCRIPTION "Cross-platform window customization framework for Qt Widgets and Qt Quick."
|
DESCRIPTION "Cross-platform window customization framework for Qt Widgets and Qt Quick."
|
||||||
HOMEPAGE_URL "https://github.com/wangwenx190/framelesshelper/"
|
HOMEPAGE_URL "https://github.com/wangwenx190/framelesshelper/"
|
||||||
)
|
)
|
||||||
|
@ -48,6 +48,7 @@ option(FRAMELESSHELPER_ENABLE_EHCONTGUARD "MSVC only: Enable EH Continuation (EH
|
||||||
option(FRAMELESSHELPER_ENABLE_INTELCET "Enable Intel CET." ON)
|
option(FRAMELESSHELPER_ENABLE_INTELCET "Enable Intel CET." ON)
|
||||||
option(FRAMELESSHELPER_ENABLE_INTELJCC "Enable Intel JCC." ON)
|
option(FRAMELESSHELPER_ENABLE_INTELJCC "Enable Intel JCC." ON)
|
||||||
option(FRAMELESSHELPER_ENABLE_CFGUARD "Enable Control Flow Guard (CFG)." ON)
|
option(FRAMELESSHELPER_ENABLE_CFGUARD "Enable Control Flow Guard (CFG)." ON)
|
||||||
|
option(FRAMELESSHELPER_EXAMPLES_STANDALONE "Build the demo projects as standalone CMake projects." OFF)
|
||||||
|
|
||||||
if(FRAMELESSHELPER_NO_BUNDLE_RESOURCE)
|
if(FRAMELESSHELPER_NO_BUNDLE_RESOURCE)
|
||||||
message(WARNING "Nothing will be embeded into FramelessHelper, the chrome buttons will have no icon.")
|
message(WARNING "Nothing will be embeded into FramelessHelper, the chrome buttons will have no icon.")
|
||||||
|
@ -98,8 +99,8 @@ if(FRAMELESSHELPER_NO_INSTALL)
|
||||||
list(APPEND __extra_flags NO_INSTALL)
|
list(APPEND __extra_flags NO_INSTALL)
|
||||||
endif()
|
endif()
|
||||||
prepare_package_export(
|
prepare_package_export(
|
||||||
PACKAGE_NAME ${PROJECT_NAME}
|
PACKAGE_NAME "${PROJECT_NAME}"
|
||||||
PACKAGE_VERSION ${PROJECT_VERSION}
|
PACKAGE_VERSION "${PROJECT_VERSION}"
|
||||||
${__extra_flags}
|
${__extra_flags}
|
||||||
)
|
)
|
||||||
unset(__extra_flags)
|
unset(__extra_flags)
|
||||||
|
@ -181,5 +182,6 @@ if(NOT FRAMELESSHELPER_NO_SUMMARY)
|
||||||
message("Enable Intel CET: ${FRAMELESSHELPER_ENABLE_INTELCET}")
|
message("Enable Intel CET: ${FRAMELESSHELPER_ENABLE_INTELCET}")
|
||||||
message("Enable Intel JCC: ${FRAMELESSHELPER_ENABLE_INTELJCC}")
|
message("Enable Intel JCC: ${FRAMELESSHELPER_ENABLE_INTELJCC}")
|
||||||
message("Enable Control Flow Guard (CFG): ${FRAMELESSHELPER_ENABLE_CFGUARD}")
|
message("Enable Control Flow Guard (CFG): ${FRAMELESSHELPER_ENABLE_CFGUARD}")
|
||||||
|
message("Build standalone demo projects: ${FRAMELESSHELPER_EXAMPLES_STANDALONE}")
|
||||||
message("-----------------------------------------------------------------")
|
message("-----------------------------------------------------------------")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -22,7 +22,28 @@
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
]]
|
]]
|
||||||
|
|
||||||
set(SOURCES
|
cmake_minimum_required(VERSION 3.20)
|
||||||
|
|
||||||
|
project(FramelessHelperDemo-Dialog VERSION 1.0)
|
||||||
|
|
||||||
|
include(../../cmake/utils.cmake)
|
||||||
|
|
||||||
|
setup_project(
|
||||||
|
QT_PROJECT
|
||||||
|
LANGUAGES CXX RC
|
||||||
|
NO_WARNING
|
||||||
|
ENABLE_LTO
|
||||||
|
)
|
||||||
|
|
||||||
|
if(FRAMELESSHELPER_EXAMPLES_STANDALONE)
|
||||||
|
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
|
||||||
|
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
|
||||||
|
find_package(FramelessHelper REQUIRED COMPONENTS Core Widgets)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_executable(${PROJECT_NAME})
|
||||||
|
|
||||||
|
target_sources(${PROJECT_NAME} PRIVATE
|
||||||
../shared/log.h
|
../shared/log.h
|
||||||
../shared/log.cpp
|
../shared/log.cpp
|
||||||
../shared/settings.h
|
../shared/settings.h
|
||||||
|
@ -33,51 +54,53 @@ set(SOURCES
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
enable_language(RC)
|
set(__rc_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.rc")
|
||||||
list(APPEND SOURCES
|
generate_win32_rc_file(
|
||||||
../shared/example.rc
|
PATH "${__rc_path}"
|
||||||
../shared/example.manifest
|
VERSION "${PROJECT_VERSION}"
|
||||||
|
COMPANY "wangwenx190"
|
||||||
|
DESCRIPTION "FramelessHelper Demo Application: Dialog"
|
||||||
|
COPYRIGHT "MIT License"
|
||||||
|
PRODUCT "FramelessHelper Demo"
|
||||||
|
ICONS "../shared/example.ico"
|
||||||
|
)
|
||||||
|
set(__manifest_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.manifest")
|
||||||
|
generate_win32_manifest_file(
|
||||||
|
PATH "${__manifest_path}"
|
||||||
|
ID "org.wangwenx190.demo.Dialog"
|
||||||
|
VERSION "${PROJECT_VERSION}"
|
||||||
|
VISTA_COMPAT
|
||||||
|
WIN7_COMPAT
|
||||||
|
WIN8_COMPAT
|
||||||
|
WIN8_1_COMPAT
|
||||||
|
WIN10_COMPAT
|
||||||
|
WIN11_COMPAT
|
||||||
|
XAML_ISLANDS_COMPAT
|
||||||
|
UTF8_CODEPAGE
|
||||||
|
)
|
||||||
|
target_sources(${PROJECT_NAME} PRIVATE
|
||||||
|
"${__rc_path}"
|
||||||
|
"${__manifest_path}"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_executable(Dialog ${SOURCES})
|
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||||
|
|
||||||
target_link_libraries(Dialog PRIVATE
|
|
||||||
Qt${QT_VERSION_MAJOR}::Widgets
|
Qt${QT_VERSION_MAJOR}::Widgets
|
||||||
|
FramelessHelper::Core
|
||||||
FramelessHelper::Widgets
|
FramelessHelper::Widgets
|
||||||
)
|
)
|
||||||
|
|
||||||
include(../../cmake/utils.cmake)
|
|
||||||
setup_gui_app(
|
setup_gui_app(
|
||||||
TARGETS Dialog
|
TARGETS ${PROJECT_NAME}
|
||||||
BUNDLE_ID org.wangwenx190.Dialog
|
BUNDLE_ID "org.wangwenx190.demo.Dialog"
|
||||||
BUNDLE_VERSION 1.0.0
|
BUNDLE_VERSION "1.0.0"
|
||||||
BUNDLE_VERSION_SHORT 1.0
|
BUNDLE_VERSION_SHORT "1.0"
|
||||||
)
|
)
|
||||||
set(__extra_flags)
|
|
||||||
if(NOT FRAMELESSHELPER_NO_PERMISSIVE_CHECKS)
|
|
||||||
list(APPEND __extra_flags PERMISSIVE)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_SPECTRE)
|
|
||||||
list(APPEND __extra_flags SPECTRE)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_EHCONTGUARD)
|
|
||||||
list(APPEND __extra_flags EHCONTGUARD)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_INTELCET)
|
|
||||||
list(APPEND __extra_flags INTELCET)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_INTELJCC)
|
|
||||||
list(APPEND __extra_flags INTELJCC)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_CFGUARD)
|
|
||||||
list(APPEND __extra_flags CFGUARD)
|
|
||||||
endif()
|
|
||||||
setup_compile_params(TARGETS Dialog ${__extra_flags})
|
|
||||||
if(FRAMELESSHELPER_EXAMPLES_DEPLOYQT)
|
if(FRAMELESSHELPER_EXAMPLES_DEPLOYQT)
|
||||||
set(__extra_flags)
|
set(__extra_flags)
|
||||||
if(FRAMELESSHELPER_NO_INSTALL)
|
if(FRAMELESSHELPER_NO_INSTALL)
|
||||||
set(__extra_flags NO_INSTALL)
|
set(__extra_flags NO_INSTALL)
|
||||||
endif()
|
endif()
|
||||||
deploy_qt_runtime(TARGET Dialog ${__extra_flags})
|
deploy_qt_runtime(TARGET ${PROJECT_NAME} ${__extra_flags})
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -22,7 +22,28 @@
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
]]
|
]]
|
||||||
|
|
||||||
set(SOURCES
|
cmake_minimum_required(VERSION 3.20)
|
||||||
|
|
||||||
|
project(FramelessHelperDemo-MainWindow VERSION 1.0)
|
||||||
|
|
||||||
|
include(../../cmake/utils.cmake)
|
||||||
|
|
||||||
|
setup_project(
|
||||||
|
QT_PROJECT
|
||||||
|
LANGUAGES CXX RC
|
||||||
|
NO_WARNING
|
||||||
|
ENABLE_LTO
|
||||||
|
)
|
||||||
|
|
||||||
|
if(FRAMELESSHELPER_EXAMPLES_STANDALONE)
|
||||||
|
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
|
||||||
|
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
|
||||||
|
find_package(FramelessHelper REQUIRED COMPONENTS Core Widgets)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_executable(${PROJECT_NAME})
|
||||||
|
|
||||||
|
target_sources(${PROJECT_NAME} PRIVATE
|
||||||
../shared/log.h
|
../shared/log.h
|
||||||
../shared/log.cpp
|
../shared/log.cpp
|
||||||
../shared/settings.h
|
../shared/settings.h
|
||||||
|
@ -38,51 +59,53 @@ set(SOURCES
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
enable_language(RC)
|
set(__rc_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.rc")
|
||||||
list(APPEND SOURCES
|
generate_win32_rc_file(
|
||||||
../shared/example.rc
|
PATH "${__rc_path}"
|
||||||
../shared/example.manifest
|
VERSION "${PROJECT_VERSION}"
|
||||||
|
COMPANY "wangwenx190"
|
||||||
|
DESCRIPTION "FramelessHelper Demo Application: MainWindow"
|
||||||
|
COPYRIGHT "MIT License"
|
||||||
|
PRODUCT "FramelessHelper Demo"
|
||||||
|
ICONS "../shared/example.ico"
|
||||||
|
)
|
||||||
|
set(__manifest_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.manifest")
|
||||||
|
generate_win32_manifest_file(
|
||||||
|
PATH "${__manifest_path}"
|
||||||
|
ID "org.wangwenx190.demo.MainWindow"
|
||||||
|
VERSION "${PROJECT_VERSION}"
|
||||||
|
VISTA_COMPAT
|
||||||
|
WIN7_COMPAT
|
||||||
|
WIN8_COMPAT
|
||||||
|
WIN8_1_COMPAT
|
||||||
|
WIN10_COMPAT
|
||||||
|
WIN11_COMPAT
|
||||||
|
XAML_ISLANDS_COMPAT
|
||||||
|
UTF8_CODEPAGE
|
||||||
|
)
|
||||||
|
target_sources(${PROJECT_NAME} PRIVATE
|
||||||
|
"${__rc_path}"
|
||||||
|
"${__manifest_path}"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_executable(MainWindow ${SOURCES})
|
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||||
|
|
||||||
target_link_libraries(MainWindow PRIVATE
|
|
||||||
Qt${QT_VERSION_MAJOR}::Widgets
|
Qt${QT_VERSION_MAJOR}::Widgets
|
||||||
|
FramelessHelper::Core
|
||||||
FramelessHelper::Widgets
|
FramelessHelper::Widgets
|
||||||
)
|
)
|
||||||
|
|
||||||
include(../../cmake/utils.cmake)
|
|
||||||
setup_gui_app(
|
setup_gui_app(
|
||||||
TARGETS MainWindow
|
TARGETS ${PROJECT_NAME}
|
||||||
BUNDLE_ID org.wangwenx190.MainWindow
|
BUNDLE_ID "org.wangwenx190.demo.MainWindow"
|
||||||
BUNDLE_VERSION 1.0.0
|
BUNDLE_VERSION "1.0.0"
|
||||||
BUNDLE_VERSION_SHORT 1.0
|
BUNDLE_VERSION_SHORT "1.0"
|
||||||
)
|
)
|
||||||
set(__extra_flags)
|
|
||||||
if(NOT FRAMELESSHELPER_NO_PERMISSIVE_CHECKS)
|
|
||||||
list(APPEND __extra_flags PERMISSIVE)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_SPECTRE)
|
|
||||||
list(APPEND __extra_flags SPECTRE)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_EHCONTGUARD)
|
|
||||||
list(APPEND __extra_flags EHCONTGUARD)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_INTELCET)
|
|
||||||
list(APPEND __extra_flags INTELCET)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_INTELJCC)
|
|
||||||
list(APPEND __extra_flags INTELJCC)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_CFGUARD)
|
|
||||||
list(APPEND __extra_flags CFGUARD)
|
|
||||||
endif()
|
|
||||||
setup_compile_params(TARGETS MainWindow ${__extra_flags})
|
|
||||||
if(FRAMELESSHELPER_EXAMPLES_DEPLOYQT)
|
if(FRAMELESSHELPER_EXAMPLES_DEPLOYQT)
|
||||||
set(__extra_flags)
|
set(__extra_flags)
|
||||||
if(FRAMELESSHELPER_NO_INSTALL)
|
if(FRAMELESSHELPER_NO_INSTALL)
|
||||||
set(__extra_flags NO_INSTALL)
|
set(__extra_flags NO_INSTALL)
|
||||||
endif()
|
endif()
|
||||||
deploy_qt_runtime(TARGET MainWindow ${__extra_flags})
|
deploy_qt_runtime(TARGET ${PROJECT_NAME} ${__extra_flags})
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -22,14 +22,31 @@
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
]]
|
]]
|
||||||
|
|
||||||
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS OpenGL)
|
cmake_minimum_required(VERSION 3.20)
|
||||||
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS OpenGL)
|
|
||||||
|
|
||||||
if(QT_VERSION_MAJOR GREATER_EQUAL 6)
|
project(FramelessHelperDemo-OpenGLWidget VERSION 1.0)
|
||||||
find_package(Qt6 REQUIRED COMPONENTS OpenGLWidgets)
|
|
||||||
|
include(../../cmake/utils.cmake)
|
||||||
|
|
||||||
|
setup_project(
|
||||||
|
QT_PROJECT
|
||||||
|
LANGUAGES CXX RC
|
||||||
|
NO_WARNING
|
||||||
|
ENABLE_LTO
|
||||||
|
)
|
||||||
|
|
||||||
|
if(FRAMELESSHELPER_EXAMPLES_STANDALONE)
|
||||||
|
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets OpenGL)
|
||||||
|
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets OpenGL)
|
||||||
|
if(QT_VERSION_MAJOR GREATER_EQUAL 6)
|
||||||
|
find_package(Qt6 REQUIRED COMPONENTS OpenGLWidgets)
|
||||||
|
endif()
|
||||||
|
find_package(FramelessHelper REQUIRED COMPONENTS Core Widgets)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(SOURCES
|
add_executable(${PROJECT_NAME})
|
||||||
|
|
||||||
|
target_sources(${PROJECT_NAME} PRIVATE
|
||||||
../shared/log.h
|
../shared/log.h
|
||||||
../shared/log.cpp
|
../shared/log.cpp
|
||||||
../shared/settings.h
|
../shared/settings.h
|
||||||
|
@ -45,58 +62,60 @@ set(SOURCES
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
enable_language(RC)
|
set(__rc_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.rc")
|
||||||
list(APPEND SOURCES
|
generate_win32_rc_file(
|
||||||
../shared/example.rc
|
PATH "${__rc_path}"
|
||||||
../shared/example.manifest
|
VERSION "${PROJECT_VERSION}"
|
||||||
|
COMPANY "wangwenx190"
|
||||||
|
DESCRIPTION "FramelessHelper Demo Application: OpenGLWidget"
|
||||||
|
COPYRIGHT "MIT License"
|
||||||
|
PRODUCT "FramelessHelper Demo"
|
||||||
|
ICONS "../shared/example.ico"
|
||||||
|
)
|
||||||
|
set(__manifest_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.manifest")
|
||||||
|
generate_win32_manifest_file(
|
||||||
|
PATH "${__manifest_path}"
|
||||||
|
ID "org.wangwenx190.demo.OpenGLWidget"
|
||||||
|
VERSION "${PROJECT_VERSION}"
|
||||||
|
VISTA_COMPAT
|
||||||
|
WIN7_COMPAT
|
||||||
|
WIN8_COMPAT
|
||||||
|
WIN8_1_COMPAT
|
||||||
|
WIN10_COMPAT
|
||||||
|
WIN11_COMPAT
|
||||||
|
XAML_ISLANDS_COMPAT
|
||||||
|
UTF8_CODEPAGE
|
||||||
|
)
|
||||||
|
target_sources(${PROJECT_NAME} PRIVATE
|
||||||
|
"${__rc_path}"
|
||||||
|
"${__manifest_path}"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_executable(OpenGLWidget ${SOURCES})
|
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||||
|
|
||||||
target_link_libraries(OpenGLWidget PRIVATE
|
|
||||||
Qt${QT_VERSION_MAJOR}::Widgets
|
Qt${QT_VERSION_MAJOR}::Widgets
|
||||||
Qt${QT_VERSION_MAJOR}::OpenGL
|
Qt${QT_VERSION_MAJOR}::OpenGL
|
||||||
|
FramelessHelper::Core
|
||||||
FramelessHelper::Widgets
|
FramelessHelper::Widgets
|
||||||
)
|
)
|
||||||
|
|
||||||
if(QT_VERSION_MAJOR GREATER_EQUAL 6)
|
if(TARGET Qt6::OpenGLWidgets)
|
||||||
target_link_libraries(OpenGLWidget PRIVATE
|
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||||
Qt6::OpenGLWidgets
|
Qt6::OpenGLWidgets
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(../../cmake/utils.cmake)
|
|
||||||
setup_gui_app(
|
setup_gui_app(
|
||||||
TARGETS OpenGLWidget
|
TARGETS ${PROJECT_NAME}
|
||||||
BUNDLE_ID org.wangwenx190.OpenGLWidget
|
BUNDLE_ID "org.wangwenx190.demo.OpenGLWidget"
|
||||||
BUNDLE_VERSION 1.0.0
|
BUNDLE_VERSION "1.0.0"
|
||||||
BUNDLE_VERSION_SHORT 1.0
|
BUNDLE_VERSION_SHORT "1.0"
|
||||||
)
|
)
|
||||||
set(__extra_flags)
|
|
||||||
if(NOT FRAMELESSHELPER_NO_PERMISSIVE_CHECKS)
|
|
||||||
list(APPEND __extra_flags PERMISSIVE)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_SPECTRE)
|
|
||||||
list(APPEND __extra_flags SPECTRE)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_EHCONTGUARD)
|
|
||||||
list(APPEND __extra_flags EHCONTGUARD)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_INTELCET)
|
|
||||||
list(APPEND __extra_flags INTELCET)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_INTELJCC)
|
|
||||||
list(APPEND __extra_flags INTELJCC)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_CFGUARD)
|
|
||||||
list(APPEND __extra_flags CFGUARD)
|
|
||||||
endif()
|
|
||||||
setup_compile_params(TARGETS OpenGLWidget ${__extra_flags})
|
|
||||||
if(FRAMELESSHELPER_EXAMPLES_DEPLOYQT)
|
if(FRAMELESSHELPER_EXAMPLES_DEPLOYQT)
|
||||||
set(__extra_flags)
|
set(__extra_flags)
|
||||||
if(FRAMELESSHELPER_NO_INSTALL)
|
if(FRAMELESSHELPER_NO_INSTALL)
|
||||||
set(__extra_flags NO_INSTALL)
|
set(__extra_flags NO_INSTALL)
|
||||||
endif()
|
endif()
|
||||||
deploy_qt_runtime(TARGET OpenGLWidget ${__extra_flags})
|
deploy_qt_runtime(TARGET ${PROJECT_NAME} ${__extra_flags})
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -22,10 +22,28 @@
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
]]
|
]]
|
||||||
|
|
||||||
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Quick)
|
cmake_minimum_required(VERSION 3.20)
|
||||||
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Quick)
|
|
||||||
|
|
||||||
set(SOURCES
|
project(FramelessHelperDemo-Quick VERSION 1.0)
|
||||||
|
|
||||||
|
include(../../cmake/utils.cmake)
|
||||||
|
|
||||||
|
setup_project(
|
||||||
|
QT_PROJECT
|
||||||
|
LANGUAGES CXX RC
|
||||||
|
NO_WARNING
|
||||||
|
ENABLE_LTO
|
||||||
|
)
|
||||||
|
|
||||||
|
if(FRAMELESSHELPER_EXAMPLES_STANDALONE)
|
||||||
|
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Quick)
|
||||||
|
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Quick)
|
||||||
|
find_package(FramelessHelper REQUIRED COMPONENTS Core Quick)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_executable(${PROJECT_NAME})
|
||||||
|
|
||||||
|
target_sources(${PROJECT_NAME} PRIVATE
|
||||||
../shared/log.h
|
../shared/log.h
|
||||||
../shared/log.cpp
|
../shared/log.cpp
|
||||||
../shared/settings.h
|
../shared/settings.h
|
||||||
|
@ -35,20 +53,37 @@ set(SOURCES
|
||||||
quicksettings.cpp
|
quicksettings.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
if(QT_VERSION VERSION_LESS "6.2")
|
|
||||||
list(APPEND SOURCES resources.qrc)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
enable_language(RC)
|
set(__rc_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.rc")
|
||||||
list(APPEND SOURCES
|
generate_win32_rc_file(
|
||||||
../shared/example.rc
|
PATH "${__rc_path}"
|
||||||
../shared/example.manifest
|
VERSION "${PROJECT_VERSION}"
|
||||||
|
COMPANY "wangwenx190"
|
||||||
|
DESCRIPTION "FramelessHelper Demo Application: Quick"
|
||||||
|
COPYRIGHT "MIT License"
|
||||||
|
PRODUCT "FramelessHelper Demo"
|
||||||
|
ICONS "../shared/example.ico"
|
||||||
|
)
|
||||||
|
set(__manifest_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.manifest")
|
||||||
|
generate_win32_manifest_file(
|
||||||
|
PATH "${__manifest_path}"
|
||||||
|
ID "org.wangwenx190.demo.Quick"
|
||||||
|
VERSION "${PROJECT_VERSION}"
|
||||||
|
VISTA_COMPAT
|
||||||
|
WIN7_COMPAT
|
||||||
|
WIN8_COMPAT
|
||||||
|
WIN8_1_COMPAT
|
||||||
|
WIN10_COMPAT
|
||||||
|
WIN11_COMPAT
|
||||||
|
XAML_ISLANDS_COMPAT
|
||||||
|
UTF8_CODEPAGE
|
||||||
|
)
|
||||||
|
target_sources(${PROJECT_NAME} PRIVATE
|
||||||
|
"${__rc_path}"
|
||||||
|
"${__manifest_path}"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_executable(Quick ${SOURCES})
|
|
||||||
|
|
||||||
if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
|
if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
|
||||||
set(QML_SOURCES
|
set(QML_SOURCES
|
||||||
"qml/Window.qml"
|
"qml/Window.qml"
|
||||||
|
@ -58,11 +93,9 @@ if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
|
||||||
set_source_files_properties(${QML_SOURCES}
|
set_source_files_properties(${QML_SOURCES}
|
||||||
PROPERTIES QT_DISCARD_FILE_CONTENTS TRUE
|
PROPERTIES QT_DISCARD_FILE_CONTENTS TRUE
|
||||||
)
|
)
|
||||||
qt_add_qml_module(Quick
|
qt_add_qml_module(${PROJECT_NAME}
|
||||||
URI Demo
|
URI Demo
|
||||||
VERSION 1.0
|
VERSION 1.0
|
||||||
IMPORT_PATH "${PROJECT_BINARY_DIR}/imports"
|
|
||||||
OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/imports/Demo"
|
|
||||||
RESOURCE_PREFIX "/"
|
RESOURCE_PREFIX "/"
|
||||||
NO_RESOURCE_TARGET_PATH
|
NO_RESOURCE_TARGET_PATH
|
||||||
IMPORTS
|
IMPORTS
|
||||||
|
@ -72,57 +105,37 @@ if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
|
||||||
QML_FILES ${QML_SOURCES}
|
QML_FILES ${QML_SOURCES}
|
||||||
#ENABLE_TYPE_COMPILER
|
#ENABLE_TYPE_COMPILER
|
||||||
)
|
)
|
||||||
qt_add_resources(Quick resources
|
qt_add_resources(${PROJECT_NAME} resources
|
||||||
PREFIX
|
PREFIX
|
||||||
"/"
|
"/"
|
||||||
FILES
|
FILES
|
||||||
"images/microsoft.svg"
|
"images/microsoft.svg"
|
||||||
)
|
)
|
||||||
|
else()
|
||||||
|
target_sources(${PROJECT_NAME} PRIVATE resources.qrc)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(Quick PRIVATE
|
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||||
|
Qt${QT_VERSION_MAJOR}::Quick
|
||||||
Qt${QT_VERSION_MAJOR}::QuickPrivate
|
Qt${QT_VERSION_MAJOR}::QuickPrivate
|
||||||
|
FramelessHelper::Core
|
||||||
FramelessHelper::Quick
|
FramelessHelper::Quick
|
||||||
)
|
)
|
||||||
|
|
||||||
target_compile_definitions(Quick PRIVATE
|
setup_gui_app(
|
||||||
$<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>
|
TARGETS ${PROJECT_NAME}
|
||||||
|
BUNDLE_ID "org.wangwenx190.demo.Quick"
|
||||||
|
BUNDLE_VERSION "1.0.0"
|
||||||
|
BUNDLE_VERSION_SHORT "1.0"
|
||||||
)
|
)
|
||||||
|
|
||||||
include(../../cmake/utils.cmake)
|
|
||||||
setup_gui_app(
|
|
||||||
TARGETS Quick
|
|
||||||
BUNDLE_ID org.wangwenx190.Quick
|
|
||||||
BUNDLE_VERSION 1.0.0
|
|
||||||
BUNDLE_VERSION_SHORT 1.0
|
|
||||||
)
|
|
||||||
set(__extra_flags)
|
|
||||||
if(NOT FRAMELESSHELPER_NO_PERMISSIVE_CHECKS)
|
|
||||||
list(APPEND __extra_flags PERMISSIVE)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_SPECTRE)
|
|
||||||
list(APPEND __extra_flags SPECTRE)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_EHCONTGUARD)
|
|
||||||
list(APPEND __extra_flags EHCONTGUARD)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_INTELCET)
|
|
||||||
list(APPEND __extra_flags INTELCET)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_INTELJCC)
|
|
||||||
list(APPEND __extra_flags INTELJCC)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_CFGUARD)
|
|
||||||
list(APPEND __extra_flags CFGUARD)
|
|
||||||
endif()
|
|
||||||
setup_compile_params(TARGETS Quick ${__extra_flags})
|
|
||||||
if(FRAMELESSHELPER_EXAMPLES_DEPLOYQT)
|
if(FRAMELESSHELPER_EXAMPLES_DEPLOYQT)
|
||||||
set(__extra_flags)
|
set(__extra_flags)
|
||||||
if(FRAMELESSHELPER_NO_INSTALL)
|
if(FRAMELESSHELPER_NO_INSTALL)
|
||||||
set(__extra_flags NO_INSTALL)
|
set(__extra_flags NO_INSTALL)
|
||||||
endif()
|
endif()
|
||||||
deploy_qt_runtime(
|
deploy_qt_runtime(
|
||||||
TARGET Quick
|
TARGET ${PROJECT_NAME}
|
||||||
QML_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/qml"
|
QML_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/qml"
|
||||||
${__extra_flags}
|
${__extra_flags}
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
TARGET = Quick
|
TARGET = FramelessHelperDemo-Quick
|
||||||
QT += qml quick quickcontrols2
|
QT += qml quick quickcontrols2
|
||||||
win32: CONFIG -= embed_manifest_exe
|
|
||||||
DEFINES += QUICK_USE_QMAKE
|
DEFINES += QUICK_USE_QMAKE
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
../shared/log.h \
|
../shared/log.h \
|
||||||
|
@ -13,6 +12,5 @@ SOURCES += \
|
||||||
quicksettings.cpp \
|
quicksettings.cpp \
|
||||||
main.cpp
|
main.cpp
|
||||||
RESOURCES += resources.qrc
|
RESOURCES += resources.qrc
|
||||||
win32: RC_FILE = ../shared/example.rc
|
|
||||||
include(../../qmake/core.pri)
|
include(../../qmake/core.pri)
|
||||||
include(../../qmake/quick.pri)
|
include(../../qmake/quick.pri)
|
||||||
|
|
|
@ -23,6 +23,6 @@
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
set QSG_RHI_BACKEND=d3d11
|
set QSG_RHI_BACKEND=d3d11
|
||||||
"%~dp0Quick.exe"
|
"%~dp0FramelessHelperDemo-Quick.exe"
|
||||||
endlocal
|
endlocal
|
||||||
exit /b 0
|
exit /b 0
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
:: MIT License
|
||||||
|
::
|
||||||
|
:: Copyright (C) 2021-2023 by wangwenx190 (Yuhang Zhao)
|
||||||
|
::
|
||||||
|
:: Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
:: of this software and associated documentation files (the "Software"), to deal
|
||||||
|
:: in the Software without restriction, including without limitation the rights
|
||||||
|
:: to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
:: copies of the Software, and to permit persons to whom the Software is
|
||||||
|
:: furnished to do so, subject to the following conditions:
|
||||||
|
::
|
||||||
|
:: The above copyright notice and this permission notice shall be included in
|
||||||
|
:: all copies or substantial portions of the Software.
|
||||||
|
::
|
||||||
|
:: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
:: IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
:: FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
:: AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
:: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
:: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
:: SOFTWARE.
|
||||||
|
|
||||||
|
@echo off
|
||||||
|
setlocal
|
||||||
|
set QSG_RHI_BACKEND=d3d12
|
||||||
|
"%~dp0FramelessHelperDemo-Quick.exe"
|
||||||
|
endlocal
|
||||||
|
exit /b 0
|
|
@ -23,6 +23,6 @@
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
set QSG_RHI_BACKEND=opengl
|
set QSG_RHI_BACKEND=opengl
|
||||||
"%~dp0Quick.exe"
|
"%~dp0FramelessHelperDemo-Quick.exe"
|
||||||
endlocal
|
endlocal
|
||||||
exit /b 0
|
exit /b 0
|
||||||
|
|
|
@ -23,6 +23,6 @@
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
set QSG_RHI_BACKEND=vulkan
|
set QSG_RHI_BACKEND=vulkan
|
||||||
"%~dp0Quick.exe"
|
"%~dp0FramelessHelperDemo-Quick.exe"
|
||||||
endlocal
|
endlocal
|
||||||
exit /b 0
|
exit /b 0
|
||||||
|
|
|
@ -1,87 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (C) 2021-2023 by wangwenx190 (Yuhang Zhao)
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
|
||||||
<assemblyIdentity type="win32" name="org.wangwenx190.framelesshelper.demo" version="1.0.0.0"/>
|
|
||||||
<description>FramelessHelper Demo</description>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
|
||||||
<security>
|
|
||||||
<requestedPrivileges>
|
|
||||||
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
|
|
||||||
</requestedPrivileges>
|
|
||||||
</security>
|
|
||||||
</trustInfo>
|
|
||||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
|
||||||
<application>
|
|
||||||
<!-- Windows 10 Version 1809 (October 2018 Update) -->
|
|
||||||
<maxversiontested Id="10.0.17763.0"/>
|
|
||||||
<!-- Windows 10 Version 1903 (May 2019 Update) -->
|
|
||||||
<maxversiontested Id="10.0.18362.0"/>
|
|
||||||
<!-- Windows 10 Version 1909 (November 2019 Update) -->
|
|
||||||
<maxversiontested Id="10.0.18363.0"/>
|
|
||||||
<!-- Windows 10 Version 2004 (May 2020 Update) -->
|
|
||||||
<maxversiontested Id="10.0.19041.0"/>
|
|
||||||
<!-- Windows 10 Version 20H2 (October 2020 Update) -->
|
|
||||||
<maxversiontested Id="10.0.19042.0"/>
|
|
||||||
<!-- Windows 10 Version 21H1 (May 2021 Update) -->
|
|
||||||
<maxversiontested Id="10.0.19043.0"/>
|
|
||||||
<!-- Windows 10 Version 21H2 (November 2021 Update) -->
|
|
||||||
<maxversiontested Id="10.0.19044.0"/>
|
|
||||||
<!-- Windows 10 Version 22H2 (October 2022 Update) -->
|
|
||||||
<maxversiontested Id="10.0.19045.0"/>
|
|
||||||
<!-- Windows 11 Version 21H2 -->
|
|
||||||
<maxversiontested Id="10.0.22000.0"/>
|
|
||||||
<!-- Windows 11 Version 22H2 (October 2022 Update) -->
|
|
||||||
<maxversiontested Id="10.0.22621.0"/>
|
|
||||||
<!-- Windows Vista and Windows Server 2008 -->
|
|
||||||
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
|
||||||
<!-- Windows 7 and Windows Server 2008 R2 -->
|
|
||||||
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
|
|
||||||
<!-- Windows 8 and Windows Server 2012 -->
|
|
||||||
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
|
|
||||||
<!-- Windows 8.1 and Windows Server 2012 R2 -->
|
|
||||||
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
|
|
||||||
<!-- Windows 10 and Windows 11 -->
|
|
||||||
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
|
|
||||||
</application>
|
|
||||||
</compatibility>
|
|
||||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
|
||||||
<windowsSettings>
|
|
||||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True/PM</dpiAware>
|
|
||||||
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
|
|
||||||
<printerDriverIsolation xmlns="http://schemas.microsoft.com/SMI/2011/WindowsSettings">True</printerDriverIsolation>
|
|
||||||
<disableWindowFiltering xmlns="http://schemas.microsoft.com/SMI/2011/WindowsSettings">True</disableWindowFiltering>
|
|
||||||
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">True</longPathAware>
|
|
||||||
<activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
|
|
||||||
<heapType xmlns="http://schemas.microsoft.com/SMI/2020/WindowsSettings">SegmentHeap</heapType>
|
|
||||||
</windowsSettings>
|
|
||||||
</application>
|
|
||||||
</assembly>
|
|
|
@ -1,70 +0,0 @@
|
||||||
/*
|
|
||||||
* MIT License
|
|
||||||
*
|
|
||||||
* Copyright (C) 2021-2023 by wangwenx190 (Yuhang Zhao)
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
|
||||||
* in the Software without restriction, including without limitation the rights
|
|
||||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the Software is
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
* SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
IDI_ICON1 ICON "example.ico"
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
#if (defined(WIDGET_USE_QMAKE) || defined(QUICK_USE_QMAKE))
|
|
||||||
#ifndef CREATEPROCESS_MANIFEST_RESOURCE_ID
|
|
||||||
#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
|
|
||||||
#endif
|
|
||||||
#ifndef RT_MANIFEST
|
|
||||||
#define RT_MANIFEST 24
|
|
||||||
#endif
|
|
||||||
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "example.manifest"
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
|
||||||
FILEVERSION 1,0,0,0
|
|
||||||
PRODUCTVERSION 1,0,0,0
|
|
||||||
FILEFLAGSMASK 0x3fL
|
|
||||||
#ifdef _DEBUG
|
|
||||||
FILEFLAGS VS_FF_DEBUG
|
|
||||||
#else
|
|
||||||
FILEFLAGS 0x0L
|
|
||||||
#endif
|
|
||||||
FILEOS VOS_NT_WINDOWS32
|
|
||||||
FILETYPE VFT_APP
|
|
||||||
FILESUBTYPE VFT2_UNKNOWN
|
|
||||||
BEGIN
|
|
||||||
BLOCK "StringFileInfo"
|
|
||||||
BEGIN
|
|
||||||
BLOCK "040904b0"
|
|
||||||
BEGIN
|
|
||||||
VALUE "CompanyName", "wangwenx190"
|
|
||||||
VALUE "FileDescription", "FramelessHelper Demo Application"
|
|
||||||
VALUE "FileVersion", "1.0.0.0"
|
|
||||||
VALUE "LegalCopyright", "MIT License"
|
|
||||||
VALUE "ProductName", "Demo"
|
|
||||||
VALUE "ProductVersion", "1.0.0.0"
|
|
||||||
END
|
|
||||||
END
|
|
||||||
BLOCK "VarFileInfo"
|
|
||||||
BEGIN
|
|
||||||
VALUE "Translation", 0x409, 1200
|
|
||||||
END
|
|
||||||
END
|
|
|
@ -22,7 +22,28 @@
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
]]
|
]]
|
||||||
|
|
||||||
set(SOURCES
|
cmake_minimum_required(VERSION 3.20)
|
||||||
|
|
||||||
|
project(FramelessHelperDemo-Widget VERSION 1.0)
|
||||||
|
|
||||||
|
include(../../cmake/utils.cmake)
|
||||||
|
|
||||||
|
setup_project(
|
||||||
|
QT_PROJECT
|
||||||
|
LANGUAGES CXX RC
|
||||||
|
NO_WARNING
|
||||||
|
ENABLE_LTO
|
||||||
|
)
|
||||||
|
|
||||||
|
if(FRAMELESSHELPER_EXAMPLES_STANDALONE)
|
||||||
|
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
|
||||||
|
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
|
||||||
|
find_package(FramelessHelper REQUIRED COMPONENTS Core Widgets)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_executable(${PROJECT_NAME})
|
||||||
|
|
||||||
|
target_sources(${PROJECT_NAME} PRIVATE
|
||||||
../shared/log.h
|
../shared/log.h
|
||||||
../shared/log.cpp
|
../shared/log.cpp
|
||||||
../shared/settings.h
|
../shared/settings.h
|
||||||
|
@ -33,51 +54,53 @@ set(SOURCES
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
enable_language(RC)
|
set(__rc_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.rc")
|
||||||
list(APPEND SOURCES
|
generate_win32_rc_file(
|
||||||
../shared/example.rc
|
PATH "${__rc_path}"
|
||||||
../shared/example.manifest
|
VERSION "${PROJECT_VERSION}"
|
||||||
|
COMPANY "wangwenx190"
|
||||||
|
DESCRIPTION "FramelessHelper Demo Application: Widget"
|
||||||
|
COPYRIGHT "MIT License"
|
||||||
|
PRODUCT "FramelessHelper Demo"
|
||||||
|
ICONS "../shared/example.ico"
|
||||||
|
)
|
||||||
|
set(__manifest_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.manifest")
|
||||||
|
generate_win32_manifest_file(
|
||||||
|
PATH "${__manifest_path}"
|
||||||
|
ID "org.wangwenx190.demo.Widget"
|
||||||
|
VERSION "${PROJECT_VERSION}"
|
||||||
|
VISTA_COMPAT
|
||||||
|
WIN7_COMPAT
|
||||||
|
WIN8_COMPAT
|
||||||
|
WIN8_1_COMPAT
|
||||||
|
WIN10_COMPAT
|
||||||
|
WIN11_COMPAT
|
||||||
|
XAML_ISLANDS_COMPAT
|
||||||
|
UTF8_CODEPAGE
|
||||||
|
)
|
||||||
|
target_sources(${PROJECT_NAME} PRIVATE
|
||||||
|
"${__rc_path}"
|
||||||
|
"${__manifest_path}"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_executable(Widget ${SOURCES})
|
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||||
|
|
||||||
target_link_libraries(Widget PRIVATE
|
|
||||||
Qt${QT_VERSION_MAJOR}::Widgets
|
Qt${QT_VERSION_MAJOR}::Widgets
|
||||||
|
FramelessHelper::Core
|
||||||
FramelessHelper::Widgets
|
FramelessHelper::Widgets
|
||||||
)
|
)
|
||||||
|
|
||||||
include(../../cmake/utils.cmake)
|
|
||||||
setup_gui_app(
|
setup_gui_app(
|
||||||
TARGETS Widget
|
TARGETS ${PROJECT_NAME}
|
||||||
BUNDLE_ID org.wangwenx190.Widget
|
BUNDLE_ID "org.wangwenx190.demo.Widget"
|
||||||
BUNDLE_VERSION 1.0.0
|
BUNDLE_VERSION "1.0.0"
|
||||||
BUNDLE_VERSION_SHORT 1.0
|
BUNDLE_VERSION_SHORT "1.0"
|
||||||
)
|
)
|
||||||
set(__extra_flags)
|
|
||||||
if(NOT FRAMELESSHELPER_NO_PERMISSIVE_CHECKS)
|
|
||||||
list(APPEND __extra_flags PERMISSIVE)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_SPECTRE)
|
|
||||||
list(APPEND __extra_flags SPECTRE)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_EHCONTGUARD)
|
|
||||||
list(APPEND __extra_flags EHCONTGUARD)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_INTELCET)
|
|
||||||
list(APPEND __extra_flags INTELCET)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_INTELJCC)
|
|
||||||
list(APPEND __extra_flags INTELJCC)
|
|
||||||
endif()
|
|
||||||
if(FRAMELESSHELPER_ENABLE_CFGUARD)
|
|
||||||
list(APPEND __extra_flags CFGUARD)
|
|
||||||
endif()
|
|
||||||
setup_compile_params(TARGETS Widget ${__extra_flags})
|
|
||||||
if(FRAMELESSHELPER_EXAMPLES_DEPLOYQT)
|
if(FRAMELESSHELPER_EXAMPLES_DEPLOYQT)
|
||||||
set(__extra_flags)
|
set(__extra_flags)
|
||||||
if(FRAMELESSHELPER_NO_INSTALL)
|
if(FRAMELESSHELPER_NO_INSTALL)
|
||||||
set(__extra_flags NO_INSTALL)
|
set(__extra_flags NO_INSTALL)
|
||||||
endif()
|
endif()
|
||||||
deploy_qt_runtime(TARGET Widget ${__extra_flags})
|
deploy_qt_runtime(TARGET ${PROJECT_NAME} ${__extra_flags})
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
TARGET = Widget
|
TARGET = FramelessHelperDemo-Widget
|
||||||
QT += widgets
|
QT += widgets
|
||||||
win32: CONFIG -= embed_manifest_exe
|
|
||||||
DEFINES += WIDGET_USE_QMAKE
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
../shared/log.h \
|
../shared/log.h \
|
||||||
../shared/settings.h \
|
../shared/settings.h \
|
||||||
|
@ -12,6 +10,5 @@ SOURCES += \
|
||||||
../shared/settings.cpp \
|
../shared/settings.cpp \
|
||||||
widget.cpp \
|
widget.cpp \
|
||||||
main.cpp
|
main.cpp
|
||||||
win32: RC_FILE = ../shared/example.rc
|
|
||||||
include(../../qmake/core.pri)
|
include(../../qmake/core.pri)
|
||||||
include(../../qmake/widgets.pri)
|
include(../../qmake/widgets.pri)
|
||||||
|
|
|
@ -193,7 +193,9 @@ QT_END_NAMESPACE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef FRAMELESSHELPER_CORE_NO_BUNDLE_RESOURCE
|
#ifndef FRAMELESSHELPER_CORE_NO_BUNDLE_RESOURCE
|
||||||
// Call this function in your main() function if you built FramelessHelper as a static library.
|
// Call this function in your main() function if you are using FramelessHelper as a static library,
|
||||||
|
// it can make sure the resources bundled in the static library are correctly initialized.
|
||||||
|
// NOTE: This function is intentionally not inside any namespaces.
|
||||||
FRAMELESSHELPER_CORE_API void framelesshelpercore_initResource();
|
FRAMELESSHELPER_CORE_API void framelesshelpercore_initResource();
|
||||||
#endif // FRAMELESSHELPER_CORE_NO_BUNDLE_RESOURCE
|
#endif // FRAMELESSHELPER_CORE_NO_BUNDLE_RESOURCE
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
]]
|
]]
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
if(FRAMELESSHELPER_NO_PRIVATE)
|
if(FRAMELESSHELPER_NO_PRIVATE)
|
||||||
# Qt X11Extras is only available in Qt5.
|
# Qt X11Extras is only available in Qt5.
|
||||||
|
@ -136,7 +138,7 @@ elseif(UNIX)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32 AND NOT FRAMELESSHELPER_BUILD_STATIC)
|
if(WIN32 AND NOT FRAMELESSHELPER_BUILD_STATIC)
|
||||||
set(__rc_path "${CMAKE_CURRENT_BINARY_DIR}/framelesshelpercore.rc")
|
set(__rc_path "${CMAKE_CURRENT_BINARY_DIR}/${SUB_PROJ_NAME}.rc")
|
||||||
generate_win32_rc_file(
|
generate_win32_rc_file(
|
||||||
PATH "${__rc_path}"
|
PATH "${__rc_path}"
|
||||||
VERSION "${PROJECT_VERSION}"
|
VERSION "${PROJECT_VERSION}"
|
||||||
|
@ -155,15 +157,12 @@ set(ALL_SOURCES ${PUBLIC_HEADERS} ${PRIVATE_HEADERS} ${SOURCES})
|
||||||
|
|
||||||
if(FRAMELESSHELPER_BUILD_STATIC)
|
if(FRAMELESSHELPER_BUILD_STATIC)
|
||||||
set(SUB_MOD_LIB_TYPE "STATIC")
|
set(SUB_MOD_LIB_TYPE "STATIC")
|
||||||
set(SUB_MOD_LIB_DIR "lib")
|
set(SUB_MOD_LIB_DIR "${CMAKE_INSTALL_LIBDIR}")
|
||||||
add_library(${SUB_PROJ_NAME} STATIC ${ALL_SOURCES})
|
|
||||||
add_library(${SUB_PROJ_NAME}_static ALIAS ${SUB_PROJ_NAME})
|
|
||||||
else()
|
else()
|
||||||
set(SUB_MOD_LIB_TYPE "SHARED")
|
set(SUB_MOD_LIB_TYPE "SHARED")
|
||||||
set(SUB_MOD_LIB_DIR "bin")
|
set(SUB_MOD_LIB_DIR "${CMAKE_INSTALL_BINDIR}")
|
||||||
add_library(${SUB_PROJ_NAME} SHARED ${ALL_SOURCES})
|
|
||||||
add_library(${SUB_PROJ_NAME}_shared ALIAS ${SUB_PROJ_NAME})
|
|
||||||
endif()
|
endif()
|
||||||
|
add_library(${SUB_PROJ_NAME} ${SUB_MOD_LIB_TYPE} ${ALL_SOURCES})
|
||||||
add_library(${PROJECT_NAME}::${SUB_PROJ_NAME} ALIAS ${SUB_PROJ_NAME})
|
add_library(${PROJECT_NAME}::${SUB_PROJ_NAME} ALIAS ${SUB_PROJ_NAME})
|
||||||
add_library(${PROJECT_NAME}::${SUB_MOD_NAME} ALIAS ${SUB_PROJ_NAME})
|
add_library(${PROJECT_NAME}::${SUB_MOD_NAME} ALIAS ${SUB_PROJ_NAME})
|
||||||
|
|
||||||
|
@ -172,6 +171,8 @@ set_target_properties(${SUB_PROJ_NAME} PROPERTIES
|
||||||
SOVERSION "${PROJECT_VERSION_MAJOR}"
|
SOVERSION "${PROJECT_VERSION_MAJOR}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(SUB_MOD_TARGETS ${SUB_PROJ_NAME})
|
||||||
|
|
||||||
set(__prefix "")
|
set(__prefix "")
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
set(__prefix "lib")
|
set(__prefix "lib")
|
||||||
|
@ -212,11 +213,14 @@ if(NOT FRAMELESSHELPER_NO_BUNDLE_RESOURCE)
|
||||||
"resources/images/noise.png"
|
"resources/images/noise.png"
|
||||||
OUTPUT_TARGETS __qrc_targets
|
OUTPUT_TARGETS __qrc_targets
|
||||||
)
|
)
|
||||||
if(FRAMELESSHELPER_BUILD_STATIC AND __qrc_targets)
|
if(__qrc_targets)
|
||||||
foreach(__target ${__qrc_targets})
|
foreach(__target ${__qrc_targets})
|
||||||
target_sources(${SUB_PROJ_NAME} PRIVATE
|
list(APPEND SUB_MOD_TARGETS ${__target})
|
||||||
$<TARGET_OBJECTS:${__target}>
|
if(FRAMELESSHELPER_BUILD_STATIC)
|
||||||
)
|
target_sources(${SUB_PROJ_NAME} PRIVATE
|
||||||
|
$<TARGET_OBJECTS:${__target}>
|
||||||
|
)
|
||||||
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
|
@ -340,7 +344,6 @@ if(FRAMELESSHELPER_ENABLE_CFGUARD)
|
||||||
endif()
|
endif()
|
||||||
setup_compile_params(TARGETS ${SUB_PROJ_NAME} ${__extra_flags})
|
setup_compile_params(TARGETS ${SUB_PROJ_NAME} ${__extra_flags})
|
||||||
if(NOT FRAMELESSHELPER_NO_INSTALL)
|
if(NOT FRAMELESSHELPER_NO_INSTALL)
|
||||||
include(GNUInstallDirs)
|
|
||||||
set(__cmake_dir "${CMAKE_CURRENT_BINARY_DIR}/cmake")
|
set(__cmake_dir "${CMAKE_CURRENT_BINARY_DIR}/cmake")
|
||||||
set(__config_file "${__cmake_dir}/${SUB_PROJ_NAME}Config.cmake")
|
set(__config_file "${__cmake_dir}/${SUB_PROJ_NAME}Config.cmake")
|
||||||
configure_file(../../FramelessHelperModuleConfig.cmake.in ${__config_file} @ONLY)
|
configure_file(../../FramelessHelperModuleConfig.cmake.in ${__config_file} @ONLY)
|
||||||
|
@ -360,7 +363,7 @@ if(NOT FRAMELESSHELPER_NO_INSTALL)
|
||||||
DESTINATION "${__inc_dir}/private"
|
DESTINATION "${__inc_dir}/private"
|
||||||
)
|
)
|
||||||
install(
|
install(
|
||||||
TARGETS ${SUB_PROJ_NAME}
|
TARGETS ${SUB_MOD_TARGETS}
|
||||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
]]
|
]]
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS QuickTemplates2 QuickControls2)
|
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS QuickTemplates2 QuickControls2)
|
||||||
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS QuickTemplates2 QuickControls2)
|
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS QuickTemplates2 QuickControls2)
|
||||||
|
|
||||||
|
@ -82,7 +84,7 @@ set(SOURCES
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32 AND NOT FRAMELESSHELPER_BUILD_STATIC)
|
if(WIN32 AND NOT FRAMELESSHELPER_BUILD_STATIC)
|
||||||
set(__rc_path "${CMAKE_CURRENT_BINARY_DIR}/framelesshelperquick.rc")
|
set(__rc_path "${CMAKE_CURRENT_BINARY_DIR}/${SUB_PROJ_NAME}.rc")
|
||||||
generate_win32_rc_file(
|
generate_win32_rc_file(
|
||||||
PATH "${__rc_path}"
|
PATH "${__rc_path}"
|
||||||
VERSION "${PROJECT_VERSION}"
|
VERSION "${PROJECT_VERSION}"
|
||||||
|
@ -101,15 +103,12 @@ set(ALL_SOURCES ${PUBLIC_HEADERS} ${PRIVATE_HEADERS} ${SOURCES})
|
||||||
|
|
||||||
if(FRAMELESSHELPER_BUILD_STATIC)
|
if(FRAMELESSHELPER_BUILD_STATIC)
|
||||||
set(SUB_MOD_LIB_TYPE "STATIC")
|
set(SUB_MOD_LIB_TYPE "STATIC")
|
||||||
set(SUB_MOD_LIB_DIR "lib")
|
set(SUB_MOD_LIB_DIR "${CMAKE_INSTALL_LIBDIR}")
|
||||||
add_library(${SUB_PROJ_NAME} STATIC ${ALL_SOURCES})
|
|
||||||
add_library(${SUB_PROJ_NAME}_static ALIAS ${SUB_PROJ_NAME})
|
|
||||||
else()
|
else()
|
||||||
set(SUB_MOD_LIB_TYPE "SHARED")
|
set(SUB_MOD_LIB_TYPE "SHARED")
|
||||||
set(SUB_MOD_LIB_DIR "bin")
|
set(SUB_MOD_LIB_DIR "${CMAKE_INSTALL_BINDIR}")
|
||||||
add_library(${SUB_PROJ_NAME} SHARED ${ALL_SOURCES})
|
|
||||||
add_library(${SUB_PROJ_NAME}_shared ALIAS ${SUB_PROJ_NAME})
|
|
||||||
endif()
|
endif()
|
||||||
|
add_library(${SUB_PROJ_NAME} ${SUB_MOD_LIB_TYPE} ${ALL_SOURCES})
|
||||||
add_library(${PROJECT_NAME}::${SUB_PROJ_NAME} ALIAS ${SUB_PROJ_NAME})
|
add_library(${PROJECT_NAME}::${SUB_PROJ_NAME} ALIAS ${SUB_PROJ_NAME})
|
||||||
add_library(${PROJECT_NAME}::${SUB_MOD_NAME} ALIAS ${SUB_PROJ_NAME})
|
add_library(${PROJECT_NAME}::${SUB_MOD_NAME} ALIAS ${SUB_PROJ_NAME})
|
||||||
|
|
||||||
|
@ -118,6 +117,8 @@ set_target_properties(${SUB_PROJ_NAME} PROPERTIES
|
||||||
SOVERSION "${PROJECT_VERSION_MAJOR}"
|
SOVERSION "${PROJECT_VERSION_MAJOR}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(SUB_MOD_TARGETS ${SUB_PROJ_NAME})
|
||||||
|
|
||||||
set(__prefix "")
|
set(__prefix "")
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
set(__prefix "lib")
|
set(__prefix "lib")
|
||||||
|
@ -162,17 +163,20 @@ if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
|
||||||
OUTPUT_DIRECTORY "${__import_dir}"
|
OUTPUT_DIRECTORY "${__import_dir}"
|
||||||
RESOURCE_PREFIX "/"
|
RESOURCE_PREFIX "/"
|
||||||
#NO_RESOURCE_TARGET_PATH # Can't be used for non-executables.
|
#NO_RESOURCE_TARGET_PATH # Can't be used for non-executables.
|
||||||
OUTPUT_TARGETS __qrc_targets
|
OUTPUT_TARGETS __qml_targets
|
||||||
IMPORTS
|
IMPORTS
|
||||||
QtQml/auto
|
QtQml/auto
|
||||||
QtQuick/auto
|
QtQuick/auto
|
||||||
QtQuick.Controls.Basic/auto
|
QtQuick.Controls.Basic/auto
|
||||||
)
|
)
|
||||||
if(FRAMELESSHELPER_BUILD_STATIC AND __qrc_targets)
|
if(__qml_targets)
|
||||||
foreach(__target ${__qrc_targets})
|
foreach(__target ${__qml_targets})
|
||||||
target_sources(${SUB_PROJ_NAME} PRIVATE
|
list(APPEND SUB_MOD_TARGETS ${__target})
|
||||||
$<TARGET_OBJECTS:${__target}>
|
if(FRAMELESSHELPER_BUILD_STATIC)
|
||||||
)
|
target_sources(${SUB_PROJ_NAME} PRIVATE
|
||||||
|
$<TARGET_OBJECTS:${__target}>
|
||||||
|
)
|
||||||
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
if(NOT FRAMELESSHELPER_NO_INSTALL)
|
if(NOT FRAMELESSHELPER_NO_INSTALL)
|
||||||
|
@ -295,7 +299,6 @@ if(FRAMELESSHELPER_ENABLE_CFGUARD)
|
||||||
endif()
|
endif()
|
||||||
setup_compile_params(TARGETS ${SUB_PROJ_NAME} ${__extra_flags})
|
setup_compile_params(TARGETS ${SUB_PROJ_NAME} ${__extra_flags})
|
||||||
if(NOT FRAMELESSHELPER_NO_INSTALL)
|
if(NOT FRAMELESSHELPER_NO_INSTALL)
|
||||||
include(GNUInstallDirs)
|
|
||||||
set(__cmake_dir "${CMAKE_CURRENT_BINARY_DIR}/cmake")
|
set(__cmake_dir "${CMAKE_CURRENT_BINARY_DIR}/cmake")
|
||||||
set(__config_file "${__cmake_dir}/${SUB_PROJ_NAME}Config.cmake")
|
set(__config_file "${__cmake_dir}/${SUB_PROJ_NAME}Config.cmake")
|
||||||
configure_file(../../FramelessHelperModuleConfig.cmake.in ${__config_file} @ONLY)
|
configure_file(../../FramelessHelperModuleConfig.cmake.in ${__config_file} @ONLY)
|
||||||
|
@ -315,7 +318,7 @@ if(NOT FRAMELESSHELPER_NO_INSTALL)
|
||||||
DESTINATION "${__inc_dir}/private"
|
DESTINATION "${__inc_dir}/private"
|
||||||
)
|
)
|
||||||
install(
|
install(
|
||||||
TARGETS ${SUB_PROJ_NAME}
|
TARGETS ${SUB_MOD_TARGETS}
|
||||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
]]
|
]]
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
set(SUB_MOD_NAME Widgets)
|
set(SUB_MOD_NAME Widgets)
|
||||||
set(SUB_PROJ_NAME ${PROJECT_NAME}${SUB_MOD_NAME})
|
set(SUB_PROJ_NAME ${PROJECT_NAME}${SUB_MOD_NAME})
|
||||||
set(SUB_PROJ_PATH ${PROJECT_NAME}/${SUB_MOD_NAME})
|
set(SUB_PROJ_PATH ${PROJECT_NAME}/${SUB_MOD_NAME})
|
||||||
|
@ -70,7 +72,7 @@ set(SOURCES
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32 AND NOT FRAMELESSHELPER_BUILD_STATIC)
|
if(WIN32 AND NOT FRAMELESSHELPER_BUILD_STATIC)
|
||||||
set(__rc_path "${CMAKE_CURRENT_BINARY_DIR}/framelesshelperwidgets.rc")
|
set(__rc_path "${CMAKE_CURRENT_BINARY_DIR}/${SUB_PROJ_NAME}.rc")
|
||||||
generate_win32_rc_file(
|
generate_win32_rc_file(
|
||||||
PATH "${__rc_path}"
|
PATH "${__rc_path}"
|
||||||
VERSION "${PROJECT_VERSION}"
|
VERSION "${PROJECT_VERSION}"
|
||||||
|
@ -89,15 +91,12 @@ set(ALL_SOURCES ${PUBLIC_HEADERS} ${PRIVATE_HEADERS} ${SOURCES})
|
||||||
|
|
||||||
if(FRAMELESSHELPER_BUILD_STATIC)
|
if(FRAMELESSHELPER_BUILD_STATIC)
|
||||||
set(SUB_MOD_LIB_TYPE "STATIC")
|
set(SUB_MOD_LIB_TYPE "STATIC")
|
||||||
set(SUB_MOD_LIB_DIR "lib")
|
set(SUB_MOD_LIB_DIR "${CMAKE_INSTALL_LIBDIR}")
|
||||||
add_library(${SUB_PROJ_NAME} STATIC ${ALL_SOURCES})
|
|
||||||
add_library(${SUB_PROJ_NAME}_static ALIAS ${SUB_PROJ_NAME})
|
|
||||||
else()
|
else()
|
||||||
set(SUB_MOD_LIB_TYPE "SHARED")
|
set(SUB_MOD_LIB_TYPE "SHARED")
|
||||||
set(SUB_MOD_LIB_DIR "bin")
|
set(SUB_MOD_LIB_DIR "${CMAKE_INSTALL_BINDIR}")
|
||||||
add_library(${SUB_PROJ_NAME} SHARED ${ALL_SOURCES})
|
|
||||||
add_library(${SUB_PROJ_NAME}_shared ALIAS ${SUB_PROJ_NAME})
|
|
||||||
endif()
|
endif()
|
||||||
|
add_library(${SUB_PROJ_NAME} ${SUB_MOD_LIB_TYPE} ${ALL_SOURCES})
|
||||||
add_library(${PROJECT_NAME}::${SUB_PROJ_NAME} ALIAS ${SUB_PROJ_NAME})
|
add_library(${PROJECT_NAME}::${SUB_PROJ_NAME} ALIAS ${SUB_PROJ_NAME})
|
||||||
add_library(${PROJECT_NAME}::${SUB_MOD_NAME} ALIAS ${SUB_PROJ_NAME})
|
add_library(${PROJECT_NAME}::${SUB_MOD_NAME} ALIAS ${SUB_PROJ_NAME})
|
||||||
|
|
||||||
|
@ -216,7 +215,6 @@ if(FRAMELESSHELPER_ENABLE_CFGUARD)
|
||||||
endif()
|
endif()
|
||||||
setup_compile_params(TARGETS ${SUB_PROJ_NAME} ${__extra_flags})
|
setup_compile_params(TARGETS ${SUB_PROJ_NAME} ${__extra_flags})
|
||||||
if(NOT FRAMELESSHELPER_NO_INSTALL)
|
if(NOT FRAMELESSHELPER_NO_INSTALL)
|
||||||
include(GNUInstallDirs)
|
|
||||||
set(__cmake_dir "${CMAKE_CURRENT_BINARY_DIR}/cmake")
|
set(__cmake_dir "${CMAKE_CURRENT_BINARY_DIR}/cmake")
|
||||||
set(__config_file "${__cmake_dir}/${SUB_PROJ_NAME}Config.cmake")
|
set(__config_file "${__cmake_dir}/${SUB_PROJ_NAME}Config.cmake")
|
||||||
configure_file(../../FramelessHelperModuleConfig.cmake.in ${__config_file} @ONLY)
|
configure_file(../../FramelessHelperModuleConfig.cmake.in ${__config_file} @ONLY)
|
||||||
|
|
Loading…
Reference in New Issue