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: |
|
||||
mkdir 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 --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)
|
||||
|
||||
project(FramelessHelper
|
||||
VERSION 2.3.5
|
||||
VERSION "2.3.5"
|
||||
DESCRIPTION "Cross-platform window customization framework for Qt Widgets and Qt Quick."
|
||||
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_INTELJCC "Enable Intel JCC." 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)
|
||||
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)
|
||||
endif()
|
||||
prepare_package_export(
|
||||
PACKAGE_NAME ${PROJECT_NAME}
|
||||
PACKAGE_VERSION ${PROJECT_VERSION}
|
||||
PACKAGE_NAME "${PROJECT_NAME}"
|
||||
PACKAGE_VERSION "${PROJECT_VERSION}"
|
||||
${__extra_flags}
|
||||
)
|
||||
unset(__extra_flags)
|
||||
|
@ -181,5 +182,6 @@ if(NOT FRAMELESSHELPER_NO_SUMMARY)
|
|||
message("Enable Intel CET: ${FRAMELESSHELPER_ENABLE_INTELCET}")
|
||||
message("Enable Intel JCC: ${FRAMELESSHELPER_ENABLE_INTELJCC}")
|
||||
message("Enable Control Flow Guard (CFG): ${FRAMELESSHELPER_ENABLE_CFGUARD}")
|
||||
message("Build standalone demo projects: ${FRAMELESSHELPER_EXAMPLES_STANDALONE}")
|
||||
message("-----------------------------------------------------------------")
|
||||
endif()
|
||||
|
|
|
@ -22,7 +22,28 @@
|
|||
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.cpp
|
||||
../shared/settings.h
|
||||
|
@ -33,51 +54,53 @@ set(SOURCES
|
|||
)
|
||||
|
||||
if(WIN32)
|
||||
enable_language(RC)
|
||||
list(APPEND SOURCES
|
||||
../shared/example.rc
|
||||
../shared/example.manifest
|
||||
set(__rc_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.rc")
|
||||
generate_win32_rc_file(
|
||||
PATH "${__rc_path}"
|
||||
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()
|
||||
|
||||
add_executable(Dialog ${SOURCES})
|
||||
|
||||
target_link_libraries(Dialog PRIVATE
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
Qt${QT_VERSION_MAJOR}::Widgets
|
||||
FramelessHelper::Core
|
||||
FramelessHelper::Widgets
|
||||
)
|
||||
|
||||
include(../../cmake/utils.cmake)
|
||||
setup_gui_app(
|
||||
TARGETS Dialog
|
||||
BUNDLE_ID org.wangwenx190.Dialog
|
||||
BUNDLE_VERSION 1.0.0
|
||||
BUNDLE_VERSION_SHORT 1.0
|
||||
TARGETS ${PROJECT_NAME}
|
||||
BUNDLE_ID "org.wangwenx190.demo.Dialog"
|
||||
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 Dialog ${__extra_flags})
|
||||
|
||||
if(FRAMELESSHELPER_EXAMPLES_DEPLOYQT)
|
||||
set(__extra_flags)
|
||||
if(FRAMELESSHELPER_NO_INSTALL)
|
||||
set(__extra_flags NO_INSTALL)
|
||||
endif()
|
||||
deploy_qt_runtime(TARGET Dialog ${__extra_flags})
|
||||
deploy_qt_runtime(TARGET ${PROJECT_NAME} ${__extra_flags})
|
||||
endif()
|
||||
|
|
|
@ -22,7 +22,28 @@
|
|||
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.cpp
|
||||
../shared/settings.h
|
||||
|
@ -38,51 +59,53 @@ set(SOURCES
|
|||
)
|
||||
|
||||
if(WIN32)
|
||||
enable_language(RC)
|
||||
list(APPEND SOURCES
|
||||
../shared/example.rc
|
||||
../shared/example.manifest
|
||||
set(__rc_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.rc")
|
||||
generate_win32_rc_file(
|
||||
PATH "${__rc_path}"
|
||||
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()
|
||||
|
||||
add_executable(MainWindow ${SOURCES})
|
||||
|
||||
target_link_libraries(MainWindow PRIVATE
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
Qt${QT_VERSION_MAJOR}::Widgets
|
||||
FramelessHelper::Core
|
||||
FramelessHelper::Widgets
|
||||
)
|
||||
|
||||
include(../../cmake/utils.cmake)
|
||||
setup_gui_app(
|
||||
TARGETS MainWindow
|
||||
BUNDLE_ID org.wangwenx190.MainWindow
|
||||
BUNDLE_VERSION 1.0.0
|
||||
BUNDLE_VERSION_SHORT 1.0
|
||||
TARGETS ${PROJECT_NAME}
|
||||
BUNDLE_ID "org.wangwenx190.demo.MainWindow"
|
||||
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 MainWindow ${__extra_flags})
|
||||
|
||||
if(FRAMELESSHELPER_EXAMPLES_DEPLOYQT)
|
||||
set(__extra_flags)
|
||||
if(FRAMELESSHELPER_NO_INSTALL)
|
||||
set(__extra_flags NO_INSTALL)
|
||||
endif()
|
||||
deploy_qt_runtime(TARGET MainWindow ${__extra_flags})
|
||||
deploy_qt_runtime(TARGET ${PROJECT_NAME} ${__extra_flags})
|
||||
endif()
|
||||
|
|
|
@ -22,14 +22,31 @@
|
|||
SOFTWARE.
|
||||
]]
|
||||
|
||||
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS OpenGL)
|
||||
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS OpenGL)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
if(QT_VERSION_MAJOR GREATER_EQUAL 6)
|
||||
find_package(Qt6 REQUIRED COMPONENTS OpenGLWidgets)
|
||||
project(FramelessHelperDemo-OpenGLWidget 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 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()
|
||||
|
||||
set(SOURCES
|
||||
add_executable(${PROJECT_NAME})
|
||||
|
||||
target_sources(${PROJECT_NAME} PRIVATE
|
||||
../shared/log.h
|
||||
../shared/log.cpp
|
||||
../shared/settings.h
|
||||
|
@ -45,58 +62,60 @@ set(SOURCES
|
|||
)
|
||||
|
||||
if(WIN32)
|
||||
enable_language(RC)
|
||||
list(APPEND SOURCES
|
||||
../shared/example.rc
|
||||
../shared/example.manifest
|
||||
set(__rc_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.rc")
|
||||
generate_win32_rc_file(
|
||||
PATH "${__rc_path}"
|
||||
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()
|
||||
|
||||
add_executable(OpenGLWidget ${SOURCES})
|
||||
|
||||
target_link_libraries(OpenGLWidget PRIVATE
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
Qt${QT_VERSION_MAJOR}::Widgets
|
||||
Qt${QT_VERSION_MAJOR}::OpenGL
|
||||
FramelessHelper::Core
|
||||
FramelessHelper::Widgets
|
||||
)
|
||||
|
||||
if(QT_VERSION_MAJOR GREATER_EQUAL 6)
|
||||
target_link_libraries(OpenGLWidget PRIVATE
|
||||
if(TARGET Qt6::OpenGLWidgets)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
Qt6::OpenGLWidgets
|
||||
)
|
||||
endif()
|
||||
|
||||
include(../../cmake/utils.cmake)
|
||||
setup_gui_app(
|
||||
TARGETS OpenGLWidget
|
||||
BUNDLE_ID org.wangwenx190.OpenGLWidget
|
||||
BUNDLE_VERSION 1.0.0
|
||||
BUNDLE_VERSION_SHORT 1.0
|
||||
TARGETS ${PROJECT_NAME}
|
||||
BUNDLE_ID "org.wangwenx190.demo.OpenGLWidget"
|
||||
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 OpenGLWidget ${__extra_flags})
|
||||
|
||||
if(FRAMELESSHELPER_EXAMPLES_DEPLOYQT)
|
||||
set(__extra_flags)
|
||||
if(FRAMELESSHELPER_NO_INSTALL)
|
||||
set(__extra_flags NO_INSTALL)
|
||||
endif()
|
||||
deploy_qt_runtime(TARGET OpenGLWidget ${__extra_flags})
|
||||
deploy_qt_runtime(TARGET ${PROJECT_NAME} ${__extra_flags})
|
||||
endif()
|
||||
|
|
|
@ -22,10 +22,28 @@
|
|||
SOFTWARE.
|
||||
]]
|
||||
|
||||
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Quick)
|
||||
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Quick)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
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.cpp
|
||||
../shared/settings.h
|
||||
|
@ -35,20 +53,37 @@ set(SOURCES
|
|||
quicksettings.cpp
|
||||
)
|
||||
|
||||
if(QT_VERSION VERSION_LESS "6.2")
|
||||
list(APPEND SOURCES resources.qrc)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
enable_language(RC)
|
||||
list(APPEND SOURCES
|
||||
../shared/example.rc
|
||||
../shared/example.manifest
|
||||
set(__rc_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.rc")
|
||||
generate_win32_rc_file(
|
||||
PATH "${__rc_path}"
|
||||
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()
|
||||
|
||||
add_executable(Quick ${SOURCES})
|
||||
|
||||
if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
|
||||
set(QML_SOURCES
|
||||
"qml/Window.qml"
|
||||
|
@ -58,11 +93,9 @@ if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
|
|||
set_source_files_properties(${QML_SOURCES}
|
||||
PROPERTIES QT_DISCARD_FILE_CONTENTS TRUE
|
||||
)
|
||||
qt_add_qml_module(Quick
|
||||
qt_add_qml_module(${PROJECT_NAME}
|
||||
URI Demo
|
||||
VERSION 1.0
|
||||
IMPORT_PATH "${PROJECT_BINARY_DIR}/imports"
|
||||
OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/imports/Demo"
|
||||
RESOURCE_PREFIX "/"
|
||||
NO_RESOURCE_TARGET_PATH
|
||||
IMPORTS
|
||||
|
@ -72,57 +105,37 @@ if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
|
|||
QML_FILES ${QML_SOURCES}
|
||||
#ENABLE_TYPE_COMPILER
|
||||
)
|
||||
qt_add_resources(Quick resources
|
||||
qt_add_resources(${PROJECT_NAME} resources
|
||||
PREFIX
|
||||
"/"
|
||||
FILES
|
||||
"images/microsoft.svg"
|
||||
)
|
||||
else()
|
||||
target_sources(${PROJECT_NAME} PRIVATE resources.qrc)
|
||||
endif()
|
||||
|
||||
target_link_libraries(Quick PRIVATE
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
Qt${QT_VERSION_MAJOR}::Quick
|
||||
Qt${QT_VERSION_MAJOR}::QuickPrivate
|
||||
FramelessHelper::Core
|
||||
FramelessHelper::Quick
|
||||
)
|
||||
|
||||
target_compile_definitions(Quick PRIVATE
|
||||
$<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>
|
||||
setup_gui_app(
|
||||
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)
|
||||
set(__extra_flags)
|
||||
if(FRAMELESSHELPER_NO_INSTALL)
|
||||
set(__extra_flags NO_INSTALL)
|
||||
endif()
|
||||
deploy_qt_runtime(
|
||||
TARGET Quick
|
||||
TARGET ${PROJECT_NAME}
|
||||
QML_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/qml"
|
||||
${__extra_flags}
|
||||
)
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
TEMPLATE = app
|
||||
TARGET = Quick
|
||||
TARGET = FramelessHelperDemo-Quick
|
||||
QT += qml quick quickcontrols2
|
||||
win32: CONFIG -= embed_manifest_exe
|
||||
DEFINES += QUICK_USE_QMAKE
|
||||
HEADERS += \
|
||||
../shared/log.h \
|
||||
|
@ -13,6 +12,5 @@ SOURCES += \
|
|||
quicksettings.cpp \
|
||||
main.cpp
|
||||
RESOURCES += resources.qrc
|
||||
win32: RC_FILE = ../shared/example.rc
|
||||
include(../../qmake/core.pri)
|
||||
include(../../qmake/quick.pri)
|
||||
|
|
|
@ -23,6 +23,6 @@
|
|||
@echo off
|
||||
setlocal
|
||||
set QSG_RHI_BACKEND=d3d11
|
||||
"%~dp0Quick.exe"
|
||||
"%~dp0FramelessHelperDemo-Quick.exe"
|
||||
endlocal
|
||||
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
|
||||
setlocal
|
||||
set QSG_RHI_BACKEND=opengl
|
||||
"%~dp0Quick.exe"
|
||||
"%~dp0FramelessHelperDemo-Quick.exe"
|
||||
endlocal
|
||||
exit /b 0
|
||||
|
|
|
@ -23,6 +23,6 @@
|
|||
@echo off
|
||||
setlocal
|
||||
set QSG_RHI_BACKEND=vulkan
|
||||
"%~dp0Quick.exe"
|
||||
"%~dp0FramelessHelperDemo-Quick.exe"
|
||||
endlocal
|
||||
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.
|
||||
]]
|
||||
|
||||
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.cpp
|
||||
../shared/settings.h
|
||||
|
@ -33,51 +54,53 @@ set(SOURCES
|
|||
)
|
||||
|
||||
if(WIN32)
|
||||
enable_language(RC)
|
||||
list(APPEND SOURCES
|
||||
../shared/example.rc
|
||||
../shared/example.manifest
|
||||
set(__rc_path "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.rc")
|
||||
generate_win32_rc_file(
|
||||
PATH "${__rc_path}"
|
||||
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()
|
||||
|
||||
add_executable(Widget ${SOURCES})
|
||||
|
||||
target_link_libraries(Widget PRIVATE
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
Qt${QT_VERSION_MAJOR}::Widgets
|
||||
FramelessHelper::Core
|
||||
FramelessHelper::Widgets
|
||||
)
|
||||
|
||||
include(../../cmake/utils.cmake)
|
||||
setup_gui_app(
|
||||
TARGETS Widget
|
||||
BUNDLE_ID org.wangwenx190.Widget
|
||||
BUNDLE_VERSION 1.0.0
|
||||
BUNDLE_VERSION_SHORT 1.0
|
||||
TARGETS ${PROJECT_NAME}
|
||||
BUNDLE_ID "org.wangwenx190.demo.Widget"
|
||||
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 Widget ${__extra_flags})
|
||||
|
||||
if(FRAMELESSHELPER_EXAMPLES_DEPLOYQT)
|
||||
set(__extra_flags)
|
||||
if(FRAMELESSHELPER_NO_INSTALL)
|
||||
set(__extra_flags NO_INSTALL)
|
||||
endif()
|
||||
deploy_qt_runtime(TARGET Widget ${__extra_flags})
|
||||
deploy_qt_runtime(TARGET ${PROJECT_NAME} ${__extra_flags})
|
||||
endif()
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
TEMPLATE = app
|
||||
TARGET = Widget
|
||||
TARGET = FramelessHelperDemo-Widget
|
||||
QT += widgets
|
||||
win32: CONFIG -= embed_manifest_exe
|
||||
DEFINES += WIDGET_USE_QMAKE
|
||||
HEADERS += \
|
||||
../shared/log.h \
|
||||
../shared/settings.h \
|
||||
|
@ -12,6 +10,5 @@ SOURCES += \
|
|||
../shared/settings.cpp \
|
||||
widget.cpp \
|
||||
main.cpp
|
||||
win32: RC_FILE = ../shared/example.rc
|
||||
include(../../qmake/core.pri)
|
||||
include(../../qmake/widgets.pri)
|
||||
|
|
|
@ -193,7 +193,9 @@ QT_END_NAMESPACE
|
|||
#endif
|
||||
|
||||
#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();
|
||||
#endif // FRAMELESSHELPER_CORE_NO_BUNDLE_RESOURCE
|
||||
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
SOFTWARE.
|
||||
]]
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
if(FRAMELESSHELPER_NO_PRIVATE)
|
||||
# Qt X11Extras is only available in Qt5.
|
||||
|
@ -136,7 +138,7 @@ elseif(UNIX)
|
|||
endif()
|
||||
|
||||
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(
|
||||
PATH "${__rc_path}"
|
||||
VERSION "${PROJECT_VERSION}"
|
||||
|
@ -155,15 +157,12 @@ set(ALL_SOURCES ${PUBLIC_HEADERS} ${PRIVATE_HEADERS} ${SOURCES})
|
|||
|
||||
if(FRAMELESSHELPER_BUILD_STATIC)
|
||||
set(SUB_MOD_LIB_TYPE "STATIC")
|
||||
set(SUB_MOD_LIB_DIR "lib")
|
||||
add_library(${SUB_PROJ_NAME} STATIC ${ALL_SOURCES})
|
||||
add_library(${SUB_PROJ_NAME}_static ALIAS ${SUB_PROJ_NAME})
|
||||
set(SUB_MOD_LIB_DIR "${CMAKE_INSTALL_LIBDIR}")
|
||||
else()
|
||||
set(SUB_MOD_LIB_TYPE "SHARED")
|
||||
set(SUB_MOD_LIB_DIR "bin")
|
||||
add_library(${SUB_PROJ_NAME} SHARED ${ALL_SOURCES})
|
||||
add_library(${SUB_PROJ_NAME}_shared ALIAS ${SUB_PROJ_NAME})
|
||||
set(SUB_MOD_LIB_DIR "${CMAKE_INSTALL_BINDIR}")
|
||||
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_MOD_NAME} ALIAS ${SUB_PROJ_NAME})
|
||||
|
||||
|
@ -172,6 +171,8 @@ set_target_properties(${SUB_PROJ_NAME} PROPERTIES
|
|||
SOVERSION "${PROJECT_VERSION_MAJOR}"
|
||||
)
|
||||
|
||||
set(SUB_MOD_TARGETS ${SUB_PROJ_NAME})
|
||||
|
||||
set(__prefix "")
|
||||
if(NOT WIN32)
|
||||
set(__prefix "lib")
|
||||
|
@ -212,11 +213,14 @@ if(NOT FRAMELESSHELPER_NO_BUNDLE_RESOURCE)
|
|||
"resources/images/noise.png"
|
||||
OUTPUT_TARGETS __qrc_targets
|
||||
)
|
||||
if(FRAMELESSHELPER_BUILD_STATIC AND __qrc_targets)
|
||||
if(__qrc_targets)
|
||||
foreach(__target ${__qrc_targets})
|
||||
target_sources(${SUB_PROJ_NAME} PRIVATE
|
||||
$<TARGET_OBJECTS:${__target}>
|
||||
)
|
||||
list(APPEND SUB_MOD_TARGETS ${__target})
|
||||
if(FRAMELESSHELPER_BUILD_STATIC)
|
||||
target_sources(${SUB_PROJ_NAME} PRIVATE
|
||||
$<TARGET_OBJECTS:${__target}>
|
||||
)
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
else()
|
||||
|
@ -340,7 +344,6 @@ if(FRAMELESSHELPER_ENABLE_CFGUARD)
|
|||
endif()
|
||||
setup_compile_params(TARGETS ${SUB_PROJ_NAME} ${__extra_flags})
|
||||
if(NOT FRAMELESSHELPER_NO_INSTALL)
|
||||
include(GNUInstallDirs)
|
||||
set(__cmake_dir "${CMAKE_CURRENT_BINARY_DIR}/cmake")
|
||||
set(__config_file "${__cmake_dir}/${SUB_PROJ_NAME}Config.cmake")
|
||||
configure_file(../../FramelessHelperModuleConfig.cmake.in ${__config_file} @ONLY)
|
||||
|
@ -360,7 +363,7 @@ if(NOT FRAMELESSHELPER_NO_INSTALL)
|
|||
DESTINATION "${__inc_dir}/private"
|
||||
)
|
||||
install(
|
||||
TARGETS ${SUB_PROJ_NAME}
|
||||
TARGETS ${SUB_MOD_TARGETS}
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
SOFTWARE.
|
||||
]]
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
find_package(QT NAMES Qt6 Qt5 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)
|
||||
set(__rc_path "${CMAKE_CURRENT_BINARY_DIR}/framelesshelperquick.rc")
|
||||
set(__rc_path "${CMAKE_CURRENT_BINARY_DIR}/${SUB_PROJ_NAME}.rc")
|
||||
generate_win32_rc_file(
|
||||
PATH "${__rc_path}"
|
||||
VERSION "${PROJECT_VERSION}"
|
||||
|
@ -101,15 +103,12 @@ set(ALL_SOURCES ${PUBLIC_HEADERS} ${PRIVATE_HEADERS} ${SOURCES})
|
|||
|
||||
if(FRAMELESSHELPER_BUILD_STATIC)
|
||||
set(SUB_MOD_LIB_TYPE "STATIC")
|
||||
set(SUB_MOD_LIB_DIR "lib")
|
||||
add_library(${SUB_PROJ_NAME} STATIC ${ALL_SOURCES})
|
||||
add_library(${SUB_PROJ_NAME}_static ALIAS ${SUB_PROJ_NAME})
|
||||
set(SUB_MOD_LIB_DIR "${CMAKE_INSTALL_LIBDIR}")
|
||||
else()
|
||||
set(SUB_MOD_LIB_TYPE "SHARED")
|
||||
set(SUB_MOD_LIB_DIR "bin")
|
||||
add_library(${SUB_PROJ_NAME} SHARED ${ALL_SOURCES})
|
||||
add_library(${SUB_PROJ_NAME}_shared ALIAS ${SUB_PROJ_NAME})
|
||||
set(SUB_MOD_LIB_DIR "${CMAKE_INSTALL_BINDIR}")
|
||||
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_MOD_NAME} ALIAS ${SUB_PROJ_NAME})
|
||||
|
||||
|
@ -118,6 +117,8 @@ set_target_properties(${SUB_PROJ_NAME} PROPERTIES
|
|||
SOVERSION "${PROJECT_VERSION_MAJOR}"
|
||||
)
|
||||
|
||||
set(SUB_MOD_TARGETS ${SUB_PROJ_NAME})
|
||||
|
||||
set(__prefix "")
|
||||
if(NOT WIN32)
|
||||
set(__prefix "lib")
|
||||
|
@ -162,17 +163,20 @@ if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
|
|||
OUTPUT_DIRECTORY "${__import_dir}"
|
||||
RESOURCE_PREFIX "/"
|
||||
#NO_RESOURCE_TARGET_PATH # Can't be used for non-executables.
|
||||
OUTPUT_TARGETS __qrc_targets
|
||||
OUTPUT_TARGETS __qml_targets
|
||||
IMPORTS
|
||||
QtQml/auto
|
||||
QtQuick/auto
|
||||
QtQuick.Controls.Basic/auto
|
||||
)
|
||||
if(FRAMELESSHELPER_BUILD_STATIC AND __qrc_targets)
|
||||
foreach(__target ${__qrc_targets})
|
||||
target_sources(${SUB_PROJ_NAME} PRIVATE
|
||||
$<TARGET_OBJECTS:${__target}>
|
||||
)
|
||||
if(__qml_targets)
|
||||
foreach(__target ${__qml_targets})
|
||||
list(APPEND SUB_MOD_TARGETS ${__target})
|
||||
if(FRAMELESSHELPER_BUILD_STATIC)
|
||||
target_sources(${SUB_PROJ_NAME} PRIVATE
|
||||
$<TARGET_OBJECTS:${__target}>
|
||||
)
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
if(NOT FRAMELESSHELPER_NO_INSTALL)
|
||||
|
@ -295,7 +299,6 @@ if(FRAMELESSHELPER_ENABLE_CFGUARD)
|
|||
endif()
|
||||
setup_compile_params(TARGETS ${SUB_PROJ_NAME} ${__extra_flags})
|
||||
if(NOT FRAMELESSHELPER_NO_INSTALL)
|
||||
include(GNUInstallDirs)
|
||||
set(__cmake_dir "${CMAKE_CURRENT_BINARY_DIR}/cmake")
|
||||
set(__config_file "${__cmake_dir}/${SUB_PROJ_NAME}Config.cmake")
|
||||
configure_file(../../FramelessHelperModuleConfig.cmake.in ${__config_file} @ONLY)
|
||||
|
@ -315,7 +318,7 @@ if(NOT FRAMELESSHELPER_NO_INSTALL)
|
|||
DESTINATION "${__inc_dir}/private"
|
||||
)
|
||||
install(
|
||||
TARGETS ${SUB_PROJ_NAME}
|
||||
TARGETS ${SUB_MOD_TARGETS}
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
SOFTWARE.
|
||||
]]
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
set(SUB_MOD_NAME Widgets)
|
||||
set(SUB_PROJ_NAME ${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)
|
||||
set(__rc_path "${CMAKE_CURRENT_BINARY_DIR}/framelesshelperwidgets.rc")
|
||||
set(__rc_path "${CMAKE_CURRENT_BINARY_DIR}/${SUB_PROJ_NAME}.rc")
|
||||
generate_win32_rc_file(
|
||||
PATH "${__rc_path}"
|
||||
VERSION "${PROJECT_VERSION}"
|
||||
|
@ -89,15 +91,12 @@ set(ALL_SOURCES ${PUBLIC_HEADERS} ${PRIVATE_HEADERS} ${SOURCES})
|
|||
|
||||
if(FRAMELESSHELPER_BUILD_STATIC)
|
||||
set(SUB_MOD_LIB_TYPE "STATIC")
|
||||
set(SUB_MOD_LIB_DIR "lib")
|
||||
add_library(${SUB_PROJ_NAME} STATIC ${ALL_SOURCES})
|
||||
add_library(${SUB_PROJ_NAME}_static ALIAS ${SUB_PROJ_NAME})
|
||||
set(SUB_MOD_LIB_DIR "${CMAKE_INSTALL_LIBDIR}")
|
||||
else()
|
||||
set(SUB_MOD_LIB_TYPE "SHARED")
|
||||
set(SUB_MOD_LIB_DIR "bin")
|
||||
add_library(${SUB_PROJ_NAME} SHARED ${ALL_SOURCES})
|
||||
add_library(${SUB_PROJ_NAME}_shared ALIAS ${SUB_PROJ_NAME})
|
||||
set(SUB_MOD_LIB_DIR "${CMAKE_INSTALL_BINDIR}")
|
||||
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_MOD_NAME} ALIAS ${SUB_PROJ_NAME})
|
||||
|
||||
|
@ -216,7 +215,6 @@ if(FRAMELESSHELPER_ENABLE_CFGUARD)
|
|||
endif()
|
||||
setup_compile_params(TARGETS ${SUB_PROJ_NAME} ${__extra_flags})
|
||||
if(NOT FRAMELESSHELPER_NO_INSTALL)
|
||||
include(GNUInstallDirs)
|
||||
set(__cmake_dir "${CMAKE_CURRENT_BINARY_DIR}/cmake")
|
||||
set(__config_file "${__cmake_dir}/${SUB_PROJ_NAME}Config.cmake")
|
||||
configure_file(../../FramelessHelperModuleConfig.cmake.in ${__config_file} @ONLY)
|
||||
|
|
Loading…
Reference in New Issue