Compare commits
163 Commits
v1.4.0
...
LabMCT_KDD
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e310df8e16 | ||
|
|
f98ff4794f | ||
|
|
93b664414b | ||
|
|
866788674f | ||
|
|
93e60a743e | ||
|
|
328a14b46a | ||
|
|
cf40cadce8 | ||
|
|
0adb130d4b | ||
|
|
f1e19ec59c | ||
|
|
c0c8399bd7 | ||
|
|
30185d5b2a | ||
|
|
9990300006 | ||
|
|
573e82e9eb | ||
|
|
07a135a10a | ||
|
|
fc172b66f8 | ||
|
|
2be0d5d1d9 | ||
|
|
3007b46892 | ||
|
|
1419db80a2 | ||
|
|
5376ceec7e | ||
|
|
d3a3e7502e | ||
|
|
50c3f9b899 | ||
|
|
8845fae147 | ||
|
|
0c291116b9 | ||
|
|
f0fa0281bf | ||
|
|
313a17a96c | ||
|
|
9e2b1d3e44 | ||
|
|
a82a283b4b | ||
|
|
b6770217bb | ||
|
|
c8b22e7ea5 | ||
|
|
8dcaaaf853 | ||
|
|
32ecdb5b37 | ||
|
|
099c7eafc8 | ||
|
|
f872d6fbc1 | ||
|
|
3e21787efb | ||
|
|
58fcd8d04d | ||
|
|
95d5146fce | ||
|
|
ea6adafc13 | ||
|
|
f65cb2c0ce | ||
|
|
fbde2bd202 | ||
|
|
0cee15c0d3 | ||
|
|
4b56a336a0 | ||
|
|
56bec0db04 | ||
|
|
dd979d191f | ||
|
|
a5f37f851b | ||
|
|
052d8680dc | ||
|
|
21e8aae823 | ||
|
|
0e866079da | ||
|
|
a8bd6ba840 | ||
|
|
96aefdd3c7 | ||
|
|
753fe57b30 | ||
|
|
9587c1b1e3 | ||
|
|
bc1b296440 | ||
|
|
5626b0120d | ||
|
|
e5d2f5f857 | ||
|
|
3eb52c46b1 | ||
|
|
aaa64bf769 | ||
|
|
b7b1d6d4e9 | ||
|
|
a90417de55 | ||
|
|
73f08df224 | ||
|
|
db9babbdca | ||
|
|
463dd2261e | ||
|
|
4dd66969af | ||
|
|
2c98003219 | ||
|
|
dd853a8f72 | ||
|
|
88d5e6b29d | ||
|
|
71e5d8cc31 | ||
|
|
15b3843172 | ||
|
|
3cffe3b3be | ||
|
|
9dd87b7777 | ||
|
|
b057cf905b | ||
|
|
d7943d30d8 | ||
|
|
1826d68841 | ||
|
|
dc1e5103e2 | ||
|
|
33c5647e57 | ||
|
|
f6f772edc5 | ||
|
|
7e460d8f34 | ||
|
|
7af2095f2f | ||
|
|
8307598d5d | ||
|
|
13fe276dbe | ||
|
|
13a5a472cd | ||
|
|
b5c11ce199 | ||
|
|
83c8c22736 | ||
|
|
c8ca7bf9e1 | ||
|
|
0184deb54d | ||
|
|
389042f3cc | ||
|
|
736358a71f | ||
|
|
bffe671679 | ||
|
|
fafc0b7946 | ||
|
|
3574feea98 | ||
|
|
25b48920bb | ||
|
|
e22ca48674 | ||
|
|
3b9773f872 | ||
|
|
3e3cf10fff | ||
|
|
421b401b4f | ||
|
|
a0c97e3388 | ||
|
|
d2a3968897 | ||
|
|
4ea7953a76 | ||
|
|
0cc0972eea | ||
|
|
77b5d1630d | ||
|
|
f962989484 | ||
|
|
1ccdf445eb | ||
|
|
3fb8861eee | ||
|
|
78381badd1 | ||
|
|
8b1a9f2a41 | ||
|
|
9ee52a0011 | ||
|
|
240169ce23 | ||
|
|
97a431f367 | ||
|
|
3769ad9615 | ||
|
|
8332ab3ddc | ||
|
|
3b4a2f134f | ||
|
|
5899e3716c | ||
|
|
25bc05ae40 | ||
|
|
f42629a6e5 | ||
|
|
192cb2daaa | ||
|
|
63cc87af2d | ||
|
|
3e1ea3ec67 | ||
|
|
c27a09c13c | ||
|
|
b3486ebca8 | ||
|
|
6a7230e546 | ||
|
|
ca173de71d | ||
|
|
5732e8ed14 | ||
|
|
5cc7a0864b | ||
|
|
e4671f175c | ||
|
|
17fd6b2454 | ||
|
|
7ed3945d58 | ||
|
|
35de0a2fef | ||
|
|
8a0e475f21 | ||
|
|
63d14f2345 | ||
|
|
e91849759c | ||
|
|
ee3a3af408 | ||
|
|
c470c89fc6 | ||
|
|
73cfa64ebb | ||
|
|
ffe5d5f6cb | ||
|
|
aff4450b42 | ||
|
|
d40580c550 | ||
|
|
8e19b81eb9 | ||
|
|
d5191696e1 | ||
|
|
1d01466181 | ||
|
|
1cead0e2b8 | ||
|
|
aff4d426b8 | ||
|
|
4597cdeda8 | ||
|
|
2e7f0bf51d | ||
|
|
fa551b84f6 | ||
|
|
ce105212ab | ||
|
|
31d4b62181 | ||
|
|
7ec542a211 | ||
|
|
e615d1c618 | ||
|
|
ce349d0fcd | ||
|
|
c86813b1cb | ||
|
|
1fe651aaa7 | ||
|
|
ba7809236b | ||
|
|
84814b3c59 | ||
|
|
73ca6e6671 | ||
|
|
a26759f340 | ||
|
|
200ef12b4a | ||
|
|
990fac9a0a | ||
|
|
31ec4cdecb | ||
|
|
1d968bd902 | ||
|
|
69a632cfc2 | ||
|
|
e32aaccaac | ||
|
|
3302401a36 | ||
|
|
c0c1383254 | ||
|
|
13a7d27046 |
@@ -1,4 +1,4 @@
|
|||||||
[codespell]
|
[codespell]
|
||||||
skip = ./build-*,.git
|
skip = ./build-*,.git,*.svg,rc_assets.py
|
||||||
interactive = 3
|
interactive = 3
|
||||||
ignore-words-list = overlay,overlayed
|
ignore-words-list = overlay,overlayed
|
||||||
|
|||||||
2
.krazy
2
.krazy
@@ -19,5 +19,5 @@ SKIP /KDDockWidgetsConfig.cmake.in
|
|||||||
#skip more files
|
#skip more files
|
||||||
SKIP CMakePresets.json
|
SKIP CMakePresets.json
|
||||||
#skip the borrowed code in the cmake subdir
|
#skip the borrowed code in the cmake subdir
|
||||||
SKIP /cmake/Qt5Portability.cmake|/cmake/ECM/|/cmake/InstallLocation.cmake
|
SKIP /cmake/InstallLocation.cmake|/cmake/ECM/|/cmake/KDAB/
|
||||||
|
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ Upstream-Contact: <info@kdab.com>
|
|||||||
Source: https://www.github.com/KDAB/KDDockWidgets
|
Source: https://www.github.com/KDAB/KDDockWidgets
|
||||||
|
|
||||||
Files: *.qrc *.json *.xml *.html src/fwd_headers/*
|
Files: *.qrc *.json *.xml *.html src/fwd_headers/*
|
||||||
Copyright: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
Copyright: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
License: GPL-2.0-only OR GPL-3.0-only
|
License: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
#artwork
|
#artwork
|
||||||
Files: screencap.gif images/* src/img/* docs/api/*.png examples/dockwidgets/assets/*.png src/img/classic_indicators/*.png
|
Files: screencap.gif images/* src/img/* docs/api/*.png examples/dockwidgets/assets/*.png src/img/classic_indicators/*.png
|
||||||
Copyright: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
Copyright: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
License: GPL-2.0-only OR GPL-3.0-only
|
License: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
#3rdparty
|
#3rdparty
|
||||||
|
|||||||
66
.travis.yml
66
.travis.yml
@@ -1,66 +0,0 @@
|
|||||||
env:
|
|
||||||
global:
|
|
||||||
- secure: "NlWO/NTPlOU6cowOMuPOvjAprXVwIjmpHHf9CoMR71E2c/eBFFKIHj10kXuyFwz2KihHAIExmo9OlGtGniNWobvIrVrabO3dsOSb6UGbPAQkzQiyQLKsDNQAZx3nMuWEKBtMsVRee6rd7/2uGTY4WB5Ot3VhrUYcN1FoRgQQ9gk="
|
|
||||||
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: linux
|
|
||||||
dist: bionic
|
|
||||||
- os: osx
|
|
||||||
osx_image: xcode11.5
|
|
||||||
env:
|
|
||||||
- QT_SELECT=qt5
|
|
||||||
- CMAKE_PREFIX_PATH=/usr/local/opt/qt
|
|
||||||
|
|
||||||
language: cpp
|
|
||||||
compiler:
|
|
||||||
- gcc
|
|
||||||
- clang
|
|
||||||
|
|
||||||
script:
|
|
||||||
- mkdir build
|
|
||||||
- cd build
|
|
||||||
- cmake -DCMAKE_BUILD_TYPE=Release -DKDDockWidgets_TESTS=True -KDDockWidgets_EXAMPLES=True -DKDDockWidgets_DEVELOPER_MODE=True ..
|
|
||||||
- make
|
|
||||||
- make test
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
email:
|
|
||||||
recipients:
|
|
||||||
- allen.winter@kdab.com
|
|
||||||
- sergio.martins@kdab.com
|
|
||||||
on_success: never
|
|
||||||
on_failure: always
|
|
||||||
|
|
||||||
dist: bionic
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
update: true
|
|
||||||
packages:
|
|
||||||
- qt5-default
|
|
||||||
- qtbase5-dev
|
|
||||||
- qtbase5-dev-tools
|
|
||||||
- qtbase5-private-dev
|
|
||||||
- qttools5-dev
|
|
||||||
- qttools5-dev-tools
|
|
||||||
- qtdeclarative5-dev
|
|
||||||
- qtdeclarative5-dev-tools
|
|
||||||
- libqt5xmlpatterns5-dev
|
|
||||||
- libqt5xmlpatterns5
|
|
||||||
- qtxmlpatterns5-dev-tools
|
|
||||||
- libqt5x11extras5-dev
|
|
||||||
homebrew:
|
|
||||||
update: true
|
|
||||||
packages:
|
|
||||||
- qt5
|
|
||||||
coverity_scan:
|
|
||||||
project:
|
|
||||||
name: KDAB/KDDockWidgets
|
|
||||||
notification_email: allen.winter@kdab.com
|
|
||||||
build_command_prepend: cd build && cmake ..
|
|
||||||
build_command: make
|
|
||||||
branch_pattern: coverity_scan
|
|
||||||
635
.uncrustify
635
.uncrustify
@@ -1,635 +0,0 @@
|
|||||||
align_asm_colon = false
|
|
||||||
align_assign_span = 0
|
|
||||||
align_assign_thresh = 0
|
|
||||||
align_enum_equ_span = 0
|
|
||||||
align_enum_equ_thresh = 0
|
|
||||||
align_func_params = false
|
|
||||||
align_func_params_gap = 0
|
|
||||||
align_func_params_span = 0
|
|
||||||
align_func_params_thresh = 0
|
|
||||||
align_func_proto_gap = 0
|
|
||||||
align_func_proto_span = 0
|
|
||||||
align_keep_extra_space = false
|
|
||||||
align_keep_tabs = false
|
|
||||||
align_left_shift = true
|
|
||||||
align_mix_var_proto = false
|
|
||||||
align_nl_cont = false
|
|
||||||
align_number_right = false
|
|
||||||
align_oc_decl_colon = false
|
|
||||||
align_oc_msg_colon_first = false
|
|
||||||
align_oc_msg_colon_span = 0
|
|
||||||
align_oc_msg_spec_span = 0
|
|
||||||
align_on_operator = false
|
|
||||||
align_on_tabstop = false
|
|
||||||
align_pp_define_gap = 0
|
|
||||||
align_pp_define_span = 0
|
|
||||||
align_pp_define_together = false
|
|
||||||
align_right_cmt_at_col = 0
|
|
||||||
align_right_cmt_gap = 0
|
|
||||||
align_right_cmt_mix = false
|
|
||||||
align_right_cmt_span = 0
|
|
||||||
align_same_func_call_params = false
|
|
||||||
align_single_line_brace = false
|
|
||||||
align_single_line_brace_gap = 0
|
|
||||||
align_single_line_func = false
|
|
||||||
align_struct_init_span = 0
|
|
||||||
align_typedef_amp_style = 0
|
|
||||||
align_typedef_func = 0
|
|
||||||
align_typedef_gap = 0
|
|
||||||
align_typedef_span = 0
|
|
||||||
align_typedef_star_style = 0
|
|
||||||
align_var_class_gap = 0
|
|
||||||
align_var_class_span = 0
|
|
||||||
align_var_class_thresh = 0
|
|
||||||
align_var_def_amp_style = 0
|
|
||||||
align_var_def_attribute = false
|
|
||||||
align_var_def_colon = false
|
|
||||||
align_var_def_colon_gap = 0
|
|
||||||
align_var_def_gap = 0
|
|
||||||
align_var_def_inline = false
|
|
||||||
align_var_def_span = 0
|
|
||||||
align_var_def_star_style = 0
|
|
||||||
align_var_def_thresh = 0
|
|
||||||
align_var_struct_gap = 0
|
|
||||||
align_var_struct_span = 0
|
|
||||||
align_var_struct_thresh = 0
|
|
||||||
align_with_tabs = false
|
|
||||||
cmt_c_group = false
|
|
||||||
cmt_c_nl_end = false
|
|
||||||
cmt_c_nl_start = false
|
|
||||||
cmt_convert_tab_to_spaces = false
|
|
||||||
cmt_cpp_group = false
|
|
||||||
cmt_cpp_nl_end = false
|
|
||||||
cmt_cpp_nl_start = false
|
|
||||||
cmt_cpp_to_c = false
|
|
||||||
cmt_indent_multi = false
|
|
||||||
cmt_insert_before_ctor_dtor = false
|
|
||||||
cmt_insert_before_inlines = true
|
|
||||||
cmt_insert_before_preproc = false
|
|
||||||
cmt_insert_class_header = ""
|
|
||||||
cmt_insert_file_footer = ""
|
|
||||||
cmt_insert_file_header = ""
|
|
||||||
cmt_insert_func_header = ""
|
|
||||||
cmt_insert_oc_msg_header = ""
|
|
||||||
cmt_multi_check_last = true
|
|
||||||
cmt_multi_first_len_minimum = 4
|
|
||||||
cmt_reflow_mode = 0
|
|
||||||
cmt_sp_after_star_cont = 0
|
|
||||||
cmt_sp_before_star_cont = 0
|
|
||||||
cmt_star_cont = false
|
|
||||||
cmt_width = 0
|
|
||||||
code_width = 0
|
|
||||||
disable_processing_cmt = ""
|
|
||||||
eat_blanks_after_open_brace = false
|
|
||||||
eat_blanks_before_close_brace = false
|
|
||||||
enable_digraphs = false
|
|
||||||
enable_processing_cmt = ""
|
|
||||||
force_tab_after_define = false
|
|
||||||
include_category_0 = ""
|
|
||||||
include_category_1 = ""
|
|
||||||
include_category_2 = ""
|
|
||||||
indent_access_spec = -4
|
|
||||||
indent_access_spec_body = false
|
|
||||||
indent_align_assign = true
|
|
||||||
indent_align_paren = true
|
|
||||||
indent_align_string = false
|
|
||||||
indent_bool_paren = false
|
|
||||||
indent_brace = 0
|
|
||||||
indent_brace_parent = false
|
|
||||||
indent_braces = false
|
|
||||||
indent_braces_no_class = false
|
|
||||||
indent_braces_no_func = false
|
|
||||||
indent_braces_no_struct = false
|
|
||||||
indent_case_brace = 0
|
|
||||||
indent_case_shift = 0
|
|
||||||
indent_class_colon = false
|
|
||||||
indent_class_on_colon = false
|
|
||||||
indent_class = true
|
|
||||||
indent_cmt_with_tabs = false
|
|
||||||
indent_col1_comment = false
|
|
||||||
indent_columns = 4
|
|
||||||
indent_comma_paren = false
|
|
||||||
indent_constr_colon = false
|
|
||||||
indent_continue = 0
|
|
||||||
indent_cpp_lambda_body = false
|
|
||||||
indent_cpp_lambda_only_once = true
|
|
||||||
indent_ctor_init = 0
|
|
||||||
indent_ctor_init_leading = 2
|
|
||||||
indent_else_if = false
|
|
||||||
indent_extern = false
|
|
||||||
indent_first_bool_expr = false
|
|
||||||
indent_first_for_expr = false
|
|
||||||
indent_func_call_param = false
|
|
||||||
indent_func_class_param = false
|
|
||||||
indent_func_const = 0
|
|
||||||
indent_func_ctor_var_param = false
|
|
||||||
indent_func_def_force_col1 = false
|
|
||||||
indent_func_def_param = false
|
|
||||||
indent_func_param_double = false
|
|
||||||
indent_func_proto_param = false
|
|
||||||
indent_func_throw = 0
|
|
||||||
indent_ignore_asm_block = false
|
|
||||||
indent_label = 1
|
|
||||||
indent_member = 0
|
|
||||||
indent_member_single = false
|
|
||||||
indent_min_vbrace_open = 0
|
|
||||||
indent_namespace = false
|
|
||||||
indent_namespace_level = 0
|
|
||||||
indent_namespace_limit = 0
|
|
||||||
indent_namespace_single_indent = false
|
|
||||||
indent_oc_block = false
|
|
||||||
indent_oc_block_msg = 0
|
|
||||||
indent_oc_block_msg_from_brace = false
|
|
||||||
indent_oc_block_msg_from_caret = false
|
|
||||||
indent_oc_block_msg_from_colon = false
|
|
||||||
indent_oc_block_msg_from_keyword = false
|
|
||||||
indent_oc_block_msg_xcode_style = false
|
|
||||||
indent_oc_msg_colon = 0
|
|
||||||
indent_oc_msg_prioritize_first_colon = true
|
|
||||||
indent_off_after_return_new = false
|
|
||||||
indent_param = 0
|
|
||||||
indent_paren_after_func_call = false
|
|
||||||
indent_paren_after_func_decl = false
|
|
||||||
indent_paren_after_func_def = false
|
|
||||||
indent_paren_close = 0
|
|
||||||
indent_paren_nl = false
|
|
||||||
indent_paren_open_brace = false
|
|
||||||
indent_preserve_sql = false
|
|
||||||
indent_relative_single_line_comments = false
|
|
||||||
indent_semicolon_for_paren = false
|
|
||||||
indent_shift = false
|
|
||||||
indent_single_after_return = false
|
|
||||||
indent_single_newlines = false
|
|
||||||
indent_sing_line_comments = 0
|
|
||||||
indent_square_nl = false
|
|
||||||
indent_switch_case = 0
|
|
||||||
indent_switch_pp = true
|
|
||||||
indent_template_param = false
|
|
||||||
indent_ternary_operator = 2
|
|
||||||
indent_token_after_brace = true
|
|
||||||
indent_var_def_blk = 0
|
|
||||||
indent_var_def_cont = false
|
|
||||||
indent_vbrace_open_on_tabstop = false
|
|
||||||
indent_with_tabs = 0
|
|
||||||
indent_xml_string = 0
|
|
||||||
input_tab_size = 4
|
|
||||||
ls_code_width = false
|
|
||||||
ls_for_split_full = false
|
|
||||||
ls_func_split_full = false
|
|
||||||
mod_add_long_class_closebrace_comment = 0
|
|
||||||
mod_add_long_function_closebrace_comment = 0
|
|
||||||
mod_add_long_ifdef_else_comment = 0
|
|
||||||
mod_add_long_ifdef_endif_comment = 0
|
|
||||||
mod_add_long_namespace_closebrace_comment = 0
|
|
||||||
mod_add_long_switch_closebrace_comment = 0
|
|
||||||
mod_case_brace = ignore
|
|
||||||
mod_full_brace_do = ignore
|
|
||||||
mod_full_brace_for = ignore
|
|
||||||
mod_full_brace_function = ignore
|
|
||||||
mod_full_brace_if_chain = false
|
|
||||||
mod_full_brace_if_chain_only = false
|
|
||||||
mod_full_brace_if = ignore
|
|
||||||
mod_full_brace_nl = 0
|
|
||||||
mod_full_brace_nl_block_rem_mlcond = false
|
|
||||||
mod_full_brace_using = ignore
|
|
||||||
mod_full_brace_while = ignore
|
|
||||||
mod_full_paren_if_bool = false
|
|
||||||
mod_move_case_break = false
|
|
||||||
mod_paren_on_return = ignore
|
|
||||||
mod_pawn_semicolon = false
|
|
||||||
mod_remove_empty_return = false
|
|
||||||
mod_remove_extra_semicolon = false
|
|
||||||
mod_sort_import = false
|
|
||||||
mod_sort_include = false
|
|
||||||
mod_sort_oc_properties = false
|
|
||||||
mod_sort_oc_property_class_weight = 0
|
|
||||||
mod_sort_oc_property_getter_weight = 0
|
|
||||||
mod_sort_oc_property_nullability_weight = 0
|
|
||||||
mod_sort_oc_property_readwrite_weight = 0
|
|
||||||
mod_sort_oc_property_reference_weight = 0
|
|
||||||
mod_sort_oc_property_setter_weight = 0
|
|
||||||
mod_sort_oc_property_thread_safe_weight = 0
|
|
||||||
mod_sort_using = false
|
|
||||||
newlines = auto
|
|
||||||
nl_after_access_spec = 0
|
|
||||||
nl_after_annotation = ignore
|
|
||||||
nl_after_brace_close = false
|
|
||||||
nl_after_brace_open_cmt = false
|
|
||||||
nl_after_brace_open = false
|
|
||||||
nl_after_case = false
|
|
||||||
nl_after_class = 0
|
|
||||||
nl_after_do = ignore
|
|
||||||
nl_after_for = ignore
|
|
||||||
nl_after_func_body = 0
|
|
||||||
nl_after_func_body_class = 0
|
|
||||||
nl_after_func_body_one_liner = 0
|
|
||||||
nl_after_func_class_proto = 0
|
|
||||||
nl_after_func_class_proto_group = 0
|
|
||||||
nl_after_func_proto = 0
|
|
||||||
nl_after_func_proto_group = 0
|
|
||||||
nl_after_if = ignore
|
|
||||||
nl_after_label_colon = false
|
|
||||||
nl_after_multiline_comment = false
|
|
||||||
nl_after_return = false
|
|
||||||
nl_after_semicolon = false
|
|
||||||
nl_after_square_assign = ignore
|
|
||||||
nl_after_struct = 0
|
|
||||||
nl_after_switch = ignore
|
|
||||||
nl_after_synchronized = ignore
|
|
||||||
nl_after_try_catch_finally = 0
|
|
||||||
nl_after_vbrace_close = false
|
|
||||||
nl_after_vbrace_open_empty = false
|
|
||||||
nl_after_vbrace_open = false
|
|
||||||
nl_after_while = ignore
|
|
||||||
nl_around_cs_property = 0
|
|
||||||
nl_assign_brace = ignore
|
|
||||||
nl_assign_leave_one_liners = false
|
|
||||||
nl_assign_square = ignore
|
|
||||||
nl_before_access_spec = 0
|
|
||||||
nl_before_block_comment = 0
|
|
||||||
nl_before_case = false
|
|
||||||
nl_before_c_comment = 0
|
|
||||||
nl_before_class = 0
|
|
||||||
nl_before_cpp_comment = 0
|
|
||||||
nl_before_do = ignore
|
|
||||||
nl_before_for = ignore
|
|
||||||
nl_before_func_body_def = 0
|
|
||||||
nl_before_func_body_proto = 0
|
|
||||||
nl_before_func_class_def = 0
|
|
||||||
nl_before_func_class_proto = 0
|
|
||||||
nl_before_if_closing_paren = ignore
|
|
||||||
nl_before_if = ignore
|
|
||||||
nl_before_return = false
|
|
||||||
nl_before_switch = ignore
|
|
||||||
nl_before_synchronized = ignore
|
|
||||||
nl_before_throw = ignore
|
|
||||||
nl_before_while = ignore
|
|
||||||
nl_between_annotation = ignore
|
|
||||||
nl_between_get_set = 0
|
|
||||||
nl_brace_brace = ignore
|
|
||||||
nl_brace_catch = ignore
|
|
||||||
nl_brace_else = ignore
|
|
||||||
nl_brace_finally = ignore
|
|
||||||
nl_brace_fparen = ignore
|
|
||||||
nl_brace_square = ignore
|
|
||||||
nl_brace_struct_var = ignore
|
|
||||||
nl_brace_while = ignore
|
|
||||||
nl_case_colon_brace = ignore
|
|
||||||
nl_catch_brace = ignore
|
|
||||||
nl_class_brace = ignore
|
|
||||||
nl_class_colon = remove
|
|
||||||
nl_class_init_args = add
|
|
||||||
nl_class_leave_one_liners = false
|
|
||||||
nl_collapse_empty_body = false
|
|
||||||
nl_comment_func_def = 0
|
|
||||||
nl_constr_colon = ignore
|
|
||||||
nl_constr_init_args = ignore
|
|
||||||
nl_cpp_lambda_leave_one_liners = true
|
|
||||||
nl_cpp_ldef_brace = remove
|
|
||||||
nl_create_for_one_liner = false
|
|
||||||
nl_create_func_def_one_liner = false
|
|
||||||
nl_create_if_one_liner = false
|
|
||||||
nl_create_while_one_liner = false
|
|
||||||
nl_cs_property_leave_one_liners = false
|
|
||||||
nl_define_macro = false
|
|
||||||
nl_do_brace = ignore
|
|
||||||
nl_ds_struct_enum_close_brace = false
|
|
||||||
nl_ds_struct_enum_cmt = false
|
|
||||||
nl_else_brace = ignore
|
|
||||||
nl_elseif_brace = ignore
|
|
||||||
nl_else_if = ignore
|
|
||||||
nl_end_of_file = ignore
|
|
||||||
nl_end_of_file_min = 0
|
|
||||||
nl_enum_brace = ignore
|
|
||||||
nl_enum_class_identifier = ignore
|
|
||||||
nl_enum_class = ignore
|
|
||||||
nl_enum_colon_type = ignore
|
|
||||||
nl_enum_identifier_colon = ignore
|
|
||||||
nl_enum_leave_one_liners = false
|
|
||||||
nl_enum_own_lines = ignore
|
|
||||||
nl_fcall_brace = ignore
|
|
||||||
nl_fdef_brace = ignore
|
|
||||||
nl_finally_brace = ignore
|
|
||||||
nl_for_brace = ignore
|
|
||||||
nl_func_call_args_multi_line = false
|
|
||||||
nl_func_call_empty = ignore
|
|
||||||
nl_func_call_end_multi_line = false
|
|
||||||
nl_func_call_paren_empty = ignore
|
|
||||||
nl_func_call_paren = ignore
|
|
||||||
nl_func_call_start_multi_line = false
|
|
||||||
nl_func_class_scope = ignore
|
|
||||||
nl_func_decl_args = ignore
|
|
||||||
nl_func_decl_args_multi_line = false
|
|
||||||
nl_func_decl_empty = ignore
|
|
||||||
nl_func_decl_end = ignore
|
|
||||||
nl_func_decl_end_multi_line = false
|
|
||||||
nl_func_decl_end_single = ignore
|
|
||||||
nl_func_decl_start = ignore
|
|
||||||
nl_func_decl_start_multi_line = false
|
|
||||||
nl_func_decl_start_single = ignore
|
|
||||||
nl_func_def_args = ignore
|
|
||||||
nl_func_def_args_multi_line = false
|
|
||||||
nl_func_def_empty = ignore
|
|
||||||
nl_func_def_end = ignore
|
|
||||||
nl_func_def_end_multi_line = false
|
|
||||||
nl_func_def_end_single = ignore
|
|
||||||
nl_func_def_paren_empty = ignore
|
|
||||||
nl_func_def_paren = ignore
|
|
||||||
nl_func_def_start = ignore
|
|
||||||
nl_func_def_start_multi_line = false
|
|
||||||
nl_func_def_start_single = ignore
|
|
||||||
nl_func_leave_one_liners = true
|
|
||||||
nl_func_paren_empty = ignore
|
|
||||||
nl_func_paren = ignore
|
|
||||||
nl_func_proto_type_name = ignore
|
|
||||||
nl_func_scope_name = ignore
|
|
||||||
nl_func_type_name_class = ignore
|
|
||||||
nl_func_type_name = ignore
|
|
||||||
nl_func_var_def_blk = 0
|
|
||||||
nl_getset_brace = ignore
|
|
||||||
nl_getset_leave_one_liners = false
|
|
||||||
nl_if_brace = ignore
|
|
||||||
nl_if_leave_one_liners = false
|
|
||||||
nl_max = 0
|
|
||||||
nl_max_blank_in_func = 0
|
|
||||||
nl_multi_line_cond = false
|
|
||||||
nl_multi_line_define = false
|
|
||||||
nl_namespace_brace = ignore
|
|
||||||
nl_namespace_two_to_one_liner = false
|
|
||||||
nl_oc_block_brace = ignore
|
|
||||||
nl_oc_brace_catch = ignore
|
|
||||||
nl_oc_catch_brace = ignore
|
|
||||||
nl_oc_implementation_brace = ignore
|
|
||||||
nl_oc_interface_brace = ignore
|
|
||||||
nl_oc_msg_args = false
|
|
||||||
nl_oc_msg_leave_one_liner = false
|
|
||||||
nl_paren_dbrace_open = ignore
|
|
||||||
nl_property_brace = ignore
|
|
||||||
nl_remove_extra_newlines = 0
|
|
||||||
nl_return_expr = ignore
|
|
||||||
nl_scope_brace = ignore
|
|
||||||
nl_split_for_one_liner = false
|
|
||||||
nl_split_if_one_liner = false
|
|
||||||
nl_split_while_one_liner = false
|
|
||||||
nl_squeeze_ifdef = false
|
|
||||||
nl_squeeze_ifdef_top_level = false
|
|
||||||
nl_squeeze_paren_close = false
|
|
||||||
nl_start_of_file = ignore
|
|
||||||
nl_start_of_file_min = 0
|
|
||||||
nl_struct_brace = ignore
|
|
||||||
nl_switch_brace = ignore
|
|
||||||
nl_synchronized_brace = ignore
|
|
||||||
nl_template_class = ignore
|
|
||||||
nl_try_brace = ignore
|
|
||||||
nl_tsquare_brace = ignore
|
|
||||||
nl_type_brace_init_lst_close = ignore
|
|
||||||
nl_type_brace_init_lst = ignore
|
|
||||||
nl_type_brace_init_lst_open = ignore
|
|
||||||
nl_typedef_blk_end = 0
|
|
||||||
nl_typedef_blk_in = 0
|
|
||||||
nl_typedef_blk_start = 0
|
|
||||||
nl_union_brace = ignore
|
|
||||||
nl_unittest_brace = ignore
|
|
||||||
nl_using_brace = ignore
|
|
||||||
nl_var_def_blk_end = 0
|
|
||||||
nl_var_def_blk_in = 0
|
|
||||||
nl_var_def_blk_start = 0
|
|
||||||
nl_version_brace = ignore
|
|
||||||
nl_while_brace = ignore
|
|
||||||
nl_while_leave_one_liners = false
|
|
||||||
output_tab_size = 4
|
|
||||||
pos_arith = ignore
|
|
||||||
pos_assign = ignore
|
|
||||||
pos_bool = ignore
|
|
||||||
pos_class_colon = lead
|
|
||||||
pos_class_comma = lead
|
|
||||||
pos_comma = ignore
|
|
||||||
pos_compare = ignore
|
|
||||||
pos_conditional = ignore
|
|
||||||
pos_constr_colon = ignore
|
|
||||||
pos_constr_comma = ignore
|
|
||||||
pos_enum_comma = ignore
|
|
||||||
pp_define_at_level = false
|
|
||||||
pp_if_indent_code = false
|
|
||||||
pp_ignore_define_body = false
|
|
||||||
pp_indent_at_level = false
|
|
||||||
pp_indent_brace = true
|
|
||||||
pp_indent_case = true
|
|
||||||
pp_indent_count = 1
|
|
||||||
pp_indent_extern = true
|
|
||||||
pp_indent_func_def = true
|
|
||||||
pp_indent_if = 0
|
|
||||||
pp_indent = ignore
|
|
||||||
pp_indent_region = 0
|
|
||||||
pp_region_indent_code = false
|
|
||||||
pp_space_count = 0
|
|
||||||
pp_space = ignore
|
|
||||||
sp_addr = remove
|
|
||||||
sp_after_angle = ignore
|
|
||||||
sp_after_assign = ignore
|
|
||||||
sp_after_byref_func = remove
|
|
||||||
sp_after_byref = remove
|
|
||||||
sp_after_cast = ignore
|
|
||||||
sp_after_class_colon = add
|
|
||||||
sp_after_comma = add
|
|
||||||
sp_after_constr_colon = ignore
|
|
||||||
sp_after_dc = ignore
|
|
||||||
sp_after_for_colon = ignore
|
|
||||||
sp_after_invariant_paren = ignore
|
|
||||||
sp_after_mdatype_commas = ignore
|
|
||||||
sp_after_new = ignore
|
|
||||||
sp_after_newop_paren = ignore
|
|
||||||
sp_after_noexcept = ignore
|
|
||||||
sp_after_oc_at_sel = ignore
|
|
||||||
sp_after_oc_block_caret = ignore
|
|
||||||
sp_after_oc_colon = ignore
|
|
||||||
sp_after_oc_dict_colon = ignore
|
|
||||||
sp_after_oc_msg_receiver = ignore
|
|
||||||
sp_after_oc_property = ignore
|
|
||||||
sp_after_oc_return_type = ignore
|
|
||||||
sp_after_oc_scope = ignore
|
|
||||||
sp_after_oc_synchronized = ignore
|
|
||||||
sp_after_oc_type = ignore
|
|
||||||
sp_after_operator = ignore
|
|
||||||
sp_after_operator_sym_empty = ignore
|
|
||||||
sp_after_operator_sym = ignore
|
|
||||||
sp_after_ptr_block_caret = ignore
|
|
||||||
sp_after_ptr_star_func = remove
|
|
||||||
sp_after_ptr_star = remove
|
|
||||||
sp_after_ptr_star_qualifier = ignore
|
|
||||||
sp_after_semi = add
|
|
||||||
sp_after_semi_for_empty = ignore
|
|
||||||
sp_after_semi_for = force
|
|
||||||
sp_after_send_oc_colon = ignore
|
|
||||||
sp_after_sparen = ignore
|
|
||||||
sp_after_tag = ignore
|
|
||||||
sp_after_throw = ignore
|
|
||||||
sp_after_tparen_close = remove
|
|
||||||
sp_after_type_brace_init_lst_open = ignore
|
|
||||||
sp_after_type = force
|
|
||||||
sp_angle_colon = ignore
|
|
||||||
sp_angle_paren_empty = ignore
|
|
||||||
sp_angle_paren = ignore
|
|
||||||
sp_angle_shift = remove
|
|
||||||
sp_angle_word = ignore
|
|
||||||
sp_annotation_paren = ignore
|
|
||||||
sp_arith_additive = ignore
|
|
||||||
sp_arith = ignore
|
|
||||||
sp_assign_default = ignore
|
|
||||||
sp_assign = ignore
|
|
||||||
sp_attribute_paren = ignore
|
|
||||||
sp_balance_nested_parens = false
|
|
||||||
sp_before_angle = ignore
|
|
||||||
sp_before_assign = ignore
|
|
||||||
sp_before_byref_func = ignore
|
|
||||||
sp_before_byref = add
|
|
||||||
sp_before_case_colon = remove
|
|
||||||
sp_before_class_colon = add
|
|
||||||
sp_before_comma = remove
|
|
||||||
sp_before_constr_colon = ignore
|
|
||||||
sp_before_dc = ignore
|
|
||||||
sp_before_ellipsis = ignore
|
|
||||||
sp_before_for_colon = ignore
|
|
||||||
sp_before_mdatype_commas = ignore
|
|
||||||
sp_before_nl_cont = add
|
|
||||||
sp_before_oc_block_caret = ignore
|
|
||||||
sp_before_oc_colon = ignore
|
|
||||||
sp_before_oc_dict_colon = ignore
|
|
||||||
sp_before_pp_stringify = ignore
|
|
||||||
sp_before_ptr_star_func = ignore
|
|
||||||
sp_before_ptr_star = add
|
|
||||||
sp_before_semi_for_empty = ignore
|
|
||||||
sp_before_semi_for = ignore
|
|
||||||
sp_before_semi = remove
|
|
||||||
sp_before_send_oc_colon = ignore
|
|
||||||
sp_before_sparen = ignore
|
|
||||||
sp_before_square = ignore
|
|
||||||
sp_before_squares = ignore
|
|
||||||
sp_before_template_paren = ignore
|
|
||||||
sp_before_tr_emb_cmt = ignore
|
|
||||||
sp_before_type_brace_init_lst_close = ignore
|
|
||||||
sp_before_unnamed_byref = ignore
|
|
||||||
sp_before_unnamed_ptr_star = ignore
|
|
||||||
sp_between_mdatype_commas = ignore
|
|
||||||
sp_between_new_paren = ignore
|
|
||||||
sp_between_ptr_star = ignore
|
|
||||||
sp_bool = ignore
|
|
||||||
sp_brace_catch = ignore
|
|
||||||
sp_brace_else = ignore
|
|
||||||
sp_brace_finally = ignore
|
|
||||||
sp_brace_typedef = ignore
|
|
||||||
sp_case_label = ignore
|
|
||||||
sp_catch_brace = ignore
|
|
||||||
sp_catch_paren = ignore
|
|
||||||
sp_cmt_cpp_doxygen = false
|
|
||||||
sp_cmt_cpp_qttr = false
|
|
||||||
sp_cmt_cpp_start = ignore
|
|
||||||
sp_compare = ignore
|
|
||||||
sp_cond_colon_after = ignore
|
|
||||||
sp_cond_colon_before = ignore
|
|
||||||
sp_cond_colon = ignore
|
|
||||||
sp_cond_question_after = ignore
|
|
||||||
sp_cond_question_before = ignore
|
|
||||||
sp_cond_question = ignore
|
|
||||||
sp_cond_ternary_short = ignore
|
|
||||||
sp_cparen_oparen = ignore
|
|
||||||
sp_cpp_before_struct_binding = ignore
|
|
||||||
sp_cpp_cast_paren = ignore
|
|
||||||
sp_cpp_lambda_assign = ignore
|
|
||||||
sp_cpp_lambda_paren = ignore
|
|
||||||
sp_d_array_colon = ignore
|
|
||||||
sp_defined_paren = ignore
|
|
||||||
sp_deref = remove
|
|
||||||
sp_else_brace = ignore
|
|
||||||
sp_endif_cmt = ignore
|
|
||||||
sp_enum_after_assign = ignore
|
|
||||||
sp_enum_assign = ignore
|
|
||||||
sp_enum_before_assign = ignore
|
|
||||||
sp_enum_colon = ignore
|
|
||||||
sp_enum_paren = ignore
|
|
||||||
sp_extern_paren = ignore
|
|
||||||
sp_finally_brace = ignore
|
|
||||||
sp_fparen_brace = ignore
|
|
||||||
sp_fparen_brace_initializer = ignore
|
|
||||||
sp_fparen_dbrace = ignore
|
|
||||||
sp_func_call_paren_empty = ignore
|
|
||||||
sp_func_call_paren = ignore
|
|
||||||
sp_func_call_user_inside_fparen = ignore
|
|
||||||
sp_func_call_user_paren = ignore
|
|
||||||
sp_func_call_user_paren_paren = remove
|
|
||||||
sp_func_class_paren_empty = ignore
|
|
||||||
sp_func_class_paren = ignore
|
|
||||||
sp_func_def_paren_empty = ignore
|
|
||||||
sp_func_def_paren = ignore
|
|
||||||
sp_func_proto_paren_empty = ignore
|
|
||||||
sp_func_proto_paren = ignore
|
|
||||||
sp_getset_brace = ignore
|
|
||||||
sp_incdec = remove
|
|
||||||
sp_inside_angle = ignore
|
|
||||||
sp_inside_braces_empty = remove
|
|
||||||
sp_inside_braces_enum = ignore
|
|
||||||
sp_inside_braces = ignore
|
|
||||||
sp_inside_braces_oc_dict = ignore
|
|
||||||
sp_inside_braces_struct = ignore
|
|
||||||
sp_inside_fparen = ignore
|
|
||||||
sp_inside_fparens = remove
|
|
||||||
sp_inside_newop_paren_close = ignore
|
|
||||||
sp_inside_newop_paren = ignore
|
|
||||||
sp_inside_newop_paren_open = ignore
|
|
||||||
sp_inside_oc_at_sel_parens = ignore
|
|
||||||
sp_inside_paren_cast = ignore
|
|
||||||
sp_inside_paren = ignore
|
|
||||||
sp_inside_sparen_close = ignore
|
|
||||||
sp_inside_sparen = ignore
|
|
||||||
sp_inside_sparen_open = ignore
|
|
||||||
sp_inside_square = ignore
|
|
||||||
sp_inside_square_oc_array = ignore
|
|
||||||
sp_inside_tparen = ignore
|
|
||||||
sp_inside_type_brace_init_lst = ignore
|
|
||||||
sp_invariant_paren = ignore
|
|
||||||
sp_inv = remove
|
|
||||||
sp_macro_func = ignore
|
|
||||||
sp_macro = ignore
|
|
||||||
sp_member = remove
|
|
||||||
sp_not = remove
|
|
||||||
sp_num_before_tr_emb_cmt = 0
|
|
||||||
sp_oc_brace_catch = ignore
|
|
||||||
sp_oc_catch_brace = ignore
|
|
||||||
sp_oc_catch_paren = ignore
|
|
||||||
sp_paren_brace = remove
|
|
||||||
sp_paren_comma = force
|
|
||||||
sp_paren_paren = remove
|
|
||||||
sp_permit_cpp11_shift = true
|
|
||||||
sp_pp_concat = add
|
|
||||||
sp_pp_stringify = ignore
|
|
||||||
sp_ptr_star_paren = ignore
|
|
||||||
sp_range = ignore
|
|
||||||
sp_return_paren = ignore
|
|
||||||
sp_scope_paren = ignore
|
|
||||||
sp_sign = remove
|
|
||||||
sp_sizeof_paren = ignore
|
|
||||||
sp_skip_vbrace_tokens = false
|
|
||||||
sp_sparen_brace = add
|
|
||||||
sp_special_semi = ignore
|
|
||||||
sp_square_fparen = ignore
|
|
||||||
sp_super_paren = remove
|
|
||||||
sp_template_angle = ignore
|
|
||||||
sp_this_paren = remove
|
|
||||||
sp_throw_paren = ignore
|
|
||||||
sp_try_brace = ignore
|
|
||||||
sp_type_brace_init_lst = ignore
|
|
||||||
sp_type_func = ignore
|
|
||||||
sp_version_paren = ignore
|
|
||||||
sp_word_brace = add
|
|
||||||
sp_word_brace_ns = add
|
|
||||||
string_escape_char2 = 0
|
|
||||||
string_escape_char = 92
|
|
||||||
string_replace_tab_chars = false
|
|
||||||
tok_split_gte = false
|
|
||||||
use_indent_continue_only_once = false
|
|
||||||
use_indent_func_call_param = true
|
|
||||||
use_options_overriding_for_qt_macros = true
|
|
||||||
utf8_bom = ignore
|
|
||||||
utf8_byte = false
|
|
||||||
utf8_force = false
|
|
||||||
warn_level_tabs_found_in_verbatim_string_literals = 2
|
|
||||||
257
CMakeLists.txt
257
CMakeLists.txt
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Sergio Martins <sergio.martins@kdab.com>
|
# Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
@@ -19,15 +19,9 @@
|
|||||||
# Build static versions of the libraries
|
# Build static versions of the libraries
|
||||||
# Default=false
|
# Default=false
|
||||||
#
|
#
|
||||||
# -DKDDockWidgets_UNINSTALL=[true|false]
|
|
||||||
# Setup the uninstall target.
|
|
||||||
# You may want to disable the uninstall target when you are using KDDockWidgets
|
|
||||||
# as a submodule directly and have a custom uninstall target of your own.
|
|
||||||
# Default=true
|
|
||||||
#
|
|
||||||
# -DKDDockWidgets_TESTS=[true|false]
|
# -DKDDockWidgets_TESTS=[true|false]
|
||||||
# Build the test harness.
|
# Build the test harness.
|
||||||
# Currently ignored unless you also set KDDockWidgets_DEVELOPER_MODE=True
|
# Currently ignored (except for Python bindings) unless KDDockWidgets_DEVELOPER_MODE=True.
|
||||||
# Default=false
|
# Default=false
|
||||||
#
|
#
|
||||||
# -DKDDockWidgets_EXAMPLES=[true|false]
|
# -DKDDockWidgets_EXAMPLES=[true|false]
|
||||||
@@ -45,7 +39,7 @@
|
|||||||
# -DKDDockWidgets_PYTHON_BINDINGS=[true|false]
|
# -DKDDockWidgets_PYTHON_BINDINGS=[true|false]
|
||||||
# Build/Generate python bindings. Always false for Debug builds
|
# Build/Generate python bindings. Always false for Debug builds
|
||||||
# (If your shiboken or pyside is installed in a non-standard locations
|
# (If your shiboken or pyside is installed in a non-standard locations
|
||||||
# try passing the SHIBOKEN_CUSTOM_PREFIX and PYSIDE2_CUSTOM_PREFIX variables.)
|
# try passing the SHIBOKEN_CUSTOM_PREFIX and PYSIDE_CUSTOM_PREFIX variables.)
|
||||||
# Default=false
|
# Default=false
|
||||||
#
|
#
|
||||||
# -DKDDockWidgets_PYTHON_BINDINGS_INSTALL_PREFIX=[path]
|
# -DKDDockWidgets_PYTHON_BINDINGS_INSTALL_PREFIX=[path]
|
||||||
@@ -76,37 +70,13 @@
|
|||||||
# Default=true
|
# Default=true
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.7)
|
cmake_minimum_required(VERSION 3.7)
|
||||||
if(POLICY CMP0020)
|
|
||||||
cmake_policy(SET CMP0020 NEW)
|
|
||||||
endif()
|
|
||||||
if(POLICY CMP0042)
|
|
||||||
cmake_policy(SET CMP0042 NEW)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Just to fix warnings with --warn-uninitialized
|
# Allow using a non-KDAB install location.
|
||||||
if(NOT DEFINED USE_DEFAULT_INSTALL_LOCATION)
|
set(KDAB_INSTALL True CACHE INTERNAL "Install to default KDAB Location")
|
||||||
set(USE_DEFAULT_INSTALL_LOCATION FALSE)
|
if(DEFINED CMAKE_INSTALL_PREFIX)
|
||||||
endif()
|
|
||||||
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
|
|
||||||
set(CMAKE_INSTALL_PREFIX "")
|
|
||||||
endif()
|
|
||||||
if(NOT DEFINED SHIBOKEN_CUSTOM_PREFIX) #look for shiboken in a custom location
|
|
||||||
set(SHIBOKEN_CUSTOM_PREFIX "")
|
|
||||||
endif()
|
|
||||||
if(NOT DEFINED PYSIDE2_CUSTOM_PREFIX) #look for pyside in a custom location
|
|
||||||
set(PYSIDE2_CUSTOM_PREFIX "")
|
|
||||||
endif()
|
|
||||||
if(NOT DEFINED PYSIDE6_CUSTOM_PREFIX) #look for pyside in a custom location
|
|
||||||
set(PYSIDE6_CUSTOM_PREFIX "")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Allow using a non-KDAB install location
|
|
||||||
set(KDAB_INSTALL True)
|
|
||||||
if(NOT ${USE_DEFAULT_INSTALL_LOCATION})
|
|
||||||
if(NOT "${CMAKE_INSTALL_PREFIX}" STREQUAL "")
|
if(NOT "${CMAKE_INSTALL_PREFIX}" STREQUAL "")
|
||||||
set(KDAB_INSTALL False)
|
set(KDAB_INSTALL False CACHE INTERNAL "Install to non-KDAB Location")
|
||||||
endif()
|
endif()
|
||||||
set(USE_DEFAULT_INSTALL_LOCATION ${KDAB_INSTALL} CACHE INTERNAL "Install to default KDAB Location" FORCE)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(${CMAKE_VERSION} VERSION_LESS "3.12.0")
|
if(${CMAKE_VERSION} VERSION_LESS "3.12.0")
|
||||||
@@ -119,65 +89,33 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(${PROJECT_NAME}_VERSION_MAJOR 1)
|
set(${PROJECT_NAME}_VERSION_MAJOR 1)
|
||||||
set(${PROJECT_NAME}_VERSION_MINOR 4)
|
set(${PROJECT_NAME}_VERSION_MINOR 5)
|
||||||
set(${PROJECT_NAME}_VERSION_PATCH 0)
|
set(${PROJECT_NAME}_VERSION_PATCH 1)
|
||||||
set(${PROJECT_NAME}_VERSION ${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}.${${PROJECT_NAME}_VERSION_PATCH})
|
set(${PROJECT_NAME}_VERSION ${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}.${${PROJECT_NAME}_VERSION_PATCH})
|
||||||
set(PROJECT_VERSION ${${PROJECT_NAME}_VERSION}) #PROJECT_VERSION is needed by some ECM modules
|
set(PROJECT_VERSION ${${PROJECT_NAME}_VERSION}) #PROJECT_VERSION is needed by some ECM modules
|
||||||
set(${PROJECT_NAME}_SOVERSION "1.4")
|
set(${PROJECT_NAME}_SOVERSION "1.5")
|
||||||
|
|
||||||
include(FeatureSummary)
|
include(FeatureSummary)
|
||||||
|
|
||||||
option(${PROJECT_NAME}_QT6 "Build against Qt 6" OFF)
|
option(${PROJECT_NAME}_QT6 "Build against Qt 6" ON)
|
||||||
option(${PROJECT_NAME}_DEVELOPER_MODE "Developer Mode" OFF)
|
option(${PROJECT_NAME}_DEVELOPER_MODE "Developer Mode" OFF)
|
||||||
option(${PROJECT_NAME}_PYTHON_BINDINGS "Build python bindings" OFF)
|
option(${PROJECT_NAME}_PYTHON_BINDINGS "Build python bindings" OFF)
|
||||||
option(${PROJECT_NAME}_UNINSTALL "Enable the uninstall target" ON)
|
option(${PROJECT_NAME}_QTQUICK "Build for QtQuick instead of QtWidgets" OFF)
|
||||||
option(${PROJECT_NAME}_STATIC "Build statically" OFF)
|
option(${PROJECT_NAME}_STATIC "Build statically" OFF)
|
||||||
option(${PROJECT_NAME}_TESTS "Build the tests" OFF)
|
option(${PROJECT_NAME}_TESTS "Build the tests" OFF)
|
||||||
option(${PROJECT_NAME}_EXAMPLES "Build the examples" ON)
|
option(${PROJECT_NAME}_EXAMPLES "Build the examples" ON)
|
||||||
option(${PROJECT_NAME}_DOCS "Build the API documentation" OFF)
|
option(${PROJECT_NAME}_DOCS "Build the API documentation" OFF)
|
||||||
option(${PROJECT_NAME}_WERROR "Use -Werror (will be true for developer-mode unconditionally)" OFF)
|
option(${PROJECT_NAME}_WERROR "Use -Werror (will be true for developer-mode unconditionally)" OFF)
|
||||||
|
option(${PROJECT_NAME}_X11EXTRAS "On Linux, link against QtX11Extras so we can detect if the compositor supports transparency. Not applicable to other platforms or Qt6." ON)
|
||||||
|
option(${PROJECT_NAME}_XLib "On Linux, link against XLib, for a more robust window z-order detection." OFF)
|
||||||
|
|
||||||
|
set(${PROJECT_NAME}_QT6 ON)
|
||||||
|
set(${PROJECT_NAME}_X11EXTRAS OFF)
|
||||||
|
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/ECM/modules")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/ECM/modules")
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/KDAB/modules")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/KDAB/modules")
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/Python")
|
|
||||||
|
|
||||||
#Always build the test harness in developer-mode
|
|
||||||
if(${PROJECT_NAME}_DEVELOPER_MODE)
|
|
||||||
set(${PROJECT_NAME}_TESTS ON)
|
|
||||||
set(${PROJECT_NAME}_WERROR ON)
|
|
||||||
include(ECMEnableSanitizers)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
option(${PROJECT_NAME}_QTQUICK "Build for QtQuick instead of QtWidgets" OFF)
|
|
||||||
|
|
||||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
||||||
set(IS_CLANG_BUILD TRUE)
|
|
||||||
else()
|
|
||||||
set(IS_CLANG_BUILD FALSE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(${PROJECT_NAME}_QT6)
|
|
||||||
find_package(Qt6Widgets REQUIRED)
|
|
||||||
find_package(Qt6Test REQUIRED)
|
|
||||||
set(QT_MAJOR_VERSION 6)
|
|
||||||
set(KDDockWidgets_LIBRARY_QTID "-qt6")
|
|
||||||
else()
|
|
||||||
find_package(Qt5Widgets 5.12 REQUIRED)
|
|
||||||
find_package(Qt5Test 5.12 REQUIRED)
|
|
||||||
set(QT_MAJOR_VERSION 5)
|
|
||||||
set(KDDockWidgets_LIBRARY_QTID "")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(${PROJECT_NAME}_QTQUICK)
|
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(CMAKE_AUTOMOC ON)
|
|
||||||
set(CMAKE_AUTORCC ON)
|
|
||||||
|
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
|
||||||
|
|
||||||
# Set a default build type if none was specified
|
# Set a default build type if none was specified
|
||||||
set(default_build_type "Release")
|
set(default_build_type "Release")
|
||||||
@@ -191,10 +129,65 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|||||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
|
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# setup default install locations
|
if (${PROJECT_NAME}_XLib)
|
||||||
include(InstallLocation)
|
add_definitions(-DKDDockWidgets_XLIB)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(${PROJECT_NAME}_QT6)
|
||||||
|
set(Qt_VERSION_MAJOR 6)
|
||||||
|
set(QT_MIN_VERSION "6.0.0")
|
||||||
|
find_package(Qt6Widgets ${QT_MIN_VERSION} REQUIRED)
|
||||||
|
find_package(Qt6Test ${QT_MIN_VERSION} REQUIRED)
|
||||||
|
set(${PROJECT_NAME}_LIBRARY_QTID "-qt6")
|
||||||
|
else()
|
||||||
|
set(Qt_VERSION_MAJOR 5)
|
||||||
|
set(QT_MIN_VERSION "5.15")
|
||||||
|
find_package(Qt5Widgets ${QT_MIN_VERSION} REQUIRED)
|
||||||
|
find_package(Qt5Test ${QT_MIN_VERSION} REQUIRED)
|
||||||
|
set(${PROJECT_NAME}_LIBRARY_QTID "")
|
||||||
|
endif()
|
||||||
include(KDQtInstallPaths) #to set QT_INSTALL_FOO variables
|
include(KDQtInstallPaths) #to set QT_INSTALL_FOO variables
|
||||||
|
|
||||||
|
set(${PROJECT_NAME}_DEPS "widgets")
|
||||||
|
if(${PROJECT_NAME}_QTQUICK)
|
||||||
|
find_package(Qt${Qt_VERSION_MAJOR}Quick)
|
||||||
|
find_package(Qt${Qt_VERSION_MAJOR}QuickControls2)
|
||||||
|
add_definitions(-DKDDOCKWIDGETS_QTQUICK)
|
||||||
|
set(${PROJECT_NAME}_DEPS "${${PROJECT_NAME}_DEPS} quick quickcontrols2")
|
||||||
|
else()
|
||||||
|
add_definitions(-DKDDOCKWIDGETS_QTWIDGETS)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT WIN32 AND NOT APPLE AND NOT EMSCRIPTEN AND NOT ${PROJECT_NAME}_QT6 AND ${PROJECT_NAME}_X11EXTRAS)
|
||||||
|
set(${PROJECT_NAME}_DEPS "${${PROJECT_NAME}_DEPS} x11extras")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
#Always build the test harness in developer-mode
|
||||||
|
if(${PROJECT_NAME}_DEVELOPER_MODE)
|
||||||
|
set(${PROJECT_NAME}_TESTS ON)
|
||||||
|
set(${PROJECT_NAME}_WERROR ON)
|
||||||
|
include(ECMEnableSanitizers)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
|
set(IS_CLANG_BUILD TRUE)
|
||||||
|
else()
|
||||||
|
set(IS_CLANG_BUILD FALSE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(${PROJECT_NAME}_QTQUICK)
|
||||||
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CMAKE_AUTOMOC ON)
|
||||||
|
set(CMAKE_AUTORCC ON)
|
||||||
|
|
||||||
|
# Default to hidden visibility for symbols
|
||||||
|
set(CMAKE_C_VISIBILITY_PRESET hidden)
|
||||||
|
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
|
||||||
|
set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
|
||||||
|
|
||||||
macro(set_compiler_flags targetName)
|
macro(set_compiler_flags targetName)
|
||||||
if(${PROJECT_NAME}_DEVELOPER_MODE)
|
if(${PROJECT_NAME}_DEVELOPER_MODE)
|
||||||
target_compile_definitions(${targetName} PUBLIC DOCKS_DEVELOPER_MODE PRIVATE QT_FORCE_ASSERTS)
|
target_compile_definitions(${targetName} PUBLIC DOCKS_DEVELOPER_MODE PRIVATE QT_FORCE_ASSERTS)
|
||||||
@@ -212,22 +205,28 @@ macro(set_compiler_flags targetName)
|
|||||||
if(${PROJECT_NAME}_WERROR AND (NOT MSVC OR IS_CLANG_BUILD)) # clang-cl accepts these too
|
if(${PROJECT_NAME}_WERROR AND (NOT MSVC OR IS_CLANG_BUILD)) # clang-cl accepts these too
|
||||||
target_compile_options(${targetName} PRIVATE -Werror -Wundef -Wno-error=deprecated-declarations)
|
target_compile_options(${targetName} PRIVATE -Werror -Wundef -Wno-error=deprecated-declarations)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
set(${PROJECT_NAME}_DEPS "widgets")
|
if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT APPLE) OR
|
||||||
|
(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT APPLE) OR
|
||||||
|
(CMAKE_CXX_COMPILER_ID STREQUAL "Intel" AND NOT WIN32))
|
||||||
|
# Linker warnings should be treated as errors
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings ${CMAKE_SHARED_LINKER_FLAGS}")
|
||||||
|
set(CMAKE_MODULE_LINKER_FLAGS "-Wl,--fatal-warnings ${CMAKE_MODULE_LINKER_FLAGS}")
|
||||||
|
|
||||||
if(${PROJECT_NAME}_QTQUICK)
|
string(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" compileflags)
|
||||||
find_package(Qt${QT_MAJOR_VERSION}Quick)
|
if("${CMAKE_CXX_FLAGS} ${${compileflags}}" MATCHES "-fsanitize")
|
||||||
find_package(Qt${QT_MAJOR_VERSION}QuickControls2)
|
set(sanitizers_enabled TRUE)
|
||||||
add_definitions(-DKDDOCKWIDGETS_QTQUICK)
|
else()
|
||||||
set(${PROJECT_NAME}_DEPS "${${PROJECT_NAME}_DEPS} quick quickcontrols2")
|
set(sanitizers_enabled FALSE)
|
||||||
else()
|
endif()
|
||||||
add_definitions(-DKDDOCKWIDGETS_QTWIDGETS)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT WIN32 AND NOT APPLE AND NOT EMSCRIPTEN AND NOT ${PROJECT_NAME}_QT6)
|
# cannot enable this for clang + sanitizers
|
||||||
set(${PROJECT_NAME}_DEPS "${${PROJECT_NAME}_DEPS} x11extras")
|
if(NOT sanitizers_enabled OR NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||||
|
# Do not allow undefined symbols, even in non-symbolic shared libraries
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined ${CMAKE_SHARED_LINKER_FLAGS}")
|
||||||
|
set(CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined ${CMAKE_MODULE_LINKER_FLAGS}")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(${PROJECT_NAME}_STATIC)
|
if(${PROJECT_NAME}_STATIC)
|
||||||
@@ -236,26 +235,33 @@ else()
|
|||||||
set(${PROJECT_NAME}_LIBRARY_MODE "SHARED")
|
set(${PROJECT_NAME}_LIBRARY_MODE "SHARED")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(USE_DEFAULT_INSTALL_LOCATION)
|
if(KDAB_INSTALL)
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
set(CMAKE_INSTALL_PREFIX "/usr/local/KDAB/${PROJECT_NAME}-${${PROJECT_NAME}_VERSION}")
|
set(CMAKE_INSTALL_PREFIX "/usr/local/KDAB/${PROJECT_NAME}-${${PROJECT_NAME}_VERSION}" CACHE INTERNAL "Install to default KDAB Location")
|
||||||
elseif(WIN32)
|
elseif(WIN32)
|
||||||
set(CMAKE_INSTALL_PREFIX "C:\\KDAB\\${PROJECT_NAME}-${${PROJECT_NAME}_VERSION}")
|
set(CMAKE_INSTALL_PREFIX "C:\\KDAB\\${PROJECT_NAME}-${${PROJECT_NAME}_VERSION}" CACHE INTERNAL "Install to default KDAB Location")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_subdirectory(src)
|
# setup default install locations
|
||||||
if(${PROJECT_NAME}_PYTHON_BINDINGS)
|
include(InstallLocation)
|
||||||
if(CMAKE_BUILD_TYPE MATCHES "^[Dd]eb" OR ${PROJECT_NAME}_STATIC)
|
|
||||||
message(FATAL_ERROR "** Python Bindings are disabled in debug or static builds.")
|
|
||||||
endif()
|
|
||||||
add_subdirectory(python)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Generate .pri file for qmake users
|
if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
|
||||||
if(CMAKE_VERSION VERSION_GREATER "3.11.99" AND NOT CMAKE_CONFIGURATION_TYPES) # Not working with VS generator or older cmake versions
|
set(${PROJECT_NAME}_IS_ROOT_PROJECT TRUE)
|
||||||
|
|
||||||
|
message(STATUS "Building ${PROJECT_NAME} ${${PROJECT_NAME}_VERSION} in ${CMAKE_BUILD_TYPE} mode. Installing to ${CMAKE_INSTALL_PREFIX}")
|
||||||
|
|
||||||
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
|
||||||
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/lib")
|
||||||
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/lib")
|
||||||
|
|
||||||
|
install(FILES LICENSE.txt README.md DESTINATION ${INSTALL_DOC_DIR})
|
||||||
|
install(DIRECTORY LICENSES DESTINATION ${INSTALL_DOC_DIR})
|
||||||
|
|
||||||
|
# Generate .pri file for qmake users
|
||||||
#TODO: ECM does not support Qt6 yet
|
#TODO: ECM does not support Qt6 yet
|
||||||
if(QT_MAJOR_VERSION EQUAL 5)
|
if(Qt_VERSION_MAJOR EQUAL 5 AND
|
||||||
|
CMAKE_VERSION VERSION_GREATER "3.11.99" AND NOT CMAKE_CONFIGURATION_TYPES) # Not working with VS generator or older cmake versions
|
||||||
include(ECMGeneratePriFile)
|
include(ECMGeneratePriFile)
|
||||||
set(PROJECT_VERSION_STRING ${${PROJECT_NAME}_VERSION})
|
set(PROJECT_VERSION_STRING ${${PROJECT_NAME}_VERSION})
|
||||||
ecm_generate_pri_file(BASE_NAME KDDockWidgets
|
ecm_generate_pri_file(BASE_NAME KDDockWidgets
|
||||||
@@ -267,11 +273,27 @@ if(CMAKE_VERSION VERSION_GREATER "3.11.99" AND NOT CMAKE_CONFIGURATION_TYPES) #
|
|||||||
install(FILES ${pri_filename} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})
|
install(FILES ${pri_filename} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
message(WARNING "Unable to generate the pri file for qmake users. Try updating CMake.")
|
#Always disable tests, examples, docs when used as a submodule
|
||||||
|
set(${PROJECT_NAME}_IS_ROOT_PROJECT FALSE)
|
||||||
|
set(${PROJECT_NAME}_TESTS FALSE)
|
||||||
|
set(${PROJECT_NAME}_EXAMPLES FALSE)
|
||||||
|
set(${PROJECT_NAME}_DOCS FALSE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(FILES LICENSE.txt README.md DESTINATION ${INSTALL_DOC_DIR})
|
if(${PROJECT_NAME}_TESTS)
|
||||||
install(DIRECTORY LICENSES DESTINATION ${INSTALL_DOC_DIR})
|
enable_testing()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_subdirectory(src)
|
||||||
|
|
||||||
|
if(${PROJECT_NAME}_PYTHON_BINDINGS)
|
||||||
|
if(CMAKE_BUILD_TYPE MATCHES "^[Dd]eb" OR ${PROJECT_NAME}_STATIC)
|
||||||
|
message(FATAL_ERROR "** Python Bindings are disabled in debug or static builds.")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
if(${PROJECT_NAME}_PYTHON_BINDINGS)
|
||||||
|
add_subdirectory(python)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(${PROJECT_NAME}_EXAMPLES)
|
if(${PROJECT_NAME}_EXAMPLES)
|
||||||
if(${PROJECT_NAME}_QTQUICK)
|
if(${PROJECT_NAME}_QTQUICK)
|
||||||
@@ -285,10 +307,8 @@ if(${PROJECT_NAME}_EXAMPLES)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(${PROJECT_NAME}_DEVELOPER_MODE)
|
if(${PROJECT_NAME}_TESTS)
|
||||||
|
if(${PROJECT_NAME}_DEVELOPER_MODE)
|
||||||
if(${PROJECT_NAME}_TESTS)
|
|
||||||
enable_testing()
|
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|
||||||
# Require Qt5.15.1 or higher to run the tests_launcher tests on Mac
|
# Require Qt5.15.1 or higher to run the tests_launcher tests on Mac
|
||||||
@@ -327,15 +347,10 @@ endif()
|
|||||||
|
|
||||||
if(${PROJECT_NAME}_DOCS)
|
if(${PROJECT_NAME}_DOCS)
|
||||||
add_subdirectory(docs) # needs to go last, in case there are build source files
|
add_subdirectory(docs) # needs to go last, in case there are build source files
|
||||||
#don't create the dummy docs target as it can conflict when used as a submodule
|
|
||||||
#else()
|
|
||||||
# add_custom_target(docs
|
|
||||||
# COMMAND ${CMAKE_COMMAND} -E echo "Sorry, there is no docs target since KDDockWidgets_DOCS=OFF."
|
|
||||||
# "Re-run cmake with the -DKDDockWidgets_DOCS=True option if you want to generate the documentation.")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(${PROJECT_NAME}_UNINSTALL)
|
if(${PROJECT_NAME}_IS_ROOT_PROJECT)
|
||||||
# Add uninstall target
|
# Add uninstall target (not for submodules since parent projects typically have uninstall too)
|
||||||
include(ECMUninstallTarget)
|
include(ECMUninstallTarget)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
@@ -74,6 +74,17 @@
|
|||||||
"CMAKE_UNITY_BUILD" : "ON"
|
"CMAKE_UNITY_BUILD" : "ON"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "release-no-x11extras",
|
||||||
|
"displayName": "release-no-x11extras",
|
||||||
|
"generator": "Ninja",
|
||||||
|
"binaryDir": "${sourceDir}/build-release-no-x11extras",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Release",
|
||||||
|
"CMAKE_UNITY_BUILD" : "ON",
|
||||||
|
"KDDockWidgets_X11EXTRAS" : "OFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "release-qtquick",
|
"name": "release-qtquick",
|
||||||
"displayName": "release-qtquick",
|
"displayName": "release-qtquick",
|
||||||
|
|||||||
@@ -5,3 +5,4 @@ Jacob Young <amazingjacob@gmail.com>
|
|||||||
Matthew Waltz <matthewwaltzis@gmail.com>
|
Matthew Waltz <matthewwaltzis@gmail.com>
|
||||||
Roman Pudashkin <r.pudashkin@gmail.com>
|
Roman Pudashkin <r.pudashkin@gmail.com>
|
||||||
Elnur Ismailzada <eismailzada@gmail.com>
|
Elnur Ismailzada <eismailzada@gmail.com>
|
||||||
|
Daniel Price <danielp@nvidia.com>
|
||||||
|
|||||||
12
Changelog
12
Changelog
@@ -1,3 +1,15 @@
|
|||||||
|
* v1.5.1 (unreleased)
|
||||||
|
- X11: Improved detecting which window is under the cursor, by using native X11 API
|
||||||
|
|
||||||
|
* v1.5.0 (24 November 2021)
|
||||||
|
- Install the Python bindings to "site-packages"
|
||||||
|
- The Python bindings for Qt6 use the "PyKDDockWidgetsQt6" namespace
|
||||||
|
- Co-installable with Qt6
|
||||||
|
- Adds support for non-detachable central widget, MainWindowOption_HasCentralWidget. (#225)
|
||||||
|
- Fix corrupt layout when restoring old JSON
|
||||||
|
- Fix "Unpin" button not showing up in overlayed widgets
|
||||||
|
- Minimum Qt version is now 5.15
|
||||||
|
|
||||||
* v1.4.0 (16 July 2021)
|
* v1.4.0 (16 July 2021)
|
||||||
- No longer supports Qt versions less than 5.12
|
- No longer supports Qt versions less than 5.12
|
||||||
- Experimental MDI support. By using MainWindowMDI you can now have "docked" dock widgets
|
- Experimental MDI support. By using MainWindowMDI you can now have "docked" dock widgets
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
The KDDockWidgets software is Copyright (C) 2018-2021 Klaralvdalens Datakonsult AB.
|
The KDDockWidgets software is Copyright (C) 2018-2022 Klaralvdalens Datakonsult AB.
|
||||||
|
|
||||||
You may use, distribute and copy the KDDockWidgets software under the terms of
|
You may use, distribute and copy the KDDockWidgets software under the terms of
|
||||||
the GNU General Public License version 2 or under the terms of GNU General
|
the GNU General Public License version 2 or under the terms of GNU General
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
KDDockWidgets is (C) 2018-2021, Klarälvdalens Datakonsult AB, and is licensed
|
KDDockWidgets is (C) 2018-2022, Klarälvdalens Datakonsult AB, and is licensed
|
||||||
according to the terms of the:
|
according to the terms of the:
|
||||||
GNU General Public License version 2.0 (see LICENSES/GPL-2.0-only.txt)
|
GNU General Public License version 2.0 (see LICENSES/GPL-2.0-only.txt)
|
||||||
or the
|
or the
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ Supported Qt versions and toolchains
|
|||||||
=====================================
|
=====================================
|
||||||
|
|
||||||
KDDockWidgets for QtQuick requires a C++17 capable compiler and either
|
KDDockWidgets for QtQuick requires a C++17 capable compiler and either
|
||||||
Qt >= 5.15.0 or Qt >= 6.2.
|
Qt >= 5.15.2 or Qt >= 6.2.1
|
||||||
|
|
||||||
|
|
||||||
TROUBLESHOOTING
|
TROUBLESHOOTING
|
||||||
|
|||||||
52
README.md
52
README.md
@@ -82,7 +82,8 @@ Open a terminal capable of building Qt5 applications.
|
|||||||
Make sure you have cmake, ninja, compiler, Qt, etc in PATH.
|
Make sure you have cmake, ninja, compiler, Qt, etc in PATH.
|
||||||
|
|
||||||
Adapt the instructions to suit your cmake generator and operating system.
|
Adapt the instructions to suit your cmake generator and operating system.
|
||||||
Build and install the KDDockWidgets framework:
|
Build and install the KDDockWidgets framework (see the "Building" section
|
||||||
|
below for more info):
|
||||||
|
|
||||||
```
|
```
|
||||||
$ cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/path/where/to/install ../path/to/kddockwidgets
|
$ cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/path/where/to/install ../path/to/kddockwidgets
|
||||||
@@ -104,14 +105,29 @@ and `/usr/local/KDAB/KDDockWidgets-<version>` on non-Windows.
|
|||||||
|
|
||||||
You can change the installation location by passing the option `-DCMAKE_INSTALL_PREFIX=/install/path` to cmake.
|
You can change the installation location by passing the option `-DCMAKE_INSTALL_PREFIX=/install/path` to cmake.
|
||||||
|
|
||||||
|
Building
|
||||||
|
========
|
||||||
|
On Linux distributions make sure to install the qt5 private development packages:
|
||||||
|
|
||||||
|
- SUSE: libqt5-qtbase-private-headers-devel
|
||||||
|
- Ubuntu, debian-based: qtbase5-private-dev
|
||||||
|
- Fedora, redhat-based: qt5-qtbase-private-devel
|
||||||
|
- others: consult your distro
|
||||||
|
|
||||||
Using
|
Using
|
||||||
=====
|
=====
|
||||||
From your CMake project, add
|
From your CMake Qt5 project, add
|
||||||
|
|
||||||
```
|
```
|
||||||
find_package(KDDockWidgets CONFIG)
|
find_package(KDDockWidgets CONFIG)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
or for Qt6
|
||||||
|
|
||||||
|
```
|
||||||
|
find_package(KDDockWidgets-qt6 CONFIG)
|
||||||
|
```
|
||||||
|
|
||||||
and link to the imported target `KDAB::kddockwidgets`.
|
and link to the imported target `KDAB::kddockwidgets`.
|
||||||
That's all you need to do (the imported target also brings in the include directories)
|
That's all you need to do (the imported target also brings in the include directories)
|
||||||
|
|
||||||
@@ -128,11 +144,12 @@ Versioning
|
|||||||
|
|
||||||
New features go to master while the stable branch only accepts non-intrusive bug fixes.
|
New features go to master while the stable branch only accepts non-intrusive bug fixes.
|
||||||
|
|
||||||
We'll try to remain source-compatible across versions. API will get a deprecation
|
We'll try to remain source and binary compatible across versions. API will get
|
||||||
notice before being removed in the next version. Note that this source-compatibility
|
a deprecation notice before being removed in the next version. Note that this
|
||||||
effort is only for the public API. Private API (headers ending in _p.h) might change so you
|
compatibility effort is only for the public API. Private API (headers ending
|
||||||
shouldn't depend on them. Private API is only exposed so more advanced users can
|
in _p.h) might change so you shouldn't depend on them. Private API is only
|
||||||
override, for example `paintEvent()`, and not so they can change internal business logic.
|
exposed so more advanced users can override, for example `paintEvent()`, and
|
||||||
|
not so they can change internal business logic.
|
||||||
|
|
||||||
We don't promise or test binary compatibility. It's advised that you recompile
|
We don't promise or test binary compatibility. It's advised that you recompile
|
||||||
your application whenever updating KDDW.
|
your application whenever updating KDDW.
|
||||||
@@ -140,17 +157,28 @@ your application whenever updating KDDW.
|
|||||||
|
|
||||||
Supported Qt versions and toolchains
|
Supported Qt versions and toolchains
|
||||||
=====================================
|
=====================================
|
||||||
KDDockWidgets requires Qt5 >= 5.12 or Qt6 >= 6.1.
|
KDDockWidgets requires Qt 5.15.x or Qt6 >= 6.2.
|
||||||
The QtQuick support requires Qt5 >= 5.15 or Qt6 >= 6.1.
|
|
||||||
|
|
||||||
|
|
||||||
Regarding compilers, whatever toolchain is able to build Qt 5.9 should also be
|
Styling
|
||||||
fine. Note however that MSVC 2013 isn't supported anymore due to compiler crashes.
|
========
|
||||||
|
|
||||||
|
Almost all private widgets used by KDDW can be derived by the user to give them
|
||||||
|
a custom look. That's done by providing your own FrameworkWidgetFactory. Run
|
||||||
|
"kddockwidgets_example -p" to see that in action.
|
||||||
|
|
||||||
|
Qt StyleSheets are not, and will not, be supported. See the comments in
|
||||||
|
`examples/dockwidgets/MyTitleBar_CSS.h` for why. You can however use some minimal
|
||||||
|
CSS, as shown in that example, just don't report bugs about it.
|
||||||
|
|
||||||
|
Warning: When using private headers, be sure to rebuild your application whenever you
|
||||||
|
update to a new KDDW version. Binary compatibility is only kept when using public
|
||||||
|
headers.
|
||||||
|
|
||||||
|
|
||||||
Licensing
|
Licensing
|
||||||
=========
|
=========
|
||||||
KDDockWidgets is (C) 2019-2021, Klarälvdalens Datakonsult AB, and is licensed according to
|
KDDockWidgets is (C) 2019-2022, Klarälvdalens Datakonsult AB, and is licensed according to
|
||||||
the terms of the [GPL 2.0](LICENSES/GPL-2.0-only.txt) or [GPL 3.0](LICENSES/GPL-3.0-only.txt).
|
the terms of the [GPL 2.0](LICENSES/GPL-2.0-only.txt) or [GPL 3.0](LICENSES/GPL-3.0-only.txt).
|
||||||
|
|
||||||
Contact KDAB at <info@kdab.com> to inquire about commercial licensing.
|
Contact KDAB at <info@kdab.com> to inquire about commercial licensing.
|
||||||
|
|||||||
29
appveyor.yml
29
appveyor.yml
@@ -19,6 +19,8 @@ skip_tags: false
|
|||||||
|
|
||||||
# Build worker image
|
# Build worker image
|
||||||
image:
|
image:
|
||||||
|
- Ubuntu
|
||||||
|
- macos
|
||||||
- Visual Studio 2019
|
- Visual Studio 2019
|
||||||
|
|
||||||
# scripts that are called at very beginning, before repo cloning
|
# scripts that are called at very beginning, before repo cloning
|
||||||
@@ -36,16 +38,28 @@ platform:
|
|||||||
# build Configuration, i.e. Debug, Release, etc.
|
# build Configuration, i.e. Debug, Release, etc.
|
||||||
configuration:
|
configuration:
|
||||||
- Release
|
- Release
|
||||||
|
- Debug
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
|
- sh: if [ "`uname -s`" = "Darwin" ]; then brew install ninja; else sudo apt-get -y install mesa-common-dev libglu1-mesa-dev; fi
|
||||||
- set QTDIR=C:\Qt\5.15\msvc2019_64
|
|
||||||
- set PATH=%QTDIR%\bin;%PATH%
|
before_build:
|
||||||
|
- cmd: call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
|
||||||
|
- cmd: set PATH=C:\Qt\5.15\msvc2019_64;%PATH%
|
||||||
|
- sh: if [ "`uname -s`" = "Darwin" ]; then export PATH=$HOME/Qt/5.15/clang_64/bin:$PATH; else export PATH=$HOME/Qt/5.15/gcc_64/bin:$PATH; fi
|
||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
- mkdir build
|
- mkdir build
|
||||||
- cd build
|
- cd build
|
||||||
- cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DKDDockWidgets_TESTS=True -DKDDockWidgets_EXAMPLES=True -DKDDockWidgets_DEVELOPER_MODE=True ..
|
- cmd: cmake -G Ninja -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DKDDockWidgets_TESTS=True -DKDDockWidgets_EXAMPLES=True -DKDDockWidgets_DEVELOPER_MODE=True ..
|
||||||
- nmake
|
- sh: cmake -G Ninja -DCMAKE_BUILD_TYPE=$CONFIGURATION -DKDDockWidgets_TESTS=True -DKDDockWidgets_EXAMPLES=True -DKDDockWidgets_DEVELOPER_MODE=True ..
|
||||||
|
- cmake --build .
|
||||||
|
- cmd: cmake --build . --target install
|
||||||
|
- sh: sudo cmake --build . --target install
|
||||||
|
- cmd: set PATH=.\bin;%PATH%
|
||||||
|
#temporarily disable testing on Windows
|
||||||
|
#- ctest --test-dir .
|
||||||
|
- sh: ctest --test-dir .
|
||||||
|
|
||||||
# to disable automatic builds
|
# to disable automatic builds
|
||||||
#build: off
|
#build: off
|
||||||
@@ -54,11 +68,8 @@ build_script:
|
|||||||
# tests configuration #
|
# tests configuration #
|
||||||
#---------------------------------#
|
#---------------------------------#
|
||||||
|
|
||||||
test_script:
|
|
||||||
- nmake test
|
|
||||||
|
|
||||||
# to disable automatic tests
|
# to disable automatic tests
|
||||||
#test: off
|
test: off
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------#
|
#---------------------------------#
|
||||||
|
|||||||
@@ -203,7 +203,6 @@ function(ECM_GENERATE_PRI_FILE)
|
|||||||
else()
|
else()
|
||||||
set(PRI_TARGET_LIBS "${BASEPATH}/${EGPF_LIB_INSTALL_DIR}")
|
set(PRI_TARGET_LIBS "${BASEPATH}/${EGPF_LIB_INSTALL_DIR}")
|
||||||
endif()
|
endif()
|
||||||
set(PRI_TARGET_DEFINES "")
|
|
||||||
|
|
||||||
set(PRI_FILENAME ${CMAKE_CURRENT_BINARY_DIR}/qt_${PRI_TARGET_BASENAME}.pri)
|
set(PRI_FILENAME ${CMAKE_CURRENT_BINARY_DIR}/qt_${PRI_TARGET_BASENAME}.pri)
|
||||||
if (EGPF_FILENAME_VAR)
|
if (EGPF_FILENAME_VAR)
|
||||||
@@ -211,6 +210,8 @@ function(ECM_GENERATE_PRI_FILE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(PRI_TARGET_MODULE_CONFIG "")
|
set(PRI_TARGET_MODULE_CONFIG "")
|
||||||
|
set(PRI_TARGET_DEFINES "")
|
||||||
|
set(PRI_TARGET_POSTFIX "")
|
||||||
# backward compat: it was not obvious LIB_NAME needs to be a target name,
|
# backward compat: it was not obvious LIB_NAME needs to be a target name,
|
||||||
# and some projects where the target name was not the actual library output name
|
# and some projects where the target name was not the actual library output name
|
||||||
# passed the output name for LIB_NAME, so .name & .module prperties are correctly set.
|
# passed the output name for LIB_NAME, so .name & .module prperties are correctly set.
|
||||||
@@ -220,6 +221,10 @@ function(ECM_GENERATE_PRI_FILE)
|
|||||||
if (target_type STREQUAL "STATIC_LIBRARY")
|
if (target_type STREQUAL "STATIC_LIBRARY")
|
||||||
set(PRI_TARGET_MODULE_CONFIG "staticlib")
|
set(PRI_TARGET_MODULE_CONFIG "staticlib")
|
||||||
endif()
|
endif()
|
||||||
|
get_target_property(target_defs ${EGPF_LIB_NAME} INTERFACE_COMPILE_DEFINITIONS)
|
||||||
|
list(FILTER target_defs EXCLUDE REGEX ^QT_)
|
||||||
|
string(JOIN " " PRI_TARGET_DEFINES "${target_defs}")
|
||||||
|
set(PRI_TARGET_POSTFIX "$<TARGET_PROPERTY:${EGPF_LIB_NAME},$<UPPER_CASE:$<CONFIG>$<$<CONFIG:>:Debug>>_POSTFIX>")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
file(GENERATE
|
file(GENERATE
|
||||||
@@ -230,8 +235,8 @@ QT.${PRI_TARGET_BASENAME}.MAJOR_VERSION = ${PRI_VERSION_MAJOR}
|
|||||||
QT.${PRI_TARGET_BASENAME}.MINOR_VERSION = ${PRI_VERSION_MINOR}
|
QT.${PRI_TARGET_BASENAME}.MINOR_VERSION = ${PRI_VERSION_MINOR}
|
||||||
QT.${PRI_TARGET_BASENAME}.PATCH_VERSION = ${PRI_VERSION_PATCH}
|
QT.${PRI_TARGET_BASENAME}.PATCH_VERSION = ${PRI_VERSION_PATCH}
|
||||||
QT.${PRI_TARGET_BASENAME}.name = ${PRI_TARGET_LIBNAME}
|
QT.${PRI_TARGET_BASENAME}.name = ${PRI_TARGET_LIBNAME}
|
||||||
QT.${PRI_TARGET_BASENAME}.module = ${PRI_TARGET_LIBNAME}
|
QT.${PRI_TARGET_BASENAME}.module = ${PRI_TARGET_LIBNAME}${PRI_TARGET_POSTFIX}
|
||||||
QT.${PRI_TARGET_BASENAME}.defines = ${PRI_TARGET_DEFINES}
|
QT.${PRI_TARGET_BASENAME}.DEFINES = ${PRI_TARGET_DEFINES}
|
||||||
QT.${PRI_TARGET_BASENAME}.includes = ${PRI_TARGET_INCLUDES}
|
QT.${PRI_TARGET_BASENAME}.includes = ${PRI_TARGET_INCLUDES}
|
||||||
QT.${PRI_TARGET_BASENAME}.private_includes =
|
QT.${PRI_TARGET_BASENAME}.private_includes =
|
||||||
QT.${PRI_TARGET_BASENAME}.libs = ${PRI_TARGET_LIBS}
|
QT.${PRI_TARGET_BASENAME}.libs = ${PRI_TARGET_LIBS}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ if(NOT INSTALL_DATADIR)
|
|||||||
set(INSTALL_DATADIR ${CMAKE_INSTALL_DATADIR})
|
set(INSTALL_DATADIR ${CMAKE_INSTALL_DATADIR})
|
||||||
endif()
|
endif()
|
||||||
if(NOT INSTALL_DOC_DIR)
|
if(NOT INSTALL_DOC_DIR)
|
||||||
set(INSTALL_DOC_DIR ${CMAKE_INSTALL_DOCDIR})
|
set(INSTALL_DOC_DIR ${CMAKE_INSTALL_DOCDIR}${KDDockWidgets_LIBRARY_QTID})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||||
|
|||||||
154
cmake/KDAB/modules/FindPySide2.cmake
Normal file
154
cmake/KDAB/modules/FindPySide2.cmake
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
#
|
||||||
|
# SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
#
|
||||||
|
|
||||||
|
# PYSIDE_BASEDIR - Top of the PySide2 installation
|
||||||
|
# PYSIDE_INCLUDE_DIR - Directories to include to use PySide2
|
||||||
|
# PYSIDE_LIBRARY - Files to link against to use PySide2
|
||||||
|
# PYSIDE_TYPESYSTEMS - Type system files that should be used by other bindings extending PySide2
|
||||||
|
#
|
||||||
|
# You can install PySide2 from Qt repository with
|
||||||
|
# pip3 install --index-url=https://download.qt.io/official_releases/QtForPython --trusted-host download.qt.io pyside2
|
||||||
|
|
||||||
|
find_package(PkgConfig)
|
||||||
|
if(PKG_CONFIG_FOUND)
|
||||||
|
pkg_check_modules(PYSIDE2_PRIV QUIET pyside2)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(PYSIDE2_FOUND FALSE)
|
||||||
|
|
||||||
|
if(PYSIDE2_PRIV_FOUND)
|
||||||
|
set(PYSIDE2_FOUND TRUE)
|
||||||
|
message(STATUS "Using PySide2 found in the system!")
|
||||||
|
pkg_get_variable(SHIBOKEN_BINARY
|
||||||
|
pyside2
|
||||||
|
generator_location
|
||||||
|
)
|
||||||
|
pkg_get_variable(PYSIDE2_BASEDIR
|
||||||
|
pyside2
|
||||||
|
typesystemdir
|
||||||
|
)
|
||||||
|
pkg_get_variable(PYSIDE_INCLUDE_DIR
|
||||||
|
pyside2
|
||||||
|
includedir
|
||||||
|
)
|
||||||
|
set(PYSIDE_TYPESYSTEMS ${PYSIDE2_BASEDIR})
|
||||||
|
set(PYSIDE2_SO_VERSION ${PYSIDE2_PRIV_VERSION})
|
||||||
|
set(PYSIDE_LIBRARY ${PYSIDE2_PRIV_LINK_LIBRARIES})
|
||||||
|
list(GET PYSIDE_LIBRARY 0 PYSIDE_LIBRARY)
|
||||||
|
else()
|
||||||
|
# extract python library basename
|
||||||
|
list(GET Python3_LIBRARIES 0 PYTHON_LIBRARY_FILENAME)
|
||||||
|
get_filename_component(PYTHON_LIBRARY_FILENAME ${PYTHON_LIBRARY_FILENAME} NAME)
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
||||||
|
import os, sys
|
||||||
|
try:
|
||||||
|
import PySide2.QtCore as QtCore
|
||||||
|
print(os.path.dirname(QtCore.__file__))
|
||||||
|
except Exception as error:
|
||||||
|
print(error, file=sys.stderr)
|
||||||
|
exit()
|
||||||
|
"
|
||||||
|
OUTPUT_VARIABLE PYSIDE2_BASEDIR
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
if(NOT PYSIDE2_BASEDIR)
|
||||||
|
message(FATAL_ERROR "The PySide2 module could not be imported. Make sure you have it installed by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(PYSIDE_BASEDIR ${PYSIDE2_BASEDIR} CACHE PATH "Top level install of PySide2" FORCE)
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
||||||
|
import os
|
||||||
|
import PySide2.QtCore as QtCore
|
||||||
|
print(os.path.basename(QtCore.__file__).split('.', 1)[1])
|
||||||
|
"
|
||||||
|
OUTPUT_VARIABLE PYSIDE2_SUFFIX
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
||||||
|
import os
|
||||||
|
import PySide2.QtCore as QtCore
|
||||||
|
print(';'.join(map(str, QtCore.__version_info__)))
|
||||||
|
"
|
||||||
|
OUTPUT_VARIABLE PYSIDE2_SO_VERSION
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
list(GET PYSIDE2_SO_VERSION 0 PYSIDE2_SO_MACRO_VERSION)
|
||||||
|
list(GET PYSIDE2_SO_VERSION 1 PYSIDE2_SO_MICRO_VERSION)
|
||||||
|
list(GET PYSIDE2_SO_VERSION 2 PYSIDE2_SO_MINOR_VERSION)
|
||||||
|
string(REPLACE ";" "." PYSIDE2_SO_VERSION "${PYSIDE2_SO_VERSION}")
|
||||||
|
|
||||||
|
if(NOT APPLE)
|
||||||
|
set(PYSIDE2_SUFFIX "${PYSIDE2_SUFFIX}.${PYSIDE2_SO_MACRO_VERSION}.${PYSIDE2_SO_MICRO_VERSION}")
|
||||||
|
else()
|
||||||
|
string(REPLACE ".so" "" PYSIDE2_SUFFIX ${PYSIDE2_SUFFIX})
|
||||||
|
set(PYSIDE2_SUFFIX "${PYSIDE2_SUFFIX}.${PYSIDE2_SO_MACRO_VERSION}.${PYSIDE2_SO_MICRO_VERSION}.dylib")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(PYSIDE2_FOUND TRUE)
|
||||||
|
message(STATUS "PySide2 base dir: ${PYSIDE2_BASEDIR}")
|
||||||
|
message(STATUS "PySide2 suffix: ${PYSIDE2_SUFFIX}")
|
||||||
|
|
||||||
|
#PySide
|
||||||
|
#===============================================================================
|
||||||
|
find_path(PYSIDE_INCLUDE_DIR
|
||||||
|
pyside.h
|
||||||
|
PATHS ${PYSIDE2_BASEDIR}/include ${PYSIDE_CUSTOM_PREFIX}/include/PySide2
|
||||||
|
NO_DEFAULT_PATH)
|
||||||
|
|
||||||
|
# Platform specific library names
|
||||||
|
if(MSVC)
|
||||||
|
set(PYSIDE_LIBRARY_BASENAMES "pyside2.abi3.lib")
|
||||||
|
elseif(CYGWIN)
|
||||||
|
set(PYSIDE_LIBRARY_BASENAMES "")
|
||||||
|
elseif(WIN32)
|
||||||
|
set(PYSIDE_LIBRARY_BASENAMES "libpyside2.${PYSIDE2_SUFFIX}")
|
||||||
|
else()
|
||||||
|
set(PYSIDE_LIBRARY_BASENAMES "libpyside2.${PYSIDE2_SUFFIX}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_file(PYSIDE_LIBRARY
|
||||||
|
${PYSIDE_LIBRARY_BASENAMES}
|
||||||
|
PATHS ${PYSIDE2_BASEDIR} ${PYSIDE_CUSTOM_PREFIX}/lib
|
||||||
|
NO_DEFAULT_PATH)
|
||||||
|
|
||||||
|
find_path(PYSIDE_TYPESYSTEMS
|
||||||
|
typesystem_core.xml
|
||||||
|
PATHS ${PYSIDE2_BASEDIR}/typesystems ${PYSIDE_CUSTOM_PREFIX}/share/PySide2/typesystems
|
||||||
|
NO_DEFAULT_PATH)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PYSIDE2_FOUND)
|
||||||
|
message(STATUS "PySide include dir: ${PYSIDE_INCLUDE_DIR}")
|
||||||
|
message(STATUS "PySide library: ${PYSIDE_LIBRARY}")
|
||||||
|
message(STATUS "PySide typesystems: ${PYSIDE_TYPESYSTEMS}")
|
||||||
|
message(STATUS "PySide2 version: ${PYSIDE2_SO_VERSION}")
|
||||||
|
|
||||||
|
# Create PySide2 target
|
||||||
|
add_library(PySide2::pyside2 SHARED IMPORTED GLOBAL)
|
||||||
|
if(MSVC)
|
||||||
|
set_property(TARGET PySide2::pyside2 PROPERTY IMPORTED_IMPLIB ${PYSIDE_LIBRARY})
|
||||||
|
endif()
|
||||||
|
set_property(TARGET PySide2::pyside2 PROPERTY IMPORTED_LOCATION ${PYSIDE_LIBRARY})
|
||||||
|
set_property(TARGET PySide2::pyside2 APPEND PROPERTY
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES
|
||||||
|
${PYSIDE_INCLUDE_DIR}
|
||||||
|
${PYSIDE_INCLUDE_DIR}/QtCore/
|
||||||
|
${PYSIDE_INCLUDE_DIR}/QtGui/
|
||||||
|
${PYSIDE_INCLUDE_DIR}/QtWidgets/
|
||||||
|
${Python3_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_package_handle_standard_args(PySide2
|
||||||
|
REQUIRED_VARS PYSIDE2_BASEDIR PYSIDE_INCLUDE_DIR PYSIDE_LIBRARY PYSIDE_TYPESYSTEMS
|
||||||
|
VERSION_VAR PYSIDE2_SO_VERSION
|
||||||
|
)
|
||||||
@@ -1,10 +1,8 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
#
|
|
||||||
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
|
||||||
#
|
#
|
||||||
|
|
||||||
# PYSIDE_BASEDIR - Top of the PySide6 installation
|
# PYSIDE_BASEDIR - Top of the PySide6 installation
|
||||||
@@ -23,25 +21,28 @@ get_filename_component(PYTHON_LIBRARY_FILENAME ${PYTHON_LIBRARY_FILENAME} NAME)
|
|||||||
|
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
||||||
import os, sys
|
import os, sys
|
||||||
try:
|
try:
|
||||||
import PySide6.QtCore as QtCore
|
import PySide6.QtCore as QtCore
|
||||||
print(os.path.dirname(QtCore.__file__))
|
print(os.path.dirname(QtCore.__file__))
|
||||||
except Exception as error:
|
except Exception as error:
|
||||||
print(error, file=sys.stderr)
|
print(error, file=sys.stderr)
|
||||||
exit()
|
exit()
|
||||||
"
|
"
|
||||||
OUTPUT_VARIABLE PYSIDE6_BASEDIR
|
OUTPUT_VARIABLE PYSIDE6_BASEDIR
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
)
|
)
|
||||||
|
if(NOT PYSIDE6_BASEDIR)
|
||||||
|
message(FATAL_ERROR "The PySide6 module could not be imported. Make sure you have it installed by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(PYSIDE6_BASEDIR)
|
if(PYSIDE6_BASEDIR)
|
||||||
set(PYSIDE_BASEDIR ${PYSIDE6_BASEDIR} CACHE PATH "Top level install of PySide6" FORCE)
|
set(PYSIDE_BASEDIR ${PYSIDE6_BASEDIR} CACHE PATH "Top level install of PySide6" FORCE)
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
||||||
import os
|
import os
|
||||||
import PySide6.QtCore as QtCore
|
import PySide6.QtCore as QtCore
|
||||||
print(os.path.basename(QtCore.__file__).split('.', 1)[1])
|
print(os.path.basename(QtCore.__file__).split('.', 1)[1])
|
||||||
"
|
"
|
||||||
OUTPUT_VARIABLE PYSIDE6_SUFFIX
|
OUTPUT_VARIABLE PYSIDE6_SUFFIX
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
@@ -49,9 +50,9 @@ if(PYSIDE6_BASEDIR)
|
|||||||
|
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
||||||
import os
|
import os
|
||||||
import PySide6.QtCore as QtCore
|
import PySide6.QtCore as QtCore
|
||||||
print(';'.join(map(str, QtCore.__version_info__)))
|
print(';'.join(map(str, QtCore.__version_info__)))
|
||||||
"
|
"
|
||||||
OUTPUT_VARIABLE PYSIDE6_SO_VERSION
|
OUTPUT_VARIABLE PYSIDE6_SO_VERSION
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
@@ -63,43 +64,43 @@ if(PYSIDE6_BASEDIR)
|
|||||||
|
|
||||||
if(NOT APPLE)
|
if(NOT APPLE)
|
||||||
set(PYSIDE6_SUFFIX "${PYSIDE6_SUFFIX}.${PYSIDE6_SO_MACRO_VERSION}.${PYSIDE6_SO_MICRO_VERSION}")
|
set(PYSIDE6_SUFFIX "${PYSIDE6_SUFFIX}.${PYSIDE6_SO_MACRO_VERSION}.${PYSIDE6_SO_MICRO_VERSION}")
|
||||||
else()
|
else()
|
||||||
string(REPLACE ".so" "" PYSIDE6_SUFFIX ${PYSIDE6_SUFFIX})
|
string(REPLACE ".so" "" PYSIDE6_SUFFIX ${PYSIDE6_SUFFIX})
|
||||||
set(PYSIDE6_SUFFIX "${PYSIDE6_SUFFIX}.${PYSIDE6_SO_MACRO_VERSION}.${PYSIDE6_SO_MICRO_VERSION}.dylib")
|
set(PYSIDE6_SUFFIX "${PYSIDE6_SUFFIX}.${PYSIDE6_SO_MACRO_VERSION}.${PYSIDE6_SO_MICRO_VERSION}.dylib")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(PYSIDE6_FOUND TRUE)
|
set(PYSIDE6_FOUND TRUE)
|
||||||
message(STATUS "PySide6 base dir: ${PYSIDE6_BASEDIR}" )
|
message(STATUS "PySide6 base dir: ${PYSIDE6_BASEDIR}")
|
||||||
message(STATUS "PySide6 suffix: ${PYSIDE6_SUFFIX}")
|
message(STATUS "PySide6 suffix: ${PYSIDE6_SUFFIX}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (PYSIDE6_FOUND)
|
if(PYSIDE6_FOUND)
|
||||||
#PySide
|
#PySide
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
find_path(PYSIDE_INCLUDE_DIR
|
find_path(PYSIDE_INCLUDE_DIR
|
||||||
pyside.h
|
pyside.h
|
||||||
PATHS ${PYSIDE6_BASEDIR}/include ${PYSIDE6_CUSTOM_PREFIX}/include/PySide6
|
PATHS ${PYSIDE6_BASEDIR}/include ${PYSIDE_CUSTOM_PREFIX}/include/PySide6
|
||||||
NO_DEFAULT_PATH)
|
NO_DEFAULT_PATH)
|
||||||
|
|
||||||
# Platform specific library names
|
# Platform specific library names
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
SET(PYSIDE_LIBRARY_BASENAMES "pyside6.abi3.lib")
|
set(PYSIDE_LIBRARY_BASENAMES "pyside6.abi3.lib")
|
||||||
elseif(CYGWIN)
|
elseif(CYGWIN)
|
||||||
SET(PYSIDE_LIBRARY_BASENAMES "")
|
set(PYSIDE_LIBRARY_BASENAMES "")
|
||||||
elseif(WIN32)
|
elseif(WIN32)
|
||||||
SET(PYSIDE_LIBRARY_BASENAMES "libpyside6.${PYSIDE6_SUFFIX}")
|
set(PYSIDE_LIBRARY_BASENAMES "libpyside6.${PYSIDE6_SUFFIX}")
|
||||||
else()
|
else()
|
||||||
SET(PYSIDE_LIBRARY_BASENAMES "libpyside6.${PYSIDE6_SUFFIX}")
|
set(PYSIDE_LIBRARY_BASENAMES "libpyside6.${PYSIDE6_SUFFIX}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_file(PYSIDE_LIBRARY
|
find_file(PYSIDE_LIBRARY
|
||||||
${PYSIDE_LIBRARY_BASENAMES}
|
${PYSIDE_LIBRARY_BASENAMES}
|
||||||
PATHS ${PYSIDE6_BASEDIR} ${PYSIDE6_CUSTOM_PREFIX}/lib
|
PATHS ${PYSIDE6_BASEDIR} ${PYSIDE_CUSTOM_PREFIX}/lib
|
||||||
NO_DEFAULT_PATH)
|
NO_DEFAULT_PATH)
|
||||||
|
|
||||||
find_path(PYSIDE_TYPESYSTEMS
|
find_path(PYSIDE_TYPESYSTEMS
|
||||||
typesystem_core.xml
|
typesystem_core.xml
|
||||||
PATHS ${PYSIDE6_BASEDIR}/typesystems ${PYSIDE6_CUSTOM_PREFIX}/share/PySide6/typesystems
|
PATHS ${PYSIDE6_BASEDIR}/typesystems ${PYSIDE_CUSTOM_PREFIX}/share/PySide6/typesystems
|
||||||
NO_DEFAULT_PATH)
|
NO_DEFAULT_PATH)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -112,11 +113,9 @@ if(PYSIDE6_FOUND)
|
|||||||
# Create PySide6 target
|
# Create PySide6 target
|
||||||
add_library(PySide6::pyside6 SHARED IMPORTED GLOBAL)
|
add_library(PySide6::pyside6 SHARED IMPORTED GLOBAL)
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
set_property(TARGET PySide6::pyside6 PROPERTY
|
set_property(TARGET PySide6::pyside6 PROPERTY IMPORTED_IMPLIB ${PYSIDE_LIBRARY})
|
||||||
IMPORTED_IMPLIB ${PYSIDE_LIBRARY})
|
|
||||||
endif()
|
endif()
|
||||||
set_property(TARGET PySide6::pyside6 PROPERTY
|
set_property(TARGET PySide6::pyside6 PROPERTY IMPORTED_LOCATION ${PYSIDE_LIBRARY})
|
||||||
IMPORTED_LOCATION ${PYSIDE_LIBRARY})
|
|
||||||
set_property(TARGET PySide6::pyside6 APPEND PROPERTY
|
set_property(TARGET PySide6::pyside6 APPEND PROPERTY
|
||||||
INTERFACE_INCLUDE_DIRECTORIES
|
INTERFACE_INCLUDE_DIRECTORIES
|
||||||
${PYSIDE_INCLUDE_DIR}
|
${PYSIDE_INCLUDE_DIR}
|
||||||
@@ -127,7 +126,6 @@ if(PYSIDE6_FOUND)
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
find_package_handle_standard_args(PySide6
|
find_package_handle_standard_args(PySide6
|
||||||
REQUIRED_VARS PYSIDE6_BASEDIR PYSIDE_INCLUDE_DIR PYSIDE_LIBRARY PYSIDE_TYPESYSTEMS
|
REQUIRED_VARS PYSIDE6_BASEDIR PYSIDE_INCLUDE_DIR PYSIDE_LIBRARY PYSIDE_TYPESYSTEMS
|
||||||
VERSION_VAR PYSIDE6_SO_VERSION
|
VERSION_VAR PYSIDE6_SO_VERSION
|
||||||
@@ -1,10 +1,8 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
#
|
|
||||||
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
|
||||||
#
|
#
|
||||||
|
|
||||||
# SHIBOKEN_INCLUDE_DIR - Directories to include to use SHIBOKEN
|
# SHIBOKEN_INCLUDE_DIR - Directories to include to use SHIBOKEN
|
||||||
@@ -17,7 +15,7 @@
|
|||||||
|
|
||||||
find_package(PkgConfig)
|
find_package(PkgConfig)
|
||||||
if(PKG_CONFIG_FOUND)
|
if(PKG_CONFIG_FOUND)
|
||||||
pkg_check_modules(SHIBOKEN2_PRIV QUIET shiboken2)
|
pkg_check_modules(SHIBOKEN2_PRIV QUIET shiboken2)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(SHIBOKEN_FOUND FALSE)
|
set(SHIBOKEN_FOUND FALSE)
|
||||||
@@ -42,33 +40,39 @@ if(SHIBOKEN2_PRIV_FOUND)
|
|||||||
else()
|
else()
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
||||||
import os
|
import os
|
||||||
try:
|
try:
|
||||||
import shiboken2_generator
|
import shiboken2_generator
|
||||||
print(shiboken2_generator.__path__[0])
|
print(shiboken2_generator.__path__[0])
|
||||||
except:
|
except:
|
||||||
exit()
|
exit()
|
||||||
"
|
"
|
||||||
OUTPUT_VARIABLE SHIBOKEN_GENERATOR_BASEDIR
|
OUTPUT_VARIABLE SHIBOKEN_GENERATOR_BASEDIR
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
)
|
)
|
||||||
|
if(NOT SHIBOKEN_GENERATOR_BASEDIR)
|
||||||
|
message(FATAL_ERROR "The shiboken2_generator module could not be imported. Make sure you have it installed by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"")
|
||||||
|
endif()
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
||||||
import os
|
import os
|
||||||
try:
|
try:
|
||||||
import shiboken2
|
import shiboken2
|
||||||
print(shiboken2.__path__[0])
|
print(shiboken2.__path__[0])
|
||||||
except:
|
except:
|
||||||
exit()
|
exit()
|
||||||
"
|
"
|
||||||
OUTPUT_VARIABLE SHIBOKEN_BASEDIR
|
OUTPUT_VARIABLE SHIBOKEN_BASEDIR
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
)
|
)
|
||||||
|
if(NOT SHIBOKEN_BASEDIR)
|
||||||
|
message(FATAL_ERROR "The shiboken2 module could not be imported. Make sure you have it installed by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"")
|
||||||
|
endif()
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
||||||
import os
|
import os
|
||||||
import shiboken2
|
import shiboken2
|
||||||
print(';'.join(filter(None, map(str, shiboken2.__version_info__))))
|
print(';'.join(filter(None, map(str, shiboken2.__version_info__))))
|
||||||
"
|
"
|
||||||
OUTPUT_VARIABLE SHIBOKEN_VERSION
|
OUTPUT_VARIABLE SHIBOKEN_VERSION
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
@@ -84,32 +88,33 @@ else()
|
|||||||
|
|
||||||
if(SHIBOKEN_BASEDIR)
|
if(SHIBOKEN_BASEDIR)
|
||||||
find_path(SHIBOKEN_INCLUDE_DIR
|
find_path(SHIBOKEN_INCLUDE_DIR
|
||||||
shiboken.h
|
shiboken.h
|
||||||
PATHS ${SHIBOKEN_CUSTOM_PREFIX} ${SHIBOKEN_GENERATOR_BASEDIR}/include
|
PATHS ${SHIBOKEN_CUSTOM_PREFIX} ${SHIBOKEN_GENERATOR_BASEDIR}/include
|
||||||
NO_DEFAULT_PATH)
|
NO_DEFAULT_PATH
|
||||||
|
)
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
SET(SHIBOKEN_LIBRARY_BASENAMES "shiboken2.abi3.lib")
|
set(SHIBOKEN_LIBRARY_BASENAMES "shiboken2.abi3.lib")
|
||||||
elseif(CYGWIN)
|
elseif(CYGWIN)
|
||||||
SET(SHIBOKEN_LIBRARY_BASENAMES "")
|
set(SHIBOKEN_LIBRARY_BASENAMES "")
|
||||||
elseif(WIN32)
|
elseif(WIN32)
|
||||||
SET(SHIBOKEN_LIBRARY_BASENAMES "libshiboken2.${PYSIDE2_SUFFIX}")
|
set(SHIBOKEN_LIBRARY_BASENAMES "libshiboken2.${PYSIDE2_SUFFIX}")
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
SET(SHIBOKEN_LIBRARY_BASENAMES
|
set(SHIBOKEN_LIBRARY_BASENAMES
|
||||||
libshiboken2.abi3.dylib
|
libshiboken2.abi3.dylib
|
||||||
libshiboken2.abi3.${SHIBOKEN_MACRO_VERSION}.dylib
|
libshiboken2.abi3.${SHIBOKEN_MACRO_VERSION}.dylib
|
||||||
libshiboken2.abi3.${SHIBOKEN_MACRO_VERSION}.${SHIBOKEN_MICRO_VERSION}.dylib
|
libshiboken2.abi3.${SHIBOKEN_MACRO_VERSION}.${SHIBOKEN_MICRO_VERSION}.dylib
|
||||||
libshiboken2.abi3.${SHIBOKEN_VERSION}.dylib
|
libshiboken2.abi3.${SHIBOKEN_VERSION}.dylib
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
SET(SHIBOKEN_LIBRARY_BASENAMES
|
set(SHIBOKEN_LIBRARY_BASENAMES
|
||||||
libshiboken2.abi3.so
|
libshiboken2.abi3.so
|
||||||
libshiboken2.abi3.so.${SHIBOKEN_MACRO_VERSION}
|
libshiboken2.abi3.so.${SHIBOKEN_MACRO_VERSION}
|
||||||
libshiboken2.abi3.so.${SHIBOKEN_MACRO_VERSION}.${SHIBOKEN_MICRO_VERSION}
|
libshiboken2.abi3.so.${SHIBOKEN_MACRO_VERSION}.${SHIBOKEN_MICRO_VERSION}
|
||||||
libshiboken2.abi3.so.${SHIBOKEN_VERSION}
|
libshiboken2.abi3.so.${SHIBOKEN_VERSION}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT SHIBOKEN_INCLUDE_DIR)
|
if(NOT SHIBOKEN_INCLUDE_DIR)
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
set(SHIBOKEN_SEARCH_PATHS ${SHIBOKEN_CUSTOM_PREFIX})
|
set(SHIBOKEN_SEARCH_PATHS ${SHIBOKEN_CUSTOM_PREFIX})
|
||||||
@@ -126,14 +131,13 @@ else()
|
|||||||
NO_DEFAULT_PATH
|
NO_DEFAULT_PATH
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
if (SHIBOKEN_INCLUDE_DIR AND SHIBOKEN_LIBRARY AND SHIBOKEN_BINARY)
|
if(SHIBOKEN_INCLUDE_DIR AND SHIBOKEN_LIBRARY AND SHIBOKEN_BINARY)
|
||||||
set(SHIBOKEN_FOUND TRUE)
|
set(SHIBOKEN_FOUND TRUE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(SHIBOKEN_FOUND)
|
if(SHIBOKEN_FOUND)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
# On Windows we must link to python3.dll that is a small library that links against python3x.dll
|
# On Windows we must link to python3.dll that is a small library that links against python3x.dll
|
||||||
# that allow us to choose any python3x.dll at runtime
|
# that allow us to choose any python3x.dll at runtime
|
||||||
@@ -150,12 +154,12 @@ else()
|
|||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
# On Linux and MacOs our modules should not link with any python library
|
# On Linux and MacOs our modules should not link with any python library
|
||||||
# that must be handled by the main process
|
# that must be handled by the main process
|
||||||
set(PYTHON_LIMITED_LIBRARIES "")
|
set(PYTHON_LIMITED_LIBRARIES "")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if (SHIBOKEN_FOUND)
|
if(SHIBOKEN_FOUND)
|
||||||
message(STATUS "Shiboken include dir: ${SHIBOKEN_INCLUDE_DIR}")
|
message(STATUS "Shiboken include dir: ${SHIBOKEN_INCLUDE_DIR}")
|
||||||
message(STATUS "Shiboken library: ${SHIBOKEN_LIBRARY}")
|
message(STATUS "Shiboken library: ${SHIBOKEN_LIBRARY}")
|
||||||
message(STATUS "Shiboken binary: ${SHIBOKEN_BINARY}")
|
message(STATUS "Shiboken binary: ${SHIBOKEN_BINARY}")
|
||||||
@@ -167,17 +171,17 @@ if (SHIBOKEN_FOUND)
|
|||||||
set_property(TARGET Shiboken2::libshiboken PROPERTY
|
set_property(TARGET Shiboken2::libshiboken PROPERTY
|
||||||
IMPORTED_IMPLIB ${SHIBOKEN_LIBRARY})
|
IMPORTED_IMPLIB ${SHIBOKEN_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
set_property(TARGET Shiboken2::libshiboken PROPERTY
|
set_property(TARGET Shiboken2::libshiboken PROPERTY IMPORTED_LOCATION ${SHIBOKEN_LIBRARY})
|
||||||
IMPORTED_LOCATION ${SHIBOKEN_LIBRARY})
|
|
||||||
set_property(TARGET Shiboken2::libshiboken APPEND PROPERTY
|
set_property(TARGET Shiboken2::libshiboken APPEND PROPERTY
|
||||||
INTERFACE_INCLUDE_DIRECTORIES ${SHIBOKEN_INCLUDE_DIR} ${Python3_INCLUDE_DIRS})
|
INTERFACE_INCLUDE_DIRECTORIES ${SHIBOKEN_INCLUDE_DIR} ${Python3_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
set_property(TARGET Shiboken2::libshiboken APPEND PROPERTY
|
set_property(TARGET Shiboken2::libshiboken APPEND PROPERTY
|
||||||
INTERFACE_LINK_LIBRARIES ${PYTHON_LIMITED_LIBRARIES})
|
INTERFACE_LINK_LIBRARIES ${PYTHON_LIMITED_LIBRARIES}
|
||||||
|
)
|
||||||
|
|
||||||
# Generator target
|
# Generator target
|
||||||
add_executable(Shiboken2::shiboken IMPORTED GLOBAL)
|
add_executable(Shiboken2::shiboken IMPORTED GLOBAL)
|
||||||
set_property(TARGET Shiboken2::shiboken PROPERTY
|
set_property(TARGET Shiboken2::shiboken PROPERTY IMPORTED_LOCATION ${SHIBOKEN_BINARY})
|
||||||
IMPORTED_LOCATION ${SHIBOKEN_BINARY})
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package_handle_standard_args(Shiboken2
|
find_package_handle_standard_args(Shiboken2
|
||||||
@@ -1,10 +1,8 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
#
|
|
||||||
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
|
||||||
#
|
#
|
||||||
|
|
||||||
# SHIBOKEN_INCLUDE_DIR - Directories to include to use SHIBOKEN
|
# SHIBOKEN_INCLUDE_DIR - Directories to include to use SHIBOKEN
|
||||||
@@ -15,38 +13,43 @@
|
|||||||
# You can install Shiboken from Qt repository with
|
# You can install Shiboken from Qt repository with
|
||||||
# pip3 install --index-url=https://download.qt.io/official_releases/QtForPython --trusted-host download.qt.io shiboken6-generator
|
# pip3 install --index-url=https://download.qt.io/official_releases/QtForPython --trusted-host download.qt.io shiboken6-generator
|
||||||
|
|
||||||
|
|
||||||
set(SHIBOKEN_FOUND FALSE)
|
set(SHIBOKEN_FOUND FALSE)
|
||||||
|
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
||||||
import os
|
import os
|
||||||
try:
|
try:
|
||||||
import shiboken6_generator
|
import shiboken6_generator
|
||||||
print(shiboken6_generator.__path__[0])
|
print(shiboken6_generator.__path__[0])
|
||||||
except:
|
except:
|
||||||
exit()
|
exit()
|
||||||
"
|
"
|
||||||
OUTPUT_VARIABLE SHIBOKEN_GENERATOR_BASEDIR
|
OUTPUT_VARIABLE SHIBOKEN_GENERATOR_BASEDIR
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
)
|
)
|
||||||
|
if(NOT SHIBOKEN_GENERATOR_BASEDIR)
|
||||||
|
message(FATAL_ERROR "The shiboken6_generator module could not be imported. Make sure you have it installed by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"")
|
||||||
|
endif()
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
||||||
import os
|
import os
|
||||||
try:
|
try:
|
||||||
import shiboken6
|
import shiboken6
|
||||||
print(shiboken6.__path__[0])
|
print(shiboken6.__path__[0])
|
||||||
except:
|
except:
|
||||||
exit()
|
exit()
|
||||||
"
|
"
|
||||||
OUTPUT_VARIABLE SHIBOKEN_BASEDIR
|
OUTPUT_VARIABLE SHIBOKEN_BASEDIR
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
)
|
)
|
||||||
|
if(NOT SHIBOKEN_BASEDIR)
|
||||||
|
message(FATAL_ERROR "The shiboken6 module could not be imported. Make sure you have it installed by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"")
|
||||||
|
endif()
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
||||||
import os
|
import os
|
||||||
import shiboken6
|
import shiboken6
|
||||||
print(';'.join(filter(None, map(str, shiboken6.__version_info__))))
|
print(';'.join(filter(None, map(str, shiboken6.__version_info__))))
|
||||||
"
|
"
|
||||||
OUTPUT_VARIABLE SHIBOKEN_VERSION
|
OUTPUT_VARIABLE SHIBOKEN_VERSION
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
@@ -62,32 +65,33 @@ message(STATUS "Shiboken custom path: ${SHIBOKEN_CUSTOM_PREFIX}")
|
|||||||
|
|
||||||
if(SHIBOKEN_BASEDIR)
|
if(SHIBOKEN_BASEDIR)
|
||||||
find_path(SHIBOKEN_INCLUDE_DIR
|
find_path(SHIBOKEN_INCLUDE_DIR
|
||||||
shiboken.h
|
shiboken.h
|
||||||
PATHS ${SHIBOKEN_CUSTOM_PREFIX} ${SHIBOKEN_GENERATOR_BASEDIR}/include
|
PATHS ${SHIBOKEN_CUSTOM_PREFIX} ${SHIBOKEN_GENERATOR_BASEDIR}/include
|
||||||
NO_DEFAULT_PATH)
|
NO_DEFAULT_PATH
|
||||||
|
)
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
SET(SHIBOKEN_LIBRARY_BASENAMES "shiboken6.abi3.lib")
|
set(SHIBOKEN_LIBRARY_BASENAMES "shiboken6.abi3.lib")
|
||||||
elseif(CYGWIN)
|
elseif(CYGWIN)
|
||||||
SET(SHIBOKEN_LIBRARY_BASENAMES "")
|
set(SHIBOKEN_LIBRARY_BASENAMES "")
|
||||||
elseif(WIN32)
|
elseif(WIN32)
|
||||||
SET(SHIBOKEN_LIBRARY_BASENAMES "libshiboken6.${PYSIDE2_SUFFIX}")
|
set(SHIBOKEN_LIBRARY_BASENAMES "libshiboken6.${PYSIDE2_SUFFIX}")
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
SET(SHIBOKEN_LIBRARY_BASENAMES
|
set(SHIBOKEN_LIBRARY_BASENAMES
|
||||||
libshiboken6.abi3.dylib
|
libshiboken6.abi3.dylib
|
||||||
libshiboken6.abi3.${SHIBOKEN_MACRO_VERSION}.dylib
|
libshiboken6.abi3.${SHIBOKEN_MACRO_VERSION}.dylib
|
||||||
libshiboken6.abi3.${SHIBOKEN_MACRO_VERSION}.${SHIBOKEN_MICRO_VERSION}.dylib
|
libshiboken6.abi3.${SHIBOKEN_MACRO_VERSION}.${SHIBOKEN_MICRO_VERSION}.dylib
|
||||||
libshiboken6.abi3.${SHIBOKEN_VERSION}.dylib
|
libshiboken6.abi3.${SHIBOKEN_VERSION}.dylib
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
SET(SHIBOKEN_LIBRARY_BASENAMES
|
set(SHIBOKEN_LIBRARY_BASENAMES
|
||||||
libshiboken6.abi3.so
|
libshiboken6.abi3.so
|
||||||
libshiboken6.abi3.so.${SHIBOKEN_MACRO_VERSION}
|
libshiboken6.abi3.so.${SHIBOKEN_MACRO_VERSION}
|
||||||
libshiboken6.abi3.so.${SHIBOKEN_MACRO_VERSION}.${SHIBOKEN_MICRO_VERSION}
|
libshiboken6.abi3.so.${SHIBOKEN_MACRO_VERSION}.${SHIBOKEN_MICRO_VERSION}
|
||||||
libshiboken6.abi3.so.${SHIBOKEN_VERSION}
|
libshiboken6.abi3.so.${SHIBOKEN_VERSION}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT SHIBOKEN_INCLUDE_DIR)
|
if(NOT SHIBOKEN_INCLUDE_DIR)
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
set(SHIBOKEN_SEARCH_PATHS ${SHIBOKEN_CUSTOM_PREFIX})
|
set(SHIBOKEN_SEARCH_PATHS ${SHIBOKEN_CUSTOM_PREFIX})
|
||||||
@@ -104,14 +108,13 @@ if(SHIBOKEN_BASEDIR)
|
|||||||
NO_DEFAULT_PATH
|
NO_DEFAULT_PATH
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
if (SHIBOKEN_INCLUDE_DIR AND SHIBOKEN_LIBRARY AND SHIBOKEN_BINARY)
|
if(SHIBOKEN_INCLUDE_DIR AND SHIBOKEN_LIBRARY AND SHIBOKEN_BINARY)
|
||||||
set(SHIBOKEN_FOUND TRUE)
|
set(SHIBOKEN_FOUND TRUE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(SHIBOKEN_FOUND)
|
if(SHIBOKEN_FOUND)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
# On Windows we must link to python3.dll that is a small library that links against python3x.dll
|
# On Windows we must link to python3.dll that is a small library that links against python3x.dll
|
||||||
# that allow us to choose any python3x.dll at runtime
|
# that allow us to choose any python3x.dll at runtime
|
||||||
@@ -128,12 +131,12 @@ if(MSVC)
|
|||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
# On Linux and MacOs our modules should not link with any python library
|
# On Linux and MacOs our modules should not link with any python library
|
||||||
# that must be handled by the main process
|
# that must be handled by the main process
|
||||||
set(PYTHON_LIMITED_LIBRARIES "")
|
set(PYTHON_LIMITED_LIBRARIES "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (SHIBOKEN_FOUND)
|
if(SHIBOKEN_FOUND)
|
||||||
message(STATUS "Shiboken include dir: ${SHIBOKEN_INCLUDE_DIR}")
|
message(STATUS "Shiboken include dir: ${SHIBOKEN_INCLUDE_DIR}")
|
||||||
message(STATUS "Shiboken library: ${SHIBOKEN_LIBRARY}")
|
message(STATUS "Shiboken library: ${SHIBOKEN_LIBRARY}")
|
||||||
message(STATUS "Shiboken binary: ${SHIBOKEN_BINARY}")
|
message(STATUS "Shiboken binary: ${SHIBOKEN_BINARY}")
|
||||||
@@ -145,17 +148,17 @@ if (SHIBOKEN_FOUND)
|
|||||||
set_property(TARGET Shiboken6::libshiboken PROPERTY
|
set_property(TARGET Shiboken6::libshiboken PROPERTY
|
||||||
IMPORTED_IMPLIB ${SHIBOKEN_LIBRARY})
|
IMPORTED_IMPLIB ${SHIBOKEN_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
set_property(TARGET Shiboken6::libshiboken PROPERTY
|
set_property(TARGET Shiboken6::libshiboken PROPERTY IMPORTED_LOCATION ${SHIBOKEN_LIBRARY})
|
||||||
IMPORTED_LOCATION ${SHIBOKEN_LIBRARY})
|
|
||||||
set_property(TARGET Shiboken6::libshiboken APPEND PROPERTY
|
set_property(TARGET Shiboken6::libshiboken APPEND PROPERTY
|
||||||
INTERFACE_INCLUDE_DIRECTORIES ${SHIBOKEN_INCLUDE_DIR} ${Python3_INCLUDE_DIRS})
|
INTERFACE_INCLUDE_DIRECTORIES ${SHIBOKEN_INCLUDE_DIR} ${Python3_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
set_property(TARGET Shiboken6::libshiboken APPEND PROPERTY
|
set_property(TARGET Shiboken6::libshiboken APPEND PROPERTY
|
||||||
INTERFACE_LINK_LIBRARIES ${PYTHON_LIMITED_LIBRARIES})
|
INTERFACE_LINK_LIBRARIES ${PYTHON_LIMITED_LIBRARIES}
|
||||||
|
)
|
||||||
|
|
||||||
# Generator target
|
# Generator target
|
||||||
add_executable(Shiboken6::shiboken IMPORTED GLOBAL)
|
add_executable(Shiboken6::shiboken IMPORTED GLOBAL)
|
||||||
set_property(TARGET Shiboken6::shiboken PROPERTY
|
set_property(TARGET Shiboken6::shiboken PROPERTY IMPORTED_LOCATION ${SHIBOKEN_BINARY})
|
||||||
IMPORTED_LOCATION ${SHIBOKEN_BINARY})
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package_handle_standard_args(Shiboken6
|
find_package_handle_standard_args(Shiboken6
|
||||||
@@ -1,47 +1,52 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2016-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2016-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Allen Winter <allen.winter@kdab.com>
|
# Author: Allen Winter <allen.winter@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# Assumes you've already found Qt and Qt_VERSION_MAJOR is set
|
||||||
#
|
#
|
||||||
# Create variables for all the various install paths for the Qt version in use
|
# Create variables for all the various install paths for the Qt version in use
|
||||||
# Make sure to have found Qt before using this.
|
# Make sure to have found Qt before using this.
|
||||||
# sets variables like QT_INSTALL_PREFIX, QT_INSTALL_DATA, QT_INSTALL_DOCS, etc.
|
# sets variables like QT_INSTALL_PREFIX, QT_INSTALL_DATA, QT_INSTALL_DOCS, etc.
|
||||||
# run qmake -query to see a full list
|
# run qmake -query to see a full list
|
||||||
|
|
||||||
if(TARGET Qt${QT_MAJOR_VERSION}::qmake)
|
if(NOT DEFINED Qt_VERSION_MAJOR)
|
||||||
get_target_property(QT_QMAKE_EXECUTABLE Qt${QT_MAJOR_VERSION}::qmake LOCATION)
|
message(FATAL_ERROR "Please set Qt_VERSION_MAJOR first (ie. set(Qt_VERSION_MAJOR 5))")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(TARGET Qt${Qt_VERSION_MAJOR}::qmake)
|
||||||
|
get_target_property(QT_QMAKE_EXECUTABLE Qt${Qt_VERSION_MAJOR}::qmake LOCATION)
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "No supported Qt version found. Make sure you find Qt before calling this")
|
message(FATAL_ERROR "No supported Qt version found. Make sure you find Qt before calling this")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${QT_QMAKE_EXECUTABLE} -query
|
COMMAND ${QT_QMAKE_EXECUTABLE} -query
|
||||||
RESULT_VARIABLE return_code
|
RESULT_VARIABLE return_code
|
||||||
OUTPUT_VARIABLE ALL_VARS
|
OUTPUT_VARIABLE ALL_VARS
|
||||||
)
|
)
|
||||||
if(NOT return_code EQUAL 0)
|
if(NOT return_code EQUAL 0)
|
||||||
message(WARNING "Failed call: ${QMAKE_EXECUTABLE} -query")
|
message(WARNING "Failed call: ${QT_QMAKE_EXECUTABLE} -query")
|
||||||
message(FATAL_ERROR "QMake call failed: ${return_code}")
|
message(FATAL_ERROR "QMake call failed: ${return_code}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
string(REPLACE "\n" ";" VARS_LIST ${ALL_VARS})
|
string(REPLACE "\n" ";" VARS_LIST ${ALL_VARS})
|
||||||
foreach(QVAL ${VARS_LIST})
|
foreach(QVAL ${VARS_LIST})
|
||||||
if(QVAL MATCHES "QT_INSTALL_")
|
if(QVAL MATCHES "QT_INSTALL_")
|
||||||
string(REPLACE ":" ";" QVAL_LIST ${QVAL})
|
string(REPLACE ":" ";" QVAL_LIST ${QVAL})
|
||||||
list(LENGTH QVAL_LIST listlen)
|
list(LENGTH QVAL_LIST listlen)
|
||||||
list(GET QVAL_LIST 0 var)
|
list(GET QVAL_LIST 0 var)
|
||||||
if(WIN32 AND ${listlen} GREATER 2)
|
if(WIN32 AND ${listlen} GREATER 2)
|
||||||
list(GET QVAL_LIST 2 path)
|
list(GET QVAL_LIST 2 path)
|
||||||
list(GET QVAL_LIST 1 drive)
|
list(GET QVAL_LIST 1 drive)
|
||||||
set(path "${drive}:${path}")
|
set(path "${drive}:${path}")
|
||||||
else()
|
else()
|
||||||
list(GET QVAL_LIST 1 path)
|
list(GET QVAL_LIST 1 path)
|
||||||
|
endif()
|
||||||
|
if(NOT ${var}) #if set already on the command line for example
|
||||||
|
set(${var} ${path} CACHE PATH "Qt install path for ${var}")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if(NOT ${var}) #if set already on the command line for example
|
|
||||||
set(${var} ${path} CACHE PATH "Qt install path for ${var}")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|||||||
@@ -1,30 +1,32 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
#
|
|
||||||
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
|
||||||
#
|
#
|
||||||
|
|
||||||
if (NOT ${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX)
|
if(NOT ${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX)
|
||||||
SET(${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE FILEPATH "Custom path to install python bindings.")
|
set(${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE FILEPATH "Custom path to install python bindings.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
message(STATUS "PYTHON INSTALL PREFIX ${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX}")
|
message(STATUS "PYTHON INSTALL PREFIX ${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX}")
|
||||||
|
|
||||||
if (WIN32)
|
if(WIN32)
|
||||||
set(PATH_SEP "\;")
|
set(PATH_SEP "\;")
|
||||||
else()
|
else()
|
||||||
set(PATH_SEP ":")
|
set(PATH_SEP ":")
|
||||||
endif()
|
endif()
|
||||||
if (NOT CMAKE_CXX_STANDARD)
|
#Qt5 requires C++14
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 14)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
#remove noisy compiler warnings (as the generated code is not necessarily super-warning-free)
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-all -Wno-extra")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# On macOS, check if Qt is a framework build. This affects how include paths should be handled.
|
# On macOS, check if Qt is a framework build. This affects how include paths should be handled.
|
||||||
get_target_property(QtCore_is_framework Qt5::Core FRAMEWORK)
|
get_target_property(QtCore_is_framework Qt5::Core FRAMEWORK)
|
||||||
if (QtCore_is_framework)
|
if(QtCore_is_framework)
|
||||||
# Get the path to the framework dir.
|
# Get the path to the framework dir.
|
||||||
list(GET Qt5Core_INCLUDE_DIRS 0 QT_INCLUDE_DIR)
|
list(GET Qt5Core_INCLUDE_DIRS 0 QT_INCLUDE_DIR)
|
||||||
get_filename_component(QT_FRAMEWORK_INCLUDE_DIR "${QT_INCLUDE_DIR}/../" ABSOLUTE)
|
get_filename_component(QT_FRAMEWORK_INCLUDE_DIR "${QT_INCLUDE_DIR}/../" ABSOLUTE)
|
||||||
@@ -46,12 +48,14 @@ endif()
|
|||||||
# --use-isnull-as-nb_nonzero: If a class have an isNull() const method, it will be used to compute
|
# --use-isnull-as-nb_nonzero: If a class have an isNull() const method, it will be used to compute
|
||||||
# the value of boolean casts.
|
# the value of boolean casts.
|
||||||
# Example, QImage::isNull() will be used when on python side you do `if (myQImage)`
|
# Example, QImage::isNull() will be used when on python side you do `if (myQImage)`
|
||||||
set(GENERATOR_EXTRA_FLAGS --generator-set=shiboken
|
set(GENERATOR_EXTRA_FLAGS
|
||||||
--enable-parent-ctor-heuristic
|
--generator-set=shiboken
|
||||||
--enable-pyside-extensions
|
--enable-parent-ctor-heuristic
|
||||||
--enable-return-value-heuristic
|
--enable-pyside-extensions
|
||||||
--use-isnull-as-nb_nonzero
|
--enable-return-value-heuristic
|
||||||
-std=c++${CMAKE_CXX_STANDARD})
|
--use-isnull-as-nb_nonzero
|
||||||
|
-std=c++${CMAKE_CXX_STANDARD}
|
||||||
|
)
|
||||||
|
|
||||||
# 2017-04-24 The protected hack can unfortunately not be disabled, because
|
# 2017-04-24 The protected hack can unfortunately not be disabled, because
|
||||||
# Clang does produce linker errors when we disable the hack.
|
# Clang does produce linker errors when we disable the hack.
|
||||||
@@ -62,8 +66,8 @@ if(WIN32 OR DEFINED AVOID_PROTECTED_HACK)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
macro(make_path varname)
|
macro(make_path varname)
|
||||||
# accepts any number of path variables
|
# accepts any number of path variables
|
||||||
string(REPLACE ";" "${PATH_SEP}" ${varname} "${ARGN}")
|
string(REPLACE ";" "${PATH_SEP}" ${varname} "${ARGN}")
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
# Creates a PySide module target based on the arguments
|
# Creates a PySide module target based on the arguments
|
||||||
@@ -84,16 +88,16 @@ endmacro()
|
|||||||
# trigger if one of these files changes
|
# trigger if one of these files changes
|
||||||
# MODULE_OUTPUT_DIR - Where the library file should be stored
|
# MODULE_OUTPUT_DIR - Where the library file should be stored
|
||||||
macro(CREATE_PYTHON_BINDINGS
|
macro(CREATE_PYTHON_BINDINGS
|
||||||
LIBRARY_NAME
|
LIBRARY_NAME
|
||||||
TYPESYSTEM_PATHS
|
TYPESYSTEM_PATHS
|
||||||
INCLUDE_PATHS
|
INCLUDE_PATHS
|
||||||
OUTPUT_SOURCES
|
OUTPUT_SOURCES
|
||||||
TARGET_INCLUDE_DIRS
|
TARGET_INCLUDE_DIRS
|
||||||
TARGET_LINK_LIBRARIES
|
TARGET_LINK_LIBRARIES
|
||||||
GLOBAL_INCLUDE
|
GLOBAL_INCLUDE
|
||||||
TYPESYSTEM_XML
|
TYPESYSTEM_XML
|
||||||
DEPENDS
|
DEPENDS
|
||||||
MODULE_OUTPUT_DIR)
|
MODULE_OUTPUT_DIR)
|
||||||
|
|
||||||
# Transform the path separators into something shiboken understands.
|
# Transform the path separators into something shiboken understands.
|
||||||
make_path(shiboken_include_dirs ${INCLUDE_PATHS})
|
make_path(shiboken_include_dirs ${INCLUDE_PATHS})
|
||||||
@@ -130,6 +134,11 @@ macro(CREATE_PYTHON_BINDINGS
|
|||||||
OUTPUT_NAME ${MODULE_NAME}
|
OUTPUT_NAME ${MODULE_NAME}
|
||||||
LIBRARY_OUTPUT_DIRECTORY ${MODULE_OUTPUT_DIR}
|
LIBRARY_OUTPUT_DIRECTORY ${MODULE_OUTPUT_DIR}
|
||||||
)
|
)
|
||||||
|
if(APPLE)
|
||||||
|
set_target_properties(${TARGET_NAME} PROPERTIES INSTALL_RPATH "@loader_path")
|
||||||
|
elseif(NOT WIN32) #ie. linux
|
||||||
|
set_target_properties(${TARGET_NAME} PROPERTIES INSTALL_RPATH "$ORIGIN")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set_target_properties(${TARGET_NAME} PROPERTIES SUFFIX ".pyd")
|
set_target_properties(${TARGET_NAME} PROPERTIES SUFFIX ".pyd")
|
||||||
@@ -152,5 +161,5 @@ macro(CREATE_PYTHON_BINDINGS
|
|||||||
LINK_FLAGS "-undefined dynamic_lookup")
|
LINK_FLAGS "-undefined dynamic_lookup")
|
||||||
endif()
|
endif()
|
||||||
install(TARGETS ${TARGET_NAME}
|
install(TARGETS ${TARGET_NAME}
|
||||||
LIBRARY DESTINATION ${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX}/${TARGET_NAME})
|
LIBRARY DESTINATION ${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX})
|
||||||
endmacro()
|
endmacro()
|
||||||
@@ -1,30 +1,32 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
#
|
|
||||||
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
|
||||||
#
|
#
|
||||||
|
|
||||||
if (NOT ${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX)
|
if(NOT ${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX)
|
||||||
SET(${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE FILEPATH "Custom path to install python bindings.")
|
set(${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE FILEPATH "Custom path to install python bindings.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
message(STATUS "PYTHON INSTALL PREFIX ${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX}")
|
message(STATUS "PYTHON INSTALL PREFIX ${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX}")
|
||||||
|
|
||||||
if (WIN32)
|
if(WIN32)
|
||||||
set(PATH_SEP "\;")
|
set(PATH_SEP "\;")
|
||||||
else()
|
else()
|
||||||
set(PATH_SEP ":")
|
set(PATH_SEP ":")
|
||||||
endif()
|
endif()
|
||||||
if (NOT CMAKE_CXX_STANDARD)
|
#Qt6 requires C++17
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
#remove noisy compiler warnings (as the generated code is not necessarily super-warning-free)
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-all -Wno-extra")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# On macOS, check if Qt is a framework build. This affects how include paths should be handled.
|
# On macOS, check if Qt is a framework build. This affects how include paths should be handled.
|
||||||
get_target_property(QtCore_is_framework Qt6::Core FRAMEWORK)
|
get_target_property(QtCore_is_framework Qt6::Core FRAMEWORK)
|
||||||
if (QtCore_is_framework)
|
if(QtCore_is_framework)
|
||||||
# Get the path to the framework dir.
|
# Get the path to the framework dir.
|
||||||
list(GET Qt6Core_INCLUDE_DIRS 0 QT_INCLUDE_DIR)
|
list(GET Qt6Core_INCLUDE_DIRS 0 QT_INCLUDE_DIR)
|
||||||
get_filename_component(QT_FRAMEWORK_INCLUDE_DIR "${QT_INCLUDE_DIR}/../" ABSOLUTE)
|
get_filename_component(QT_FRAMEWORK_INCLUDE_DIR "${QT_INCLUDE_DIR}/../" ABSOLUTE)
|
||||||
@@ -46,12 +48,14 @@ endif()
|
|||||||
# --use-isnull-as-nb_nonzero: If a class have an isNull() const method, it will be used to compute
|
# --use-isnull-as-nb_nonzero: If a class have an isNull() const method, it will be used to compute
|
||||||
# the value of boolean casts.
|
# the value of boolean casts.
|
||||||
# Example, QImage::isNull() will be used when on python side you do `if (myQImage)`
|
# Example, QImage::isNull() will be used when on python side you do `if (myQImage)`
|
||||||
set(GENERATOR_EXTRA_FLAGS --generator-set=shiboken
|
set(GENERATOR_EXTRA_FLAGS
|
||||||
--enable-parent-ctor-heuristic
|
--generator-set=shiboken
|
||||||
--enable-pyside-extensions
|
--enable-parent-ctor-heuristic
|
||||||
--enable-return-value-heuristic
|
--enable-pyside-extensions
|
||||||
--use-isnull-as-nb_nonzero
|
--enable-return-value-heuristic
|
||||||
-std=c++${CMAKE_CXX_STANDARD})
|
--use-isnull-as-nb_nonzero
|
||||||
|
-std=c++${CMAKE_CXX_STANDARD}
|
||||||
|
)
|
||||||
|
|
||||||
# 2017-04-24 The protected hack can unfortunately not be disabled, because
|
# 2017-04-24 The protected hack can unfortunately not be disabled, because
|
||||||
# Clang does produce linker errors when we disable the hack.
|
# Clang does produce linker errors when we disable the hack.
|
||||||
@@ -62,8 +66,8 @@ if(WIN32 OR DEFINED AVOID_PROTECTED_HACK)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
macro(make_path varname)
|
macro(make_path varname)
|
||||||
# accepts any number of path variables
|
# accepts any number of path variables
|
||||||
string(REPLACE ";" "${PATH_SEP}" ${varname} "${ARGN}")
|
string(REPLACE ";" "${PATH_SEP}" ${varname} "${ARGN}")
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
# Creates a PySide module target based on the arguments
|
# Creates a PySide module target based on the arguments
|
||||||
@@ -84,16 +88,16 @@ endmacro()
|
|||||||
# trigger if one of these files changes
|
# trigger if one of these files changes
|
||||||
# MODULE_OUTPUT_DIR - Where the library file should be stored
|
# MODULE_OUTPUT_DIR - Where the library file should be stored
|
||||||
macro(CREATE_PYTHON_BINDINGS
|
macro(CREATE_PYTHON_BINDINGS
|
||||||
LIBRARY_NAME
|
LIBRARY_NAME
|
||||||
TYPESYSTEM_PATHS
|
TYPESYSTEM_PATHS
|
||||||
INCLUDE_PATHS
|
INCLUDE_PATHS
|
||||||
OUTPUT_SOURCES
|
OUTPUT_SOURCES
|
||||||
TARGET_INCLUDE_DIRS
|
TARGET_INCLUDE_DIRS
|
||||||
TARGET_LINK_LIBRARIES
|
TARGET_LINK_LIBRARIES
|
||||||
GLOBAL_INCLUDE
|
GLOBAL_INCLUDE
|
||||||
TYPESYSTEM_XML
|
TYPESYSTEM_XML
|
||||||
DEPENDS
|
DEPENDS
|
||||||
MODULE_OUTPUT_DIR)
|
MODULE_OUTPUT_DIR)
|
||||||
|
|
||||||
# Transform the path separators into something shiboken understands.
|
# Transform the path separators into something shiboken understands.
|
||||||
make_path(shiboken_include_dirs ${INCLUDE_PATHS})
|
make_path(shiboken_include_dirs ${INCLUDE_PATHS})
|
||||||
@@ -130,6 +134,11 @@ macro(CREATE_PYTHON_BINDINGS
|
|||||||
OUTPUT_NAME ${MODULE_NAME}
|
OUTPUT_NAME ${MODULE_NAME}
|
||||||
LIBRARY_OUTPUT_DIRECTORY ${MODULE_OUTPUT_DIR}
|
LIBRARY_OUTPUT_DIRECTORY ${MODULE_OUTPUT_DIR}
|
||||||
)
|
)
|
||||||
|
if(APPLE)
|
||||||
|
set_target_properties(${TARGET_NAME} PROPERTIES INSTALL_RPATH "@loader_path")
|
||||||
|
elseif(NOT WIN32) #ie. linux
|
||||||
|
set_target_properties(${TARGET_NAME} PROPERTIES INSTALL_RPATH "$ORIGIN")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set_target_properties(${TARGET_NAME} PROPERTIES SUFFIX ".pyd")
|
set_target_properties(${TARGET_NAME} PROPERTIES SUFFIX ".pyd")
|
||||||
@@ -152,5 +161,5 @@ macro(CREATE_PYTHON_BINDINGS
|
|||||||
LINK_FLAGS "-undefined dynamic_lookup")
|
LINK_FLAGS "-undefined dynamic_lookup")
|
||||||
endif()
|
endif()
|
||||||
install(TARGETS ${TARGET_NAME}
|
install(TARGETS ${TARGET_NAME}
|
||||||
LIBRARY DESTINATION ${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX}/${TARGET_NAME})
|
LIBRARY DESTINATION ${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX})
|
||||||
endmacro()
|
endmacro()
|
||||||
@@ -1,160 +0,0 @@
|
|||||||
#
|
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
|
||||||
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
|
||||||
#
|
|
||||||
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
|
||||||
#
|
|
||||||
|
|
||||||
# PYSIDE_BASEDIR - Top of the PySide2 installation
|
|
||||||
# PYSIDE_INCLUDE_DIR - Directories to include to use PySide2
|
|
||||||
# PYSIDE_LIBRARY - Files to link against to use PySide2
|
|
||||||
# PYSIDE_TYPESYSTEMS - Type system files that should be used by other bindings extending PySide2
|
|
||||||
#
|
|
||||||
# You can install PySide2 from Qt repository with
|
|
||||||
# pip3 install --index-url=https://download.qt.io/official_releases/QtForPython --trusted-host download.qt.io pyside2
|
|
||||||
|
|
||||||
find_package(PkgConfig)
|
|
||||||
if(PKG_CONFIG_FOUND)
|
|
||||||
pkg_check_modules(PYSIDE2_PRIV QUIET pyside2)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(PYSIDE2_FOUND FALSE)
|
|
||||||
|
|
||||||
if(PYSIDE2_PRIV_FOUND)
|
|
||||||
set(PYSIDE2_FOUND TRUE)
|
|
||||||
message(STATUS "Using PySide2 found in the system!")
|
|
||||||
pkg_get_variable(SHIBOKEN_BINARY
|
|
||||||
pyside2
|
|
||||||
generator_location
|
|
||||||
)
|
|
||||||
pkg_get_variable(PYSIDE2_BASEDIR
|
|
||||||
pyside2
|
|
||||||
typesystemdir
|
|
||||||
)
|
|
||||||
pkg_get_variable(PYSIDE_INCLUDE_DIR
|
|
||||||
pyside2
|
|
||||||
includedir
|
|
||||||
)
|
|
||||||
set(PYSIDE_TYPESYSTEMS ${PYSIDE2_BASEDIR})
|
|
||||||
set(PYSIDE2_SO_VERSION ${PYSIDE2_PRIV_VERSION})
|
|
||||||
set(PYSIDE_LIBRARY ${PYSIDE2_PRIV_LINK_LIBRARIES})
|
|
||||||
list(GET PYSIDE_LIBRARY 0 PYSIDE_LIBRARY)
|
|
||||||
else()
|
|
||||||
# extract python library basename
|
|
||||||
list(GET Python3_LIBRARIES 0 PYTHON_LIBRARY_FILENAME)
|
|
||||||
get_filename_component(PYTHON_LIBRARY_FILENAME ${PYTHON_LIBRARY_FILENAME} NAME)
|
|
||||||
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
|
||||||
import os, sys
|
|
||||||
try:
|
|
||||||
import PySide2.QtCore as QtCore
|
|
||||||
print(os.path.dirname(QtCore.__file__))
|
|
||||||
except Exception as error:
|
|
||||||
print(error, file=sys.stderr)
|
|
||||||
exit()
|
|
||||||
"
|
|
||||||
OUTPUT_VARIABLE PYSIDE2_BASEDIR
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
||||||
)
|
|
||||||
|
|
||||||
if(PYSIDE2_BASEDIR)
|
|
||||||
set(PYSIDE_BASEDIR ${PYSIDE2_BASEDIR} CACHE PATH "Top level install of PySide2" FORCE)
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
|
||||||
import os
|
|
||||||
import PySide2.QtCore as QtCore
|
|
||||||
print(os.path.basename(QtCore.__file__).split('.', 1)[1])
|
|
||||||
"
|
|
||||||
OUTPUT_VARIABLE PYSIDE2_SUFFIX
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
||||||
)
|
|
||||||
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${Python3_EXECUTABLE} -c "if True:
|
|
||||||
import os
|
|
||||||
import PySide2.QtCore as QtCore
|
|
||||||
print(';'.join(map(str, QtCore.__version_info__)))
|
|
||||||
"
|
|
||||||
OUTPUT_VARIABLE PYSIDE2_SO_VERSION
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
||||||
)
|
|
||||||
list(GET PYSIDE2_SO_VERSION 0 PYSIDE2_SO_MACRO_VERSION)
|
|
||||||
list(GET PYSIDE2_SO_VERSION 1 PYSIDE2_SO_MICRO_VERSION)
|
|
||||||
list(GET PYSIDE2_SO_VERSION 2 PYSIDE2_SO_MINOR_VERSION)
|
|
||||||
string(REPLACE ";" "." PYSIDE2_SO_VERSION "${PYSIDE2_SO_VERSION}")
|
|
||||||
|
|
||||||
if(NOT APPLE)
|
|
||||||
set(PYSIDE2_SUFFIX "${PYSIDE2_SUFFIX}.${PYSIDE2_SO_MACRO_VERSION}.${PYSIDE2_SO_MICRO_VERSION}")
|
|
||||||
else()
|
|
||||||
string(REPLACE ".so" "" PYSIDE2_SUFFIX ${PYSIDE2_SUFFIX})
|
|
||||||
set(PYSIDE2_SUFFIX "${PYSIDE2_SUFFIX}.${PYSIDE2_SO_MACRO_VERSION}.${PYSIDE2_SO_MICRO_VERSION}.dylib")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(PYSIDE2_FOUND TRUE)
|
|
||||||
message(STATUS "PySide2 base dir: ${PYSIDE2_BASEDIR}" )
|
|
||||||
message(STATUS "PySide2 suffix: ${PYSIDE2_SUFFIX}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (PYSIDE2_FOUND)
|
|
||||||
#PySide
|
|
||||||
#===============================================================================
|
|
||||||
find_path(PYSIDE_INCLUDE_DIR
|
|
||||||
pyside.h
|
|
||||||
PATHS ${PYSIDE2_BASEDIR}/include ${PYSIDE2_CUSTOM_PREFIX}/include/PySide2
|
|
||||||
NO_DEFAULT_PATH)
|
|
||||||
|
|
||||||
# Platform specific library names
|
|
||||||
if(MSVC)
|
|
||||||
SET(PYSIDE_LIBRARY_BASENAMES "pyside2.abi3.lib")
|
|
||||||
elseif(CYGWIN)
|
|
||||||
SET(PYSIDE_LIBRARY_BASENAMES "")
|
|
||||||
elseif(WIN32)
|
|
||||||
SET(PYSIDE_LIBRARY_BASENAMES "libpyside2.${PYSIDE2_SUFFIX}")
|
|
||||||
else()
|
|
||||||
SET(PYSIDE_LIBRARY_BASENAMES "libpyside2.${PYSIDE2_SUFFIX}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_file(PYSIDE_LIBRARY
|
|
||||||
${PYSIDE_LIBRARY_BASENAMES}
|
|
||||||
PATHS ${PYSIDE2_BASEDIR} ${PYSIDE2_CUSTOM_PREFIX}/lib
|
|
||||||
NO_DEFAULT_PATH)
|
|
||||||
|
|
||||||
find_path(PYSIDE_TYPESYSTEMS
|
|
||||||
typesystem_core.xml
|
|
||||||
PATHS ${PYSIDE2_BASEDIR}/typesystems ${PYSIDE2_CUSTOM_PREFIX}/share/PySide2/typesystems
|
|
||||||
NO_DEFAULT_PATH)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(PYSIDE2_FOUND)
|
|
||||||
message(STATUS "PySide include dir: ${PYSIDE_INCLUDE_DIR}")
|
|
||||||
message(STATUS "PySide library: ${PYSIDE_LIBRARY}")
|
|
||||||
message(STATUS "PySide typesystems: ${PYSIDE_TYPESYSTEMS}")
|
|
||||||
message(STATUS "PySide2 version: ${PYSIDE2_SO_VERSION}")
|
|
||||||
|
|
||||||
# Create PySide2 target
|
|
||||||
add_library(PySide2::pyside2 SHARED IMPORTED GLOBAL)
|
|
||||||
if(MSVC)
|
|
||||||
set_property(TARGET PySide2::pyside2 PROPERTY
|
|
||||||
IMPORTED_IMPLIB ${PYSIDE_LIBRARY})
|
|
||||||
endif()
|
|
||||||
set_property(TARGET PySide2::pyside2 PROPERTY
|
|
||||||
IMPORTED_LOCATION ${PYSIDE_LIBRARY})
|
|
||||||
set_property(TARGET PySide2::pyside2 APPEND PROPERTY
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES
|
|
||||||
${PYSIDE_INCLUDE_DIR}
|
|
||||||
${PYSIDE_INCLUDE_DIR}/QtCore/
|
|
||||||
${PYSIDE_INCLUDE_DIR}/QtGui/
|
|
||||||
${PYSIDE_INCLUDE_DIR}/QtWidgets/
|
|
||||||
${Python3_INCLUDE_DIRS}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
find_package_handle_standard_args(PySide2
|
|
||||||
REQUIRED_VARS PYSIDE2_BASEDIR PYSIDE_INCLUDE_DIR PYSIDE_LIBRARY PYSIDE_TYPESYSTEMS
|
|
||||||
VERSION_VAR PYSIDE2_SO_VERSION
|
|
||||||
)
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
#
|
#
|
||||||
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||||
@@ -11,7 +11,7 @@ from conans import ConanFile, CMake, tools
|
|||||||
|
|
||||||
class KDDockWidgetsConan(ConanFile):
|
class KDDockWidgetsConan(ConanFile):
|
||||||
name = "kddockwidgets"
|
name = "kddockwidgets"
|
||||||
version = "1.4.0"
|
version = "1.5.0"
|
||||||
default_user = "kdab"
|
default_user = "kdab"
|
||||||
default_channel = "stable"
|
default_channel = "stable"
|
||||||
license = ("https://raw.githubusercontent.com/KDAB/KDDockWidgets/master/LICENSES/GPL-2.0-only.txt",
|
license = ("https://raw.githubusercontent.com/KDAB/KDDockWidgets/master/LICENSES/GPL-2.0-only.txt",
|
||||||
@@ -32,7 +32,7 @@ class KDDockWidgetsConan(ConanFile):
|
|||||||
}
|
}
|
||||||
|
|
||||||
default_options = {
|
default_options = {
|
||||||
"qt_version": "qt/[>5.9.0]@kdab/stable",
|
"qt_version": "qt/[>5.12.0]@kdab/stable",
|
||||||
"build_static": False,
|
"build_static": False,
|
||||||
"build_examples": True,
|
"build_examples": True,
|
||||||
"build_tests": False,
|
"build_tests": False,
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
kddockwidgets (1.5.0) release candidate; urgency=high
|
||||||
|
|
||||||
|
* 1.5.0 final
|
||||||
|
|
||||||
|
-- Allen Winter <allen.winter@kdab.com> Mon, 24 Nov 2021 12:00:00 -0500
|
||||||
|
|
||||||
kddockwidgets (1.4.0) release candidate; urgency=high
|
kddockwidgets (1.4.0) release candidate; urgency=high
|
||||||
|
|
||||||
* 1.4.0 final
|
* 1.4.0 final
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ Build-Depends: debhelper (>=9), cdbs, cmake
|
|||||||
Standards-Version: 3.9.6
|
Standards-Version: 3.9.6
|
||||||
Homepage: https://github.com/KDAB/KDDockWidgets
|
Homepage: https://github.com/KDAB/KDDockWidgets
|
||||||
|
|
||||||
Package: kddockwidgets
|
Package: qt5-kddockwidgets
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||||
Description: KDAB's Dock Widget Framework for Qt
|
Description: KDAB's Dock Widget Framework for Qt
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
Format: 1.0
|
Format: 1.0
|
||||||
Source: kddockwidgets
|
Source: kddockwidgets
|
||||||
Version: 1.4.0-1
|
Version: 1.5.0-1
|
||||||
Binary: kddockwidgets
|
Binary: kddockwidgets
|
||||||
Maintainer: Allen Winter <allen.winter@kdab.com>
|
Maintainer: Allen Winter <allen.winter@kdab.com>
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Build-Depends: debhelper (>=9), cdbs, cmake, qtbase5-dev, libqt5x11extras5-dev
|
Build-Depends: debhelper (>=9), cdbs, cmake, qtbase5-dev, qtbase5-private-dev, libqt5x11extras5-dev, libfontconfig-dev
|
||||||
|
|
||||||
Files:
|
Files:
|
||||||
00000000000000000000000000000000 00000 qt5-kddockwidgets-1.4.0.tar.gz
|
00000000000000000000000000000000 00000 qt5-kddockwidgets-1.5.0.tar.gz
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Name: qt5-kddockwidgets
|
Name: qt5-kddockwidgets
|
||||||
Version: 1.4.0
|
Version: 1.5.0
|
||||||
Release: 1
|
Release: 1
|
||||||
Summary: KDAB's Dock Widget Framework for Qt5
|
Summary: KDAB's Dock Widget Framework for Qt5
|
||||||
Source0: %{name}-%{version}.tar.gz
|
Source0: %{name}-%{version}.tar.gz
|
||||||
@@ -14,15 +14,15 @@ Packager: Klaralvdalens Datakonsult AB (KDAB) <info@kdab.com>
|
|||||||
|
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
%if %{defined suse_version}
|
%if %{defined suse_version}
|
||||||
BuildRequires: libqt5-qtbase-devel libqt5-qtx11extras-devel
|
BuildRequires: libqt5-qtbase-devel libqt5-qtbase-private-headers-devel libqt5-qtx11extras-devel
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{defined fedora}
|
%if %{defined fedora}
|
||||||
BuildRequires: gcc-c++ qt5-qtbase-devel qt5-qtx11extras-devel desktop-file-utils
|
BuildRequires: gcc-c++ qt5-qtbase-devel qt5-qtbase-private-devel qt5-qtx11extras-devel desktop-file-utils
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{defined rhel}
|
%if %{defined rhel}
|
||||||
BuildRequires: gcc-c++ qt5-qtbase-devel qt5-qtx11extras-devel desktop-file-utils
|
BuildRequires: gcc-c++ qt5-qtbase-devel qt5-qtbase-private-devel qt5-qtx11extras-devel desktop-file-utils
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@@ -98,6 +98,8 @@ cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
|
|||||||
%{_libdir}/libkddockwidgets.so
|
%{_libdir}/libkddockwidgets.so
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Nov 24 2021 Allen Winter <allen.winter@kdab.com> 1.5.0
|
||||||
|
1.5.0 final
|
||||||
* Fri Jul 16 2021 Allen Winter <allen.winter@kdab.com> 1.4.0
|
* Fri Jul 16 2021 Allen Winter <allen.winter@kdab.com> 1.4.0
|
||||||
1.4.0 final
|
1.4.0 final
|
||||||
* Mon Jun 07 2021 Allen Winter <allen.winter@kdab.com> 1.3.1
|
* Mon Jun 07 2021 Allen Winter <allen.winter@kdab.com> 1.3.1
|
||||||
|
|||||||
12
distro/qt6-debian.control
Normal file
12
distro/qt6-debian.control
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Source: kddockwidgets
|
||||||
|
Section: Miscellaneous
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: Allen Winter <allen.winter@kdab.com>
|
||||||
|
Build-Depends: debhelper (>=9), cdbs, cmake
|
||||||
|
Standards-Version: 3.9.6
|
||||||
|
Homepage: https://github.com/KDAB/KDDockWidgets
|
||||||
|
|
||||||
|
Package: qt6-kddockwidgets
|
||||||
|
Architecture: any
|
||||||
|
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||||
|
Description: KDAB's Dock Widget Framework for Qt
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
Format: 1.0
|
Format: 1.0
|
||||||
Source: kddockwidgets
|
Source: kddockwidgets
|
||||||
Version: 1.4.0-1
|
Version: 1.5.0-1
|
||||||
Binary: kddockwidgets
|
Binary: kddockwidgets
|
||||||
Maintainer: Allen Winter <allen.winter@kdab.com>
|
Maintainer: Allen Winter <allen.winter@kdab.com>
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Build-Depends: debhelper (>=9), cdbs, cmake, qtbase6-dev, libqt6x11extras5-dev
|
Build-Depends: debhelper (>=9), cdbs, cmake, qtbase6-dev, qtbase6-private-dev, libqt6x11extras5-dev, libfontconfig-dev
|
||||||
|
|
||||||
Files:
|
Files:
|
||||||
00000000000000000000000000000000 00000 qt6-kddockwidgets-1.4.0.tar.gz
|
00000000000000000000000000000000 00000 qt6-kddockwidgets-1.5.0.tar.gz
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Name: qt6-kddockwidgets
|
Name: qt6-kddockwidgets
|
||||||
Version: 1.4.0
|
Version: 1.5.0
|
||||||
Release: 1
|
Release: 1
|
||||||
Summary: KDAB's Dock Widget Framework for Qt6
|
Summary: KDAB's Dock Widget Framework for Qt6
|
||||||
Source0: %{name}-%{version}.tar.gz
|
Source0: %{name}-%{version}.tar.gz
|
||||||
@@ -14,15 +14,15 @@ Packager: Klaralvdalens Datakonsult AB (KDAB) <info@kdab.com>
|
|||||||
|
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
%if %{defined suse_version}
|
%if %{defined suse_version}
|
||||||
BuildRequires: libqt6-qtbase-devel libqt6-qtx11extras-devel
|
BuildRequires: libqt6-qtbase-devel libqt6-qtbase-private-headers-devel libqt6-qtx11extras-devel
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{defined fedora}
|
%if %{defined fedora}
|
||||||
BuildRequires: gcc-c++ qt6-qtbase-devel desktop-file-utils
|
BuildRequires: gcc-c++ qt6-qtbase-devel qt6-qtbase-private-devel desktop-file-utils libxkbcommon-devel
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{defined rhel}
|
%if %{defined rhel}
|
||||||
BuildRequires: gcc-c++ qt6-qtbase-devel qt6-qtx11extras-devel desktop-file-utils
|
BuildRequires: gcc-c++ qt6-qtbase-devel qt6-qtbase-private-devel qt6-qtx11extras-devel desktop-file-utils libxkbcommon-devel
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@@ -74,19 +74,21 @@ cmake . -DCMAKE_INSTALL_PREFIX=/usr -DKDDockWidgets_QT6=True -DCMAKE_BUILD_TYPE=
|
|||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{_prefix}/share/doc/KDDockWidgets
|
%{_prefix}/share/doc/KDDockWidgets-qt6
|
||||||
%{_libdir}/libkddockwidgets-qt6.so.*
|
%{_libdir}/libkddockwidgets-qt6.so.*
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%dir %{_includedir}/kddockwidgets
|
%dir %{_includedir}/kddockwidgets-qt6
|
||||||
%{_includedir}/kddockwidgets/*
|
%{_includedir}/kddockwidgets-qt6/kddockwidgets/*
|
||||||
%dir %{_libdir}/cmake/KDDockWidgets
|
%dir %{_libdir}/cmake/KDDockWidgets-qt6
|
||||||
%{_libdir}/cmake/KDDockWidgets/*
|
%{_libdir}/cmake/KDDockWidgets-qt6/*
|
||||||
%{_libdir}/libkddockwidgets-qt6.so
|
%{_libdir}/libkddockwidgets-qt6.so
|
||||||
#%{_prefix}/mkspecs/modules/* ECMGeneratePriFile isn't ported to Qt6 yet
|
#%{_prefix}/mkspecs/modules/* ECMGeneratePriFile isn't ported to Qt6 yet
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Nov 24 2021 Allen Winter <allen.winter@kdab.com> 1.5.0
|
||||||
|
1.5.0 final
|
||||||
* Fri Jul 16 2021 Allen Winter <allen.winter@kdab.com> 1.4.0
|
* Fri Jul 16 2021 Allen Winter <allen.winter@kdab.com> 1.4.0
|
||||||
1.4.0 final
|
1.4.0 final
|
||||||
* Mon Jun 07 2021 Allen Winter <allen.winter@kdab.com> 1.3.1
|
* Mon Jun 07 2021 Allen Winter <allen.winter@kdab.com> 1.3.1
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Allen Winter <allen.winter@kdab.com>
|
# Author: Allen Winter <allen.winter@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
@@ -9,17 +9,6 @@
|
|||||||
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||||
#
|
#
|
||||||
|
|
||||||
# qhelpgenerator
|
|
||||||
find_program(QHELPGEN_EXECUTABLE qhelpgenerator
|
|
||||||
HINTS ${QT_INSTALL_BINS}
|
|
||||||
)
|
|
||||||
if(QHELPGEN_EXECUTABLE)
|
|
||||||
set(HAVE_QHELPGEN "YES")
|
|
||||||
else()
|
|
||||||
set(HAVE_QHELPGEN "NO")
|
|
||||||
message(STATUS "Unable to generate the API documentation in qch format. To fix, install the qthelpgenerator program which comes with Qt5.")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Doxygen
|
# Doxygen
|
||||||
find_package(Doxygen)
|
find_package(Doxygen)
|
||||||
set_package_properties(Doxygen PROPERTIES
|
set_package_properties(Doxygen PROPERTIES
|
||||||
@@ -28,12 +17,6 @@ set_package_properties(Doxygen PROPERTIES
|
|||||||
URL "https://www.doxygen.org"
|
URL "https://www.doxygen.org"
|
||||||
PURPOSE "Needed to build the API documentation."
|
PURPOSE "Needed to build the API documentation."
|
||||||
)
|
)
|
||||||
if(DOXYGEN_DOT_EXECUTABLE)
|
|
||||||
set(HAVE_DOT "YES")
|
|
||||||
else()
|
|
||||||
set(HAVE_DOT "NO")
|
|
||||||
message(STATUS "Unable to provide inheritance diagrams for the API documentation. To fix, install the graphviz project from https://www.graphviz.org")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(DOXYGEN_FOUND)
|
if(DOXYGEN_FOUND)
|
||||||
add_subdirectory(api)
|
add_subdirectory(api)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Allen Winter <allen.winter@kdab.com>
|
# Author: Allen Winter <allen.winter@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
@@ -9,6 +9,25 @@
|
|||||||
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# dot should come with Doxygen find_package(Doxygen)
|
||||||
|
if(DOXYGEN_DOT_EXECUTABLE)
|
||||||
|
set(HAVE_DOT "YES")
|
||||||
|
else()
|
||||||
|
set(HAVE_DOT "NO")
|
||||||
|
message(STATUS "Unable to provide inheritance diagrams for the API documentation. To fix, install the graphviz project from https://www.graphviz.org")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# qhelpgenerator
|
||||||
|
find_program(QHELPGEN_EXECUTABLE qhelpgenerator
|
||||||
|
HINTS ${QT_INSTALL_BINS}
|
||||||
|
)
|
||||||
|
if(QHELPGEN_EXECUTABLE)
|
||||||
|
set(HAVE_QHELPGEN "YES")
|
||||||
|
else()
|
||||||
|
set(HAVE_QHELPGEN "NO")
|
||||||
|
message(STATUS "Unable to generate the API documentation in qch format. To fix, install the qthelpgenerator program which comes with Qt.")
|
||||||
|
endif()
|
||||||
|
|
||||||
find_file(QDOC_QTCORE_TAG qtcore.tags
|
find_file(QDOC_QTCORE_TAG qtcore.tags
|
||||||
HINTS ${QT_INSTALL_DOCS}/qtcore
|
HINTS ${QT_INSTALL_DOCS}/qtcore
|
||||||
HINTS ${QT_INSTALL_DATA}/doc/qtcore
|
HINTS ${QT_INSTALL_DATA}/doc/qtcore
|
||||||
@@ -47,4 +66,6 @@ add_custom_command(
|
|||||||
add_custom_target(kddockwidgets-api.qch ALL DEPENDS ${DOXYGEN_OUTPUT_DIR}/qch/kddockwidgets-api.qch)
|
add_custom_target(kddockwidgets-api.qch ALL DEPENDS ${DOXYGEN_OUTPUT_DIR}/qch/kddockwidgets-api.qch)
|
||||||
add_custom_target(docs DEPENDS kddockwidgets-api.qch)
|
add_custom_target(docs DEPENDS kddockwidgets-api.qch)
|
||||||
|
|
||||||
install(FILES ${DOXYGEN_OUTPUT_DIR}/qch/kddockwidgets-api.qch DESTINATION ${INSTALL_DOC_DIR})
|
set(QCH_INSTALL_DIR ${INSTALL_DOC_DIR} CACHE STRING "Install location of Qt Assistant help files.")
|
||||||
|
install(FILES ${DOXYGEN_OUTPUT_DIR}/qch/kddockwidgets-api.qch DESTINATION ${QCH_INSTALL_DIR})
|
||||||
|
install(FILES ${DOXYGEN_OUTPUT_DIR}/kddockwidgets.tags DESTINATION ${INSTALL_DOC_DIR})
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Doxyfile 1.8.18
|
# Doxyfile 1.8.20
|
||||||
|
|
||||||
# This file describes the settings to be used by the documentation system
|
# This file describes the settings to be used by the documentation system
|
||||||
# doxygen (www.doxygen.org) for a project.
|
# doxygen (www.doxygen.org) for a project.
|
||||||
@@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
|
|||||||
# title of most generated pages and in a few other places.
|
# title of most generated pages and in a few other places.
|
||||||
# The default value is: My Project.
|
# The default value is: My Project.
|
||||||
|
|
||||||
PROJECT_NAME = "KDDockWidgets API Documentation"
|
PROJECT_NAME = "@PROJECT_NAME@ API Documentation"
|
||||||
|
|
||||||
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
|
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
|
||||||
# could be handy for archiving the generated documentation or if some version
|
# could be handy for archiving the generated documentation or if some version
|
||||||
@@ -99,7 +99,7 @@ OUTPUT_LANGUAGE = English
|
|||||||
# Possible values are: None, LTR, RTL and Context.
|
# Possible values are: None, LTR, RTL and Context.
|
||||||
# The default value is: None.
|
# The default value is: None.
|
||||||
|
|
||||||
#TOO NEW OUTPUT_TEXT_DIRECTION = None
|
OUTPUT_TEXT_DIRECTION = None
|
||||||
|
|
||||||
# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
|
# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
|
||||||
# descriptions after the members that are listed in the file and class
|
# descriptions after the members that are listed in the file and class
|
||||||
@@ -205,7 +205,7 @@ JAVADOC_AUTOBRIEF = NO
|
|||||||
# interpreted by doxygen.
|
# interpreted by doxygen.
|
||||||
# The default value is: NO.
|
# The default value is: NO.
|
||||||
|
|
||||||
#TOO NEW JAVADOC_BANNER = NO
|
JAVADOC_BANNER = NO
|
||||||
|
|
||||||
# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
|
# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
|
||||||
# line (until the first dot) of a Qt-style comment as the brief description. If
|
# line (until the first dot) of a Qt-style comment as the brief description. If
|
||||||
@@ -227,6 +227,14 @@ QT_AUTOBRIEF = YES
|
|||||||
|
|
||||||
MULTILINE_CPP_IS_BRIEF = NO
|
MULTILINE_CPP_IS_BRIEF = NO
|
||||||
|
|
||||||
|
# By default Python docstrings are displayed as preformatted text and doxygen's
|
||||||
|
# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the
|
||||||
|
# doxygen's special commands can be used and the contents of the docstring
|
||||||
|
# documentation blocks is shown as doxygen documentation.
|
||||||
|
# The default value is: YES.
|
||||||
|
|
||||||
|
PYTHON_DOCSTRING = YES
|
||||||
|
|
||||||
# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
|
# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
|
||||||
# documentation from any documented member that it re-implements.
|
# documentation from any documented member that it re-implements.
|
||||||
# The default value is: YES.
|
# The default value is: YES.
|
||||||
@@ -297,7 +305,7 @@ OPTIMIZE_OUTPUT_VHDL = NO
|
|||||||
# separated into more groups, etc.
|
# separated into more groups, etc.
|
||||||
# The default value is: NO.
|
# The default value is: NO.
|
||||||
|
|
||||||
#TOO NEW: OPTIMIZE_OUTPUT_SLICE = NO
|
OPTIMIZE_OUTPUT_SLICE = NO
|
||||||
|
|
||||||
# Doxygen selects the parser to use depending on the extension of the files it
|
# Doxygen selects the parser to use depending on the extension of the files it
|
||||||
# parses. With this tag you can assign which parser to use for a given
|
# parses. With this tag you can assign which parser to use for a given
|
||||||
@@ -336,7 +344,7 @@ MARKDOWN_SUPPORT = YES
|
|||||||
# Minimum value: 0, maximum value: 99, default value: 5.
|
# Minimum value: 0, maximum value: 99, default value: 5.
|
||||||
# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
|
# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
|
||||||
|
|
||||||
#TOO NEW TOC_INCLUDE_HEADINGS = 5
|
TOC_INCLUDE_HEADINGS = 5
|
||||||
|
|
||||||
# When enabled doxygen tries to link words that correspond to documented
|
# When enabled doxygen tries to link words that correspond to documented
|
||||||
# classes, or namespaces to their corresponding documentation. Such a link can
|
# classes, or namespaces to their corresponding documentation. Such a link can
|
||||||
@@ -449,6 +457,19 @@ TYPEDEF_HIDES_STRUCT = NO
|
|||||||
|
|
||||||
LOOKUP_CACHE_SIZE = 0
|
LOOKUP_CACHE_SIZE = 0
|
||||||
|
|
||||||
|
# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use
|
||||||
|
# during processing. When set to 0 doxygen will based this on the number of
|
||||||
|
# cores available in the system. You can set it explicitly to a value larger
|
||||||
|
# than 0 to get more control over the balance between CPU load and processing
|
||||||
|
# speed. At this moment only the input processing can be done using multiple
|
||||||
|
# threads. Since this is still an experimental feature the default is set to 1,
|
||||||
|
# which efficively disables parallel processing. Please report any issues you
|
||||||
|
# encounter. Generating dot graphs in parallel is controlled by the
|
||||||
|
# DOT_NUM_THREADS setting.
|
||||||
|
# Minimum value: 0, maximum value: 32, default value: 1.
|
||||||
|
|
||||||
|
NUM_PROC_THREADS = 1
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Build related configuration options
|
# Build related configuration options
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
@@ -461,7 +482,7 @@ LOOKUP_CACHE_SIZE = 0
|
|||||||
# normally produced when WARNINGS is set to YES.
|
# normally produced when WARNINGS is set to YES.
|
||||||
# The default value is: NO.
|
# The default value is: NO.
|
||||||
|
|
||||||
EXTRACT_ALL = NO
|
EXTRACT_ALL = YES
|
||||||
|
|
||||||
# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
|
# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
|
||||||
# be included in the documentation.
|
# be included in the documentation.
|
||||||
@@ -473,7 +494,7 @@ EXTRACT_PRIVATE = NO
|
|||||||
# methods of a class will be included in the documentation.
|
# methods of a class will be included in the documentation.
|
||||||
# The default value is: NO.
|
# The default value is: NO.
|
||||||
|
|
||||||
#TOO NEW EXTRACT_PRIV_VIRTUAL = NO
|
EXTRACT_PRIV_VIRTUAL = NO
|
||||||
|
|
||||||
# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
|
# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
|
||||||
# scope will be included in the documentation.
|
# scope will be included in the documentation.
|
||||||
@@ -547,13 +568,13 @@ HIDE_IN_BODY_DOCS = YES
|
|||||||
# will be excluded. Set it to YES to include the internal documentation.
|
# will be excluded. Set it to YES to include the internal documentation.
|
||||||
# The default value is: NO.
|
# The default value is: NO.
|
||||||
|
|
||||||
INTERNAL_DOCS = YES
|
INTERNAL_DOCS = NO
|
||||||
|
|
||||||
# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
|
# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
|
||||||
# names in lower-case letters. If set to YES, upper-case letters are also
|
# names in lower-case letters. If set to YES, upper-case letters are also
|
||||||
# allowed. This is useful if you have classes or files whose names only differ
|
# allowed. This is useful if you have classes or files whose names only differ
|
||||||
# in case and if your file system supports case sensitive file names. Windows
|
# in case and if your file system supports case sensitive file names. Windows
|
||||||
# (including Cygwin) ands Mac users are advised to set this option to NO.
|
# (including Cygwin) and Mac users are advised to set this option to NO.
|
||||||
# The default value is: system dependent.
|
# The default value is: system dependent.
|
||||||
|
|
||||||
CASE_SENSE_NAMES = YES
|
CASE_SENSE_NAMES = YES
|
||||||
@@ -698,14 +719,14 @@ MAX_INITIALIZER_LINES = 30
|
|||||||
# list will mention the files that were used to generate the documentation.
|
# list will mention the files that were used to generate the documentation.
|
||||||
# The default value is: YES.
|
# The default value is: YES.
|
||||||
|
|
||||||
SHOW_USED_FILES = NO
|
SHOW_USED_FILES = YES
|
||||||
|
|
||||||
# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
|
# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
|
||||||
# will remove the Files entry from the Quick Index and from the Folder Tree View
|
# will remove the Files entry from the Quick Index and from the Folder Tree View
|
||||||
# (if specified).
|
# (if specified).
|
||||||
# The default value is: YES.
|
# The default value is: YES.
|
||||||
|
|
||||||
SHOW_FILES = NO
|
SHOW_FILES = YES
|
||||||
|
|
||||||
# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
|
# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
|
||||||
# page. This will remove the Namespaces entry from the Quick Index and from the
|
# page. This will remove the Namespaces entry from the Quick Index and from the
|
||||||
@@ -823,7 +844,8 @@ WARN_LOGFILE = doxygen.log
|
|||||||
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
|
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
|
||||||
# Note: If this tag is empty the current directory is searched.
|
# Note: If this tag is empty the current directory is searched.
|
||||||
|
|
||||||
INPUT = @CMAKE_SOURCE_DIR@
|
INPUT = "@CMAKE_SOURCE_DIR@/README.md" \
|
||||||
|
"@CMAKE_SOURCE_DIR@/src"
|
||||||
|
|
||||||
# This tag can be used to specify the character encoding of the source files
|
# This tag can be used to specify the character encoding of the source files
|
||||||
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
|
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
|
||||||
@@ -851,12 +873,7 @@ INPUT_ENCODING = UTF-8
|
|||||||
# *.vhdl, *.ucf, *.qsf and *.ice.
|
# *.vhdl, *.ucf, *.qsf and *.ice.
|
||||||
|
|
||||||
FILE_PATTERNS = *.cpp \
|
FILE_PATTERNS = *.cpp \
|
||||||
*.cc \
|
|
||||||
*.cxx \
|
|
||||||
*.h \
|
*.h \
|
||||||
*.hh \
|
|
||||||
*.hxx \
|
|
||||||
*.hpp \
|
|
||||||
*.dox \
|
*.dox \
|
||||||
*.md \
|
*.md \
|
||||||
*.gif
|
*.gif
|
||||||
@@ -874,8 +891,7 @@ RECURSIVE = YES
|
|||||||
# Note that relative paths are relative to the directory from which doxygen is
|
# Note that relative paths are relative to the directory from which doxygen is
|
||||||
# run.
|
# run.
|
||||||
|
|
||||||
EXCLUDE = @CMAKE_SOURCE_DIR@/examples \
|
EXCLUDE =
|
||||||
@CMAKE_SOURCE_DIR@/src/private
|
|
||||||
|
|
||||||
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
|
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
|
||||||
# directories that are symbolic links (a Unix file system feature) are excluded
|
# directories that are symbolic links (a Unix file system feature) are excluded
|
||||||
@@ -901,7 +917,9 @@ EXCLUDE_PATTERNS = */.svn/* \
|
|||||||
*/test/* \
|
*/test/* \
|
||||||
*/tests/* \
|
*/tests/* \
|
||||||
*_p.cpp \
|
*_p.cpp \
|
||||||
*_export.h
|
*_p.h \
|
||||||
|
*_export.h \
|
||||||
|
*/fwd_headers/*
|
||||||
|
|
||||||
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
|
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
|
||||||
# (namespaces, classes, functions, etc.) that should be excluded from the
|
# (namespaces, classes, functions, etc.) that should be excluded from the
|
||||||
@@ -925,7 +943,7 @@ EXAMPLE_PATH =
|
|||||||
# *.h) to filter out the source-files in the directories. If left blank all
|
# *.h) to filter out the source-files in the directories. If left blank all
|
||||||
# files are included.
|
# files are included.
|
||||||
|
|
||||||
EXAMPLE_PATTERNS = *
|
EXAMPLE_PATTERNS =
|
||||||
|
|
||||||
# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
|
# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
|
||||||
# searched for input files to be used with the \include or \dontinclude commands
|
# searched for input files to be used with the \include or \dontinclude commands
|
||||||
@@ -938,7 +956,8 @@ EXAMPLE_RECURSIVE = NO
|
|||||||
# that contain images that are to be included in the documentation (see the
|
# that contain images that are to be included in the documentation (see the
|
||||||
# \image command).
|
# \image command).
|
||||||
|
|
||||||
IMAGE_PATH = "@CMAKE_CURRENT_SOURCE_DIR@" \
|
IMAGE_PATH = "@CMAKE_SOURCE_DIR@/images" \
|
||||||
|
"@CMAKE_CURRENT_SOURCE_DIR@" \
|
||||||
"@CMAKE_SOURCE_DIR@/screencap.gif"
|
"@CMAKE_SOURCE_DIR@/screencap.gif"
|
||||||
|
|
||||||
# The INPUT_FILTER tag can be used to specify a program that doxygen should
|
# The INPUT_FILTER tag can be used to specify a program that doxygen should
|
||||||
@@ -1008,7 +1027,7 @@ USE_MDFILE_AS_MAINPAGE = "@CMAKE_SOURCE_DIR@/README.md"
|
|||||||
# also VERBATIM_HEADERS is set to NO.
|
# also VERBATIM_HEADERS is set to NO.
|
||||||
# The default value is: NO.
|
# The default value is: NO.
|
||||||
|
|
||||||
SOURCE_BROWSER = NO
|
SOURCE_BROWSER = YES
|
||||||
|
|
||||||
# Setting the INLINE_SOURCES tag to YES will include the body of functions,
|
# Setting the INLINE_SOURCES tag to YES will include the body of functions,
|
||||||
# classes and enums directly into the documentation.
|
# classes and enums directly into the documentation.
|
||||||
@@ -1027,13 +1046,13 @@ STRIP_CODE_COMMENTS = YES
|
|||||||
# entity all documented functions referencing it will be listed.
|
# entity all documented functions referencing it will be listed.
|
||||||
# The default value is: NO.
|
# The default value is: NO.
|
||||||
|
|
||||||
REFERENCED_BY_RELATION = NO
|
REFERENCED_BY_RELATION = YES
|
||||||
|
|
||||||
# If the REFERENCES_RELATION tag is set to YES then for each documented function
|
# If the REFERENCES_RELATION tag is set to YES then for each documented function
|
||||||
# all documented entities called/used by that function will be listed.
|
# all documented entities called/used by that function will be listed.
|
||||||
# The default value is: NO.
|
# The default value is: NO.
|
||||||
|
|
||||||
REFERENCES_RELATION = NO
|
REFERENCES_RELATION = YES
|
||||||
|
|
||||||
# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
|
# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
|
||||||
# to YES then the hyperlinks from functions in REFERENCES_RELATION and
|
# to YES then the hyperlinks from functions in REFERENCES_RELATION and
|
||||||
@@ -1081,7 +1100,39 @@ USE_HTAGS = NO
|
|||||||
# See also: Section \class.
|
# See also: Section \class.
|
||||||
# The default value is: YES.
|
# The default value is: YES.
|
||||||
|
|
||||||
VERBATIM_HEADERS = NO
|
VERBATIM_HEADERS = YES
|
||||||
|
|
||||||
|
# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
|
||||||
|
# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
|
||||||
|
# cost of reduced performance. This can be particularly helpful with template
|
||||||
|
# rich C++ code for which doxygen's built-in parser lacks the necessary type
|
||||||
|
# information.
|
||||||
|
# Note: The availability of this option depends on whether or not doxygen was
|
||||||
|
# generated with the -Duse_libclang=ON option for CMake.
|
||||||
|
# The default value is: NO.
|
||||||
|
|
||||||
|
CLANG_ASSISTED_PARSING = NO
|
||||||
|
|
||||||
|
# If clang assisted parsing is enabled you can provide the compiler with command
|
||||||
|
# line options that you would normally use when invoking the compiler. Note that
|
||||||
|
# the include paths will already be set by doxygen for the files and directories
|
||||||
|
# specified with INPUT and INCLUDE_PATH.
|
||||||
|
# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
|
||||||
|
|
||||||
|
CLANG_OPTIONS =
|
||||||
|
|
||||||
|
# If clang assisted parsing is enabled you can provide the clang parser with the
|
||||||
|
# path to the directory containing a file called compile_commands.json. This
|
||||||
|
# file is the compilation database (see:
|
||||||
|
# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the
|
||||||
|
# options used when the source files were built. This is equivalent to
|
||||||
|
# specifying the "-p" option to a clang tool, such as clang-check. These options
|
||||||
|
# will then be passed to the parser. Any options specified with CLANG_OPTIONS
|
||||||
|
# will be added as well.
|
||||||
|
# Note: The availability of this option depends on whether or not doxygen was
|
||||||
|
# generated with the -Duse_libclang=ON option for CMake.
|
||||||
|
|
||||||
|
CLANG_DATABASE_PATH =
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to the alphabetical class index
|
# Configuration options related to the alphabetical class index
|
||||||
@@ -1099,7 +1150,7 @@ ALPHABETICAL_INDEX = YES
|
|||||||
# Minimum value: 1, maximum value: 20, default value: 5.
|
# Minimum value: 1, maximum value: 20, default value: 5.
|
||||||
# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
|
# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
|
||||||
|
|
||||||
COLS_IN_ALPHA_INDEX = 3
|
COLS_IN_ALPHA_INDEX = 5
|
||||||
|
|
||||||
# In case all classes in a project start with a common prefix, all classes will
|
# In case all classes in a project start with a common prefix, all classes will
|
||||||
# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
|
# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
|
||||||
@@ -1247,7 +1298,7 @@ HTML_TIMESTAMP = YES
|
|||||||
# The default value is: YES.
|
# The default value is: YES.
|
||||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||||
|
|
||||||
#TOO NEW HTML_DYNAMIC_MENUS = YES
|
HTML_DYNAMIC_MENUS = YES
|
||||||
|
|
||||||
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
|
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
|
||||||
# documentation will contain sections that can be hidden and shown after the
|
# documentation will contain sections that can be hidden and shown after the
|
||||||
@@ -1348,7 +1399,7 @@ CHM_FILE =
|
|||||||
HHC_LOCATION =
|
HHC_LOCATION =
|
||||||
|
|
||||||
# The GENERATE_CHI flag controls if a separate .chi index file is generated
|
# The GENERATE_CHI flag controls if a separate .chi index file is generated
|
||||||
# (YES) or that it should be included in the master .chm file (NO).
|
# (YES) or that it should be included in the main .chm file (NO).
|
||||||
# The default value is: NO.
|
# The default value is: NO.
|
||||||
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
|
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
|
||||||
|
|
||||||
@@ -1389,7 +1440,7 @@ GENERATE_QHP = @HAVE_QHELPGEN@
|
|||||||
# the HTML output folder.
|
# the HTML output folder.
|
||||||
# This tag requires that the tag GENERATE_QHP is set to YES.
|
# This tag requires that the tag GENERATE_QHP is set to YES.
|
||||||
|
|
||||||
QCH_FILE = @DOXYGEN_OUTPUT_DIR@/qch/kddockwidgets-api.qch
|
QCH_FILE = "@DOXYGEN_OUTPUT_DIR@/qch/kddockwidgets-api.qch"
|
||||||
|
|
||||||
# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
|
# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
|
||||||
# Project output. For more information please see Qt Help Project / Namespace
|
# Project output. For more information please see Qt Help Project / Namespace
|
||||||
@@ -1397,7 +1448,7 @@ QCH_FILE = @DOXYGEN_OUTPUT_DIR@/qch/kddockwidgets-api.qch
|
|||||||
# The default value is: org.doxygen.Project.
|
# The default value is: org.doxygen.Project.
|
||||||
# This tag requires that the tag GENERATE_QHP is set to YES.
|
# This tag requires that the tag GENERATE_QHP is set to YES.
|
||||||
|
|
||||||
QHP_NAMESPACE = com.kdab.KDDockWidgets.api.@KDDockWidgets_VERSION@
|
QHP_NAMESPACE = com.kdab.@PROJECT_NAME@.api.@KDDockWidgets_VERSION@
|
||||||
|
|
||||||
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
|
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
|
||||||
# Help Project output. For more information please see Qt Help Project / Virtual
|
# Help Project output. For more information please see Qt Help Project / Virtual
|
||||||
@@ -1406,7 +1457,7 @@ QHP_NAMESPACE = com.kdab.KDDockWidgets.api.@KDDockWidgets_VERSION@
|
|||||||
# The default value is: doc.
|
# The default value is: doc.
|
||||||
# This tag requires that the tag GENERATE_QHP is set to YES.
|
# This tag requires that the tag GENERATE_QHP is set to YES.
|
||||||
|
|
||||||
QHP_VIRTUAL_FOLDER = KDDockWidgets-@KDDockWidgets_VERSION@
|
QHP_VIRTUAL_FOLDER = @PROJECT_NAME@-@KDDockWidgets_VERSION@
|
||||||
|
|
||||||
# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
|
# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
|
||||||
# filter to add. For more information please see Qt Help Project / Custom
|
# filter to add. For more information please see Qt Help Project / Custom
|
||||||
@@ -1436,7 +1487,7 @@ QHP_SECT_FILTER_ATTRS =
|
|||||||
# generated .qhp file.
|
# generated .qhp file.
|
||||||
# This tag requires that the tag GENERATE_QHP is set to YES.
|
# This tag requires that the tag GENERATE_QHP is set to YES.
|
||||||
|
|
||||||
QHG_LOCATION = @QHELPGEN_EXECUTABLE@
|
QHG_LOCATION = "@QHELPGEN_EXECUTABLE@"
|
||||||
|
|
||||||
# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
|
# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
|
||||||
# generated, together with the HTML files, they form an Eclipse help plugin. To
|
# generated, together with the HTML files, they form an Eclipse help plugin. To
|
||||||
@@ -1514,12 +1565,12 @@ EXT_LINKS_IN_WINDOW = NO
|
|||||||
# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see
|
# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see
|
||||||
# https://inkscape.org) to generate formulas as SVG images instead of PNGs for
|
# https://inkscape.org) to generate formulas as SVG images instead of PNGs for
|
||||||
# the HTML output. These images will generally look nicer at scaled resolutions.
|
# the HTML output. These images will generally look nicer at scaled resolutions.
|
||||||
# Possible values are: png The default and svg Looks nicer but requires the
|
# Possible values are: png (the default) and svg (looks nicer but requires the
|
||||||
# pdf2svg tool.
|
# pdf2svg or inkscape tool).
|
||||||
# The default value is: png.
|
# The default value is: png.
|
||||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||||
|
|
||||||
#TOO NEW HTML_FORMULA_FORMAT = png
|
HTML_FORMULA_FORMAT = png
|
||||||
|
|
||||||
# Use this tag to change the font size of LaTeX formulas included as images in
|
# Use this tag to change the font size of LaTeX formulas included as images in
|
||||||
# the HTML documentation. When you change the font size after a successful
|
# the HTML documentation. When you change the font size after a successful
|
||||||
@@ -1545,7 +1596,7 @@ FORMULA_TRANSPARENT = YES
|
|||||||
# to create new LaTeX commands to be used in formulas as building blocks. See
|
# to create new LaTeX commands to be used in formulas as building blocks. See
|
||||||
# the section "Including formulas" for details.
|
# the section "Including formulas" for details.
|
||||||
|
|
||||||
#TOO NEW FORMULA_MACROFILE =
|
FORMULA_MACROFILE =
|
||||||
|
|
||||||
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
|
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
|
||||||
# https://www.mathjax.org) which uses client side JavaScript for the rendering
|
# https://www.mathjax.org) which uses client side JavaScript for the rendering
|
||||||
@@ -1709,7 +1760,7 @@ LATEX_OUTPUT = latex
|
|||||||
# the output language.
|
# the output language.
|
||||||
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
||||||
|
|
||||||
LATEX_CMD_NAME =
|
LATEX_CMD_NAME = latex
|
||||||
|
|
||||||
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
|
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
|
||||||
# index for LaTeX.
|
# index for LaTeX.
|
||||||
@@ -1729,7 +1780,7 @@ MAKEINDEX_CMD_NAME = makeindex
|
|||||||
# The default value is: makeindex.
|
# The default value is: makeindex.
|
||||||
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
||||||
|
|
||||||
#TOO NEW LATEX_MAKEINDEX_CMD = makeindex
|
LATEX_MAKEINDEX_CMD = makeindex
|
||||||
|
|
||||||
# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
|
# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
|
||||||
# documents. This may be useful for small projects and may help to save some
|
# documents. This may be useful for small projects and may help to save some
|
||||||
@@ -1815,13 +1866,15 @@ LATEX_EXTRA_FILES =
|
|||||||
|
|
||||||
PDF_HYPERLINKS = YES
|
PDF_HYPERLINKS = YES
|
||||||
|
|
||||||
# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
|
# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as
|
||||||
# the PDF file directly from the LaTeX files. Set this option to YES, to get a
|
# specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX
|
||||||
# higher quality PDF documentation.
|
# files. Set this option to YES, to get a higher quality PDF documentation.
|
||||||
|
#
|
||||||
|
# See also section LATEX_CMD_NAME for selecting the engine.
|
||||||
# The default value is: YES.
|
# The default value is: YES.
|
||||||
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
||||||
|
|
||||||
USE_PDFLATEX = YES
|
USE_PDFLATEX = NO
|
||||||
|
|
||||||
# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
|
# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
|
||||||
# command to the generated LaTeX files. This will instruct LaTeX to keep running
|
# command to the generated LaTeX files. This will instruct LaTeX to keep running
|
||||||
@@ -1871,7 +1924,7 @@ LATEX_TIMESTAMP = NO
|
|||||||
# LATEX_OUTPUT directory will be used.
|
# LATEX_OUTPUT directory will be used.
|
||||||
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
||||||
|
|
||||||
#TOO NEW LATEX_EMOJI_DIRECTORY =
|
LATEX_EMOJI_DIRECTORY =
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to the RTF output
|
# Configuration options related to the RTF output
|
||||||
@@ -2015,7 +2068,7 @@ XML_PROGRAMLISTING = YES
|
|||||||
# The default value is: NO.
|
# The default value is: NO.
|
||||||
# This tag requires that the tag GENERATE_XML is set to YES.
|
# This tag requires that the tag GENERATE_XML is set to YES.
|
||||||
|
|
||||||
#TOO NEW XML_NS_MEMB_FILE_SCOPE = NO
|
XML_NS_MEMB_FILE_SCOPE = NO
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to the DOCBOOK output
|
# Configuration options related to the DOCBOOK output
|
||||||
@@ -2111,7 +2164,7 @@ ENABLE_PREPROCESSING = YES
|
|||||||
# The default value is: NO.
|
# The default value is: NO.
|
||||||
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
|
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
|
||||||
|
|
||||||
MACRO_EXPANSION = YES
|
MACRO_EXPANSION = NO
|
||||||
|
|
||||||
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
|
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
|
||||||
# the macro expansion is limited to the macros specified with the PREDEFINED and
|
# the macro expansion is limited to the macros specified with the PREDEFINED and
|
||||||
@@ -2177,7 +2230,7 @@ EXPAND_AS_DEFINED =
|
|||||||
|
|
||||||
SKIP_FUNCTION_MACROS = YES
|
SKIP_FUNCTION_MACROS = YES
|
||||||
|
|
||||||
#---------------------------------------------------------------------------O
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to external references
|
# Configuration options related to external references
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -2194,15 +2247,17 @@ SKIP_FUNCTION_MACROS = YES
|
|||||||
# the path). If a tag file is not located in the directory in which doxygen is
|
# the path). If a tag file is not located in the directory in which doxygen is
|
||||||
# run, you must also specify the path to the tagfile here.
|
# run, you must also specify the path to the tagfile here.
|
||||||
|
|
||||||
TAGFILES = @QDOC_TAG_DIR@/qtcore/qtcore.tags=https://doc.qt.io/qt-5/ \
|
TAGFILES = "@QDOC_TAG_DIR@/qtcore/qtcore.tags=https://doc.qt.io/qt-5/" \
|
||||||
@QDOC_TAG_DIR@/qtgui/qtgui.tags=https://doc.qt.io/qt-5/ \
|
"@QDOC_TAG_DIR@/qtgui/qtgui.tags=https://doc.qt.io/qt-5/" \
|
||||||
@QDOC_TAG_DIR@/qtwidgets/qtwidgets.tags=https://doc.qt.io/qt-5/
|
"@QDOC_TAG_DIR@/qtwidgets/qtwidgets.tags=https://doc.qt.io/qt-5/" \
|
||||||
|
"@QDOC_TAG_DIR@/qtprintsupport/qtprintsupport.tags=https://doc.qt.io/qt-5/" \
|
||||||
|
"@QDOC_TAG_DIR@/qtxml/qtxml.tags=https://doc.qt.io/qt-5/"
|
||||||
|
|
||||||
# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
|
# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
|
||||||
# tag file that is based on the input files it reads. See section "Linking to
|
# tag file that is based on the input files it reads. See section "Linking to
|
||||||
# external documentation" for more information about the usage of tag files.
|
# external documentation" for more information about the usage of tag files.
|
||||||
|
|
||||||
GENERATE_TAGFILE = kddockwidgets.tag
|
GENERATE_TAGFILE = "@DOXYGEN_OUTPUT_DIR@/kddockwidgets.tags"
|
||||||
|
|
||||||
# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
|
# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
|
||||||
# the class index. If set to NO, only the inherited external classes will be
|
# the class index. If set to NO, only the inherited external classes will be
|
||||||
@@ -2403,7 +2458,7 @@ GRAPHICAL_HIERARCHY = YES
|
|||||||
# The default value is: YES.
|
# The default value is: YES.
|
||||||
# This tag requires that the tag HAVE_DOT is set to YES.
|
# This tag requires that the tag HAVE_DOT is set to YES.
|
||||||
|
|
||||||
DIRECTORY_GRAPH = NO
|
DIRECTORY_GRAPH = YES
|
||||||
|
|
||||||
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
|
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
|
||||||
# generated by dot. For an explanation of the image formats see the section
|
# generated by dot. For an explanation of the image formats see the section
|
||||||
@@ -2468,7 +2523,7 @@ PLANTUML_JAR_PATH =
|
|||||||
# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
|
# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
|
||||||
# configuration file for plantuml.
|
# configuration file for plantuml.
|
||||||
|
|
||||||
#TOO NEW PLANTUML_CFG_FILE =
|
PLANTUML_CFG_FILE =
|
||||||
|
|
||||||
# When using plantuml, the specified paths are searched for files specified by
|
# When using plantuml, the specified paths are searched for files specified by
|
||||||
# the !include statement in a plantuml block.
|
# the !include statement in a plantuml block.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<div style="float: left;">
|
<div style="float: left;">
|
||||||
<img src="kdab-logo-16x16.png">
|
<img src="kdab-logo-16x16.png">
|
||||||
<font style="font-weight: bold;">© 2019-2021 Klarälvdalens Datakonsult AB (KDAB)</font>
|
<font style="font-weight: bold;">© 2019-2022 Klarälvdalens Datakonsult AB (KDAB)</font>
|
||||||
<br>
|
<br>
|
||||||
"The Qt, C++ and OpenGL Experts"<br>
|
"The Qt, C++ and OpenGL Experts"<br>
|
||||||
<a href="https://www.kdab.com/">https://www.kdab.com/</a>
|
<a href="https://www.kdab.com/">https://www.kdab.com/</a>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Sergio Martins <sergio.martins@kdab.com>
|
# Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
@@ -10,6 +10,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MyFrameworkWidgetFactory.h"
|
#include "MyFrameworkWidgetFactory.h"
|
||||||
|
#include "MyTitleBar_CSS.h"
|
||||||
|
|
||||||
#include <kddockwidgets/FrameworkWidgetFactory.h>
|
#include <kddockwidgets/FrameworkWidgetFactory.h>
|
||||||
|
|
||||||
@@ -89,11 +90,13 @@ MySeparator::~MySeparator() = default;
|
|||||||
|
|
||||||
KDDockWidgets::TitleBar * CustomWidgetFactory::createTitleBar(KDDockWidgets::Frame *frame) const
|
KDDockWidgets::TitleBar * CustomWidgetFactory::createTitleBar(KDDockWidgets::Frame *frame) const
|
||||||
{
|
{
|
||||||
|
// Feel free to return MyTitleBar_CSS here instead, but just for education purposes!
|
||||||
return new MyTitleBar(frame);
|
return new MyTitleBar(frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
KDDockWidgets::TitleBar * CustomWidgetFactory::createTitleBar(KDDockWidgets::FloatingWindow *fw) const
|
KDDockWidgets::TitleBar * CustomWidgetFactory::createTitleBar(KDDockWidgets::FloatingWindow *fw) const
|
||||||
{
|
{
|
||||||
|
// Feel free to return MyTitleBar_CSS here instead, but just for education purposes!
|
||||||
return new MyTitleBar(fw);
|
return new MyTitleBar(fw);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,4 +104,3 @@ Layouting::Separator * CustomWidgetFactory::createSeparator(Layouting::Widget *p
|
|||||||
{
|
{
|
||||||
return new MySeparator(parent);
|
return new MySeparator(parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
@@ -56,9 +56,9 @@ MyMainWindow::MyMainWindow(const QString &uniqueName, KDDockWidgets::MainWindowO
|
|||||||
, m_dockwidget5DoesntCloseBeforeRestore(dockwidget5DoesntCloseBeforeRestore)
|
, m_dockwidget5DoesntCloseBeforeRestore(dockwidget5DoesntCloseBeforeRestore)
|
||||||
{
|
{
|
||||||
auto menubar = menuBar();
|
auto menubar = menuBar();
|
||||||
auto fileMenu = new QMenu(QStringLiteral("File"));
|
auto fileMenu = new QMenu(QStringLiteral("File"), this);
|
||||||
m_toggleMenu = new QMenu(QStringLiteral("Toggle"));
|
m_toggleMenu = new QMenu(QStringLiteral("Toggle"), this);
|
||||||
auto miscMenu = new QMenu(QStringLiteral("Misc"));
|
auto miscMenu = new QMenu(QStringLiteral("Misc"), this);
|
||||||
|
|
||||||
menubar->addMenu(fileMenu);
|
menubar->addMenu(fileMenu);
|
||||||
menubar->addMenu(m_toggleMenu);
|
menubar->addMenu(m_toggleMenu);
|
||||||
@@ -115,6 +115,10 @@ MyMainWindow::MyMainWindow(const QString &uniqueName, KDDockWidgets::MainWindowO
|
|||||||
|
|
||||||
setAffinities({ affinityName });
|
setAffinities({ affinityName });
|
||||||
createDockWidgets();
|
createDockWidgets();
|
||||||
|
|
||||||
|
if (options & KDDockWidgets::MainWindowOption_HasCentralWidget) {
|
||||||
|
setPersistentCentralWidget(new MyWidget1());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MyMainWindow::~MyMainWindow()
|
MyMainWindow::~MyMainWindow()
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
86
examples/dockwidgets/MyTitleBar_CSS.h
Normal file
86
examples/dockwidgets/MyTitleBar_CSS.h
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
/*
|
||||||
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
|
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
|
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|
||||||
|
Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef EXAMPLETITLEBAR_CSS_H
|
||||||
|
#define EXAMPLETITLEBAR_CSS_H
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <kddockwidgets/private/widgets/TitleBarWidget_p.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Shows how to implement a custom titlebar which uses "Qt StyleSheets".
|
||||||
|
*
|
||||||
|
* Derive from KDDockWidgets::DefaultWidgetFactory and override the two createTitleBar() methods.
|
||||||
|
*
|
||||||
|
* To try it out, modify examples/dockwidgets/MyFrameworkWidgetFactory.cpp to return a MyTitleBar_CSS instance.
|
||||||
|
* Run the example with: ./bin/kddockwidgets_example -p
|
||||||
|
*
|
||||||
|
* WARNINGS:
|
||||||
|
* - Qt StyleSheets are not recommended for new applications. Often you are able to style 90% of
|
||||||
|
* the application but then hit a road block. QStyle is much more powerful and flexible.
|
||||||
|
* - The Qt maintainers have manifested intention to deprecated stylesheets.
|
||||||
|
* - Stylesheets are supported for built-in QWidgets (QPushButton, QComboBox, etc.), any widget
|
||||||
|
* that's not in Qt needs to be crafted by the user, that includes, for example, having to paint
|
||||||
|
* your background manually. KDDockWidget::TitleBarWidget does this for your convenience though.
|
||||||
|
* - Qt stylesheets don't react to property changes (known old bug in Qt), for example:
|
||||||
|
* QLineEdit[readOnly="true"] { color: gray }
|
||||||
|
* this won't trigger when readOnly changes to false, you need to set/unset. This is QTBUG-51236
|
||||||
|
* - KDDockWidgets::TitleBarWidget::isFocused is a property, there for needs to workaround the
|
||||||
|
* above bug by unsetting the sheet and setting it again.
|
||||||
|
*/
|
||||||
|
class MyTitleBar_CSS : public KDDockWidgets::TitleBarWidget
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit MyTitleBar_CSS(KDDockWidgets::Frame *frame)
|
||||||
|
: KDDockWidgets::TitleBarWidget(frame)
|
||||||
|
{
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
explicit MyTitleBar_CSS(KDDockWidgets::FloatingWindow *fw)
|
||||||
|
: KDDockWidgets::TitleBarWidget(fw)
|
||||||
|
{
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
~MyTitleBar_CSS() override;
|
||||||
|
|
||||||
|
void initStyleSheet()
|
||||||
|
{
|
||||||
|
// Or use qApp->setStyleSheet(), as you prefer
|
||||||
|
setStyleSheet(QStringLiteral("KDDockWidgets--TitleBarWidget {"
|
||||||
|
"background: blue"
|
||||||
|
"}"
|
||||||
|
"KDDockWidgets--TitleBarWidget:hover {"
|
||||||
|
"background: red"
|
||||||
|
"}"
|
||||||
|
"KDDockWidgets--TitleBarWidget[isFocused=true] {"
|
||||||
|
"background: green"
|
||||||
|
"}"));
|
||||||
|
}
|
||||||
|
|
||||||
|
void init()
|
||||||
|
{
|
||||||
|
initStyleSheet();
|
||||||
|
connect(this, &KDDockWidgets::TitleBar::isFocusedChanged, this, [this] {
|
||||||
|
// Workaround QTBUG-51236, this makes the [isFocused=true] syntax useful
|
||||||
|
setStyleSheet(QString());
|
||||||
|
initStyleSheet();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
MyTitleBar_CSS::~MyTitleBar_CSS()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
@@ -120,9 +120,17 @@ int main(int argc, char **argv)
|
|||||||
parser.addOption(dontCloseBeforeRestore);
|
parser.addOption(dontCloseBeforeRestore);
|
||||||
|
|
||||||
QCommandLineOption showButtonsInTabBarIfTitleBarHidden("show-buttons-in-tabbar-if-titlebar-hidden",
|
QCommandLineOption showButtonsInTabBarIfTitleBarHidden("show-buttons-in-tabbar-if-titlebar-hidden",
|
||||||
QCoreApplication::translate("main", "If we're not using title bars we'll still show the close and float button in the tab bar"));
|
QCoreApplication::translate("main", "If we're not using title bars we'll still show the close and float button in the tab bar"));
|
||||||
parser.addOption(showButtonsInTabBarIfTitleBarHidden);
|
parser.addOption(showButtonsInTabBarIfTitleBarHidden);
|
||||||
|
|
||||||
|
QCommandLineOption centralWidget("central-widget",
|
||||||
|
QCoreApplication::translate("main", "The main window will have a non-detachable central widget"));
|
||||||
|
parser.addOption(centralWidget);
|
||||||
|
|
||||||
|
QCommandLineOption ctxtMenuOnTabs("allow-switch-tabs-via-menu",
|
||||||
|
QCoreApplication::translate("main", "Allow switching tabs via context menu in tabs area"));
|
||||||
|
parser.addOption(ctxtMenuOnTabs);
|
||||||
|
|
||||||
#if defined(DOCKS_DEVELOPER_MODE)
|
#if defined(DOCKS_DEVELOPER_MODE)
|
||||||
parser.addOption(centralFrame);
|
parser.addOption(centralFrame);
|
||||||
|
|
||||||
@@ -164,6 +172,9 @@ int main(int argc, char **argv)
|
|||||||
options = parser.isSet(centralFrame) ? MainWindowOption_HasCentralFrame
|
options = parser.isSet(centralFrame) ? MainWindowOption_HasCentralFrame
|
||||||
: MainWindowOption_None;
|
: MainWindowOption_None;
|
||||||
|
|
||||||
|
if (parser.isSet(centralWidget))
|
||||||
|
options |= MainWindowOption_HasCentralWidget;
|
||||||
|
|
||||||
if (parser.isSet(noQtTool))
|
if (parser.isSet(noQtTool))
|
||||||
internalFlags |= KDDockWidgets::Config::InternalFlag_DontUseQtToolWindowsForFloatingWindows;
|
internalFlags |= KDDockWidgets::Config::InternalFlag_DontUseQtToolWindowsForFloatingWindows;
|
||||||
|
|
||||||
@@ -230,6 +241,9 @@ int main(int argc, char **argv)
|
|||||||
if (parser.isSet(tabsHaveCloseButton))
|
if (parser.isSet(tabsHaveCloseButton))
|
||||||
flags |= KDDockWidgets::Config::Flag_TabsHaveCloseButton;
|
flags |= KDDockWidgets::Config::Flag_TabsHaveCloseButton;
|
||||||
|
|
||||||
|
if (parser.isSet(ctxtMenuOnTabs))
|
||||||
|
flags |= KDDockWidgets::Config::Flag_AllowSwitchingTabsViaMenu;
|
||||||
|
|
||||||
|
|
||||||
if (parser.isSet(doubleClickMaximize))
|
if (parser.isSet(doubleClickMaximize))
|
||||||
flags |= KDDockWidgets::Config::Flag_DoubleClickMaximizes;
|
flags |= KDDockWidgets::Config::Flag_DoubleClickMaximizes;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Sergio Martins <sergio.martins@kdab.com>
|
# Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Sergio Martins <sergio.martins@kdab.com>
|
# Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Sergio Martins <sergio.martins@kdab.com>
|
# Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Sergio Martins <sergio.martins@kdab.com>
|
# Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Sergio Martins <sergio.martins@kdab.com>
|
# Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Sergio Martins <sergio.martins@kdab.com>
|
# Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sergio Martins <sergio.martins@kdab.com>
|
Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
@@ -1,27 +1,44 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
#
|
#
|
||||||
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||||
#
|
#
|
||||||
|
set(PYTHON_BINDING_NAMESPACE "PyKDDockWidgets")
|
||||||
|
|
||||||
set(PYTHON_VERSION "3.7" CACHE STRING "Use specific python version to build the project.")
|
# Just to fix warnings with --warn-uninitialized
|
||||||
find_package(Python3 ${PYTHON_VERSION} REQUIRED COMPONENTS Interpreter Development)
|
if(NOT DEFINED SHIBOKEN_CUSTOM_PREFIX) #look for shiboken in a custom location
|
||||||
|
set(SHIBOKEN_CUSTOM_PREFIX "")
|
||||||
if(${PROJECT_NAME}_QT6)
|
endif()
|
||||||
find_package(Shiboken6 REQUIRED)
|
if(NOT DEFINED PYSIDE_CUSTOM_PREFIX) #look for pyside in a custom location
|
||||||
find_package(PySide6 ${Qt6Widgets_VERSION} EXACT REQUIRED)
|
set(PYSIDE_CUSTOM_PREFIX "")
|
||||||
include(PySide6ModuleBuild)
|
|
||||||
set(PYSIDE_MAJOR_VERSION "6")
|
|
||||||
else()
|
|
||||||
find_package(Shiboken2 REQUIRED)
|
|
||||||
find_package(PySide2 ${Qt5Widgets_VERSION} EXACT REQUIRED)
|
|
||||||
include(PySide2ModuleBuild)
|
|
||||||
set(PYSIDE_MAJOR_VERSION "2")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(${PROJECT_NAME}_QT6)
|
||||||
|
set(PYSIDE_MAJOR_VERSION "6")
|
||||||
|
set(PYTHON_BINDING_NAMESPACE "${PYTHON_BINDING_NAMESPACE}Qt${PYSIDE_MAJOR_VERSION}")
|
||||||
|
set(QtWidgets_VERSION ${Qt6Widgets_VERSION})
|
||||||
|
else()
|
||||||
|
set(PYSIDE_MAJOR_VERSION "2")
|
||||||
|
set(QtWidgets_VERSION ${Qt5Widgets_VERSION})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_package(Python3 3.7 REQUIRED COMPONENTS Interpreter Development)
|
||||||
|
find_package(Shiboken${PYSIDE_MAJOR_VERSION} REQUIRED)
|
||||||
|
find_package(PySide${PYSIDE_MAJOR_VERSION} ${QtWidgets_VERSION} EXACT REQUIRED)
|
||||||
|
|
||||||
|
if(NOT ${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX)
|
||||||
|
set(${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
||||||
|
endif()
|
||||||
|
set(BINDINGS_DIR "${INSTALL_LIBRARY_DIR}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages/${PYTHON_BINDING_NAMESPACE}")
|
||||||
|
set(${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX "${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX}/${BINDINGS_DIR}")
|
||||||
|
|
||||||
|
include(PySide${PYSIDE_MAJOR_VERSION}ModuleBuild)
|
||||||
add_subdirectory(PyKDDockWidgets)
|
add_subdirectory(PyKDDockWidgets)
|
||||||
|
if(${PROJECT_NAME}_TESTS)
|
||||||
|
add_subdirectory(tests)
|
||||||
|
endif()
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
@@ -48,9 +48,10 @@ set(PyKDDockWidgets_target_include_directories
|
|||||||
# Libraries that will be necessary to link the target, this will used in the command 'target_link_libraries'
|
# Libraries that will be necessary to link the target, this will used in the command 'target_link_libraries'
|
||||||
set(PyKDDockWidgets_target_link_libraries
|
set(PyKDDockWidgets_target_link_libraries
|
||||||
KDAB::kddockwidgets
|
KDAB::kddockwidgets
|
||||||
Qt${QT_MAJOR_VERSION}::Core
|
Qt${Qt_VERSION_MAJOR}::Core
|
||||||
Qt${QT_MAJOR_VERSION}::Gui
|
Qt${Qt_VERSION_MAJOR}::Gui
|
||||||
Qt${QT_MAJOR_VERSION}::Widgets
|
Qt${Qt_VERSION_MAJOR}::Widgets
|
||||||
|
${Python3_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
||||||
# changes on these files should trigger a new generation
|
# changes on these files should trigger a new generation
|
||||||
@@ -80,4 +81,19 @@ create_python_bindings(
|
|||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/__init__.py.cmake ${CMAKE_CURRENT_BINARY_DIR}/__init__.py @ONLY)
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/__init__.py.cmake ${CMAKE_CURRENT_BINARY_DIR}/__init__.py @ONLY)
|
||||||
|
|
||||||
# install
|
# install
|
||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/__init__.py DESTINATION ${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX}/PyKDDockWidgets)
|
install(
|
||||||
|
FILES
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/__init__.py
|
||||||
|
$<TARGET_FILE:KDAB::kddockwidgets>
|
||||||
|
DESTINATION
|
||||||
|
${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX}
|
||||||
|
)
|
||||||
|
if(NOT WIN32)
|
||||||
|
install(
|
||||||
|
FILES
|
||||||
|
$<TARGET_LINKER_FILE:KDAB::kddockwidgets>
|
||||||
|
$<TARGET_SONAME_FILE:KDAB::kddockwidgets>
|
||||||
|
DESTINATION
|
||||||
|
${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
@@ -10,10 +10,32 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
import os
|
||||||
|
|
||||||
__all__ = ['KDDockWidgets']
|
__all__ = ['KDDockWidgets']
|
||||||
|
|
||||||
# Preload PySide2 libraries to avoid missing libraries while loading KDDockWidgets
|
def setupLibraryPath():
|
||||||
|
if sys.platform != 'win32':
|
||||||
|
return
|
||||||
|
|
||||||
|
if "@PYSIDE_MAJOR_VERSION@" == "6":
|
||||||
|
from shiboken@PYSIDE_MAJOR_VERSION@ import Shiboken
|
||||||
|
else:
|
||||||
|
from shiboken@PYSIDE_MAJOR_VERSION@ import shiboken@PYSIDE_MAJOR_VERSION@ as Shiboken
|
||||||
|
|
||||||
|
from PySide@PYSIDE_MAJOR_VERSION@ import QtCore
|
||||||
|
extra_dll_dirs = [ os.path.abspath(os.path.dirname(Shiboken.__file__)),
|
||||||
|
os.path.abspath(os.path.dirname(QtCore.__file__)),
|
||||||
|
os.path.abspath(os.path.dirname(__file__)) ]
|
||||||
|
|
||||||
|
if sys.version_info[0] == 3 and sys.version_info[1] >= 8:
|
||||||
|
for dll_dir in extra_dll_dirs:
|
||||||
|
os.add_dll_directory(dll_dir)
|
||||||
|
|
||||||
|
for dll_dir in extra_dll_dirs:
|
||||||
|
os.environ['PATH'] = os.fspath(dll_dir) + os.pathsep + os.environ['PATH']
|
||||||
|
|
||||||
|
# Preload PySide libraries to avoid missing libraries while loading KDDockWidgets
|
||||||
try:
|
try:
|
||||||
from PySide@PYSIDE_MAJOR_VERSION@ import QtCore
|
from PySide@PYSIDE_MAJOR_VERSION@ import QtCore
|
||||||
# Create a alias for PySide module so we can use a single import in source files
|
# Create a alias for PySide module so we can use a single import in source files
|
||||||
@@ -22,3 +44,5 @@ try:
|
|||||||
except Exception:
|
except Exception:
|
||||||
print("Failed to load PySide")
|
print("Failed to load PySide")
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
setupLibraryPath()
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
163
python/examples-qt6/MyMainWindow.py
Normal file
163
python/examples-qt6/MyMainWindow.py
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
#
|
||||||
|
# This file is part of KDDockWidgets.
|
||||||
|
#
|
||||||
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
#
|
||||||
|
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||||
|
#
|
||||||
|
|
||||||
|
from PyKDDockWidgetsQt6 import KDDockWidgets
|
||||||
|
|
||||||
|
from PySide6 import QtCore, QtWidgets, QtGui
|
||||||
|
|
||||||
|
from MyWidget1 import MyWidget1
|
||||||
|
from MyWidget2 import MyWidget2
|
||||||
|
from MyWidget3 import MyWidget3
|
||||||
|
|
||||||
|
def newMyWidget(parent = None):
|
||||||
|
randomNumber = QtCore.QRandomGenerator.global_().bounded(0, 100) + 1
|
||||||
|
if (randomNumber < 50):
|
||||||
|
if (randomNumber < 33):
|
||||||
|
return MyWidget1(parent)
|
||||||
|
else:
|
||||||
|
return MyWidget3(parent)
|
||||||
|
else:
|
||||||
|
return MyWidget2(parent)
|
||||||
|
|
||||||
|
class MyMainWindow(KDDockWidgets.MainWindow):
|
||||||
|
s_count = 0
|
||||||
|
s_menuCount = 0
|
||||||
|
|
||||||
|
def __init__(self, uniqueName, options = KDDockWidgets.MainWindowOption_None, dockWidget0IsNonClosable = False, nonDockableDockWidget9 = False, restoreIsRelative = False, maxSizeForDockWidget8 = False, affinityName = "", parent = None):
|
||||||
|
super().__init__(uniqueName, options, parent)
|
||||||
|
self.m_dockWidget0IsNonClosable = dockWidget0IsNonClosable
|
||||||
|
self.m_dockWidget9IsNonDockable = nonDockableDockWidget9
|
||||||
|
self.m_restoreIsRelative = restoreIsRelative
|
||||||
|
self.m_maxSizeForDockWidget8 = maxSizeForDockWidget8
|
||||||
|
self.m_dockwidgets = []
|
||||||
|
|
||||||
|
menubar = self.menuBar()
|
||||||
|
fileMenu = QtWidgets.QMenu("File")
|
||||||
|
self.m_toggleMenu = QtWidgets.QMenu("Toggle")
|
||||||
|
menubar.addMenu(fileMenu)
|
||||||
|
menubar.addMenu(self.m_toggleMenu)
|
||||||
|
|
||||||
|
newAction = fileMenu.addAction("New DockWidget")
|
||||||
|
newAction.triggered.connect(self._newDockWidget)
|
||||||
|
|
||||||
|
saveLayoutAction = fileMenu.addAction("Save Layout")
|
||||||
|
saveLayoutAction.triggered.connect(self._saveLayout)
|
||||||
|
|
||||||
|
restoreLayoutAction = fileMenu.addAction("Restore Layout")
|
||||||
|
restoreLayoutAction.triggered.connect(self._restoreLayout)
|
||||||
|
|
||||||
|
closeAllAction = fileMenu.addAction("Close All")
|
||||||
|
closeAllAction.triggered.connect(self._closeAll)
|
||||||
|
|
||||||
|
layoutEqually = fileMenu.addAction("Layout Equally")
|
||||||
|
layoutEqually.triggered.connect(self.layoutEqually)
|
||||||
|
|
||||||
|
quitAction = fileMenu.addAction("Quit")
|
||||||
|
quitAction.triggered.connect(QtWidgets.QApplication.instance().quit)
|
||||||
|
|
||||||
|
self.setAffinities([ affinityName ])
|
||||||
|
self.createDockWidgets()
|
||||||
|
|
||||||
|
def _newDockWidget(self):
|
||||||
|
MyMainWindow.s_menuCount += 1
|
||||||
|
w = newMyWidget(self)
|
||||||
|
w.setGeometry(100, 100, 400, 400)
|
||||||
|
dock = KDDockWidgets.DockWidget("new dock %d"%(MyMainWindow.s_menuCount))
|
||||||
|
dock.setWidget(w)
|
||||||
|
dock.resize(600, 600)
|
||||||
|
dock.show()
|
||||||
|
self.m_dockwidgets.append(dock)
|
||||||
|
|
||||||
|
def _saveLayout(self):
|
||||||
|
#saver = KDDockWidgets.LayoutSaver()
|
||||||
|
#result = saver.saveToFile("mylayout.json")
|
||||||
|
#print("Saving layout to disk. Result=", result)
|
||||||
|
print("Not available")
|
||||||
|
|
||||||
|
def _restoreLayout(self):
|
||||||
|
#options = KDDockWidgets.RestoreOption_None
|
||||||
|
#if self.m_restoreIsRelative:
|
||||||
|
# options |= KDDockWidgets.RestoreOption_RelativeToMainWindow
|
||||||
|
#saver = KDDockWidgets.LayoutSaver(options)
|
||||||
|
#saver.restoreFromFile("mylayout.json")
|
||||||
|
print("Not available")
|
||||||
|
|
||||||
|
def _closeAll(self):
|
||||||
|
for dw in self.m_dockwidgets:
|
||||||
|
dw.close()
|
||||||
|
|
||||||
|
def createDockWidgets(self):
|
||||||
|
if self.m_dockWidget9IsNonDockable:
|
||||||
|
numDockWidgets = 10
|
||||||
|
else:
|
||||||
|
numDockWidgets = 9
|
||||||
|
|
||||||
|
# numDockWidgets = 2
|
||||||
|
# Create 9 KDDockWidget::DockWidget and the respective widgets they're hosting (MyWidget instances)
|
||||||
|
for i in range(numDockWidgets):
|
||||||
|
self.m_dockwidgets.append(self.newDockWidget())
|
||||||
|
|
||||||
|
# MainWindow::addDockWidget() attaches a dock widget to the main window:
|
||||||
|
initialOpts = KDDockWidgets.InitialOption(KDDockWidgets.InitialVisibilityOption.StartHidden, QtCore.QSize(500, 500))
|
||||||
|
self.addDockWidget(self.m_dockwidgets[0], KDDockWidgets.Location_OnBottom, None, initialOpts)
|
||||||
|
|
||||||
|
# Here, for finer granularity we specify right of dockwidgets[0]:
|
||||||
|
self.addDockWidget(self.m_dockwidgets[1], KDDockWidgets.Location_OnRight, self.m_dockwidgets[0])
|
||||||
|
|
||||||
|
self.addDockWidget(self.m_dockwidgets[2], KDDockWidgets.Location_OnLeft)
|
||||||
|
self.addDockWidget(self.m_dockwidgets[3], KDDockWidgets.Location_OnBottom)
|
||||||
|
self.addDockWidget(self.m_dockwidgets[4], KDDockWidgets.Location_OnBottom)
|
||||||
|
|
||||||
|
# Tab two dock widgets together
|
||||||
|
self.m_dockwidgets[3].addDockWidgetAsTab(self.m_dockwidgets[5])
|
||||||
|
|
||||||
|
# 6 is floating, as it wasn't added to the main window via MainWindow::addDockWidget().
|
||||||
|
# and we tab 7 with it.
|
||||||
|
self.m_dockwidgets[6].addDockWidgetAsTab(self.m_dockwidgets[7])
|
||||||
|
|
||||||
|
# Floating windows also support nesting, here we add 8 to the bottom of the group
|
||||||
|
self.m_dockwidgets[6].addDockWidgetToContainingWindow(self.m_dockwidgets[8], KDDockWidgets.Location_OnBottom)
|
||||||
|
|
||||||
|
floatingWindow = self.m_dockwidgets[6].window()
|
||||||
|
floatingWindow.move(100, 100)
|
||||||
|
|
||||||
|
def newDockWidget(self):
|
||||||
|
# Passing options is optional, we just want to illustrate Option_NotClosable here
|
||||||
|
options = KDDockWidgets.DockWidget.Option_None
|
||||||
|
if (MyMainWindow.s_count == 0) and self.m_dockWidget0IsNonClosable:
|
||||||
|
options |= KDDockWidgets.DockWidget.Option_NotClosable
|
||||||
|
|
||||||
|
if (MyMainWindow.s_count == 9) and self.m_dockWidget9IsNonDockable:
|
||||||
|
options |= KDDockWidgets.DockWidget.Option_NotDockable
|
||||||
|
|
||||||
|
dock = KDDockWidgets.DockWidget("DockWidget #%d"%(MyMainWindow.s_count), options)
|
||||||
|
dock.setAffinities(self.affinities()); # optional, just to show the feature. Pass -mi to the example to see incompatible dock widgets
|
||||||
|
|
||||||
|
if MyMainWindow.s_count == 1:
|
||||||
|
dock.setIcon(QtGui.QIcon.fromTheme("mail-message"))
|
||||||
|
|
||||||
|
myWidget = newMyWidget(self)
|
||||||
|
if (MyMainWindow.s_count == 8) and self.m_maxSizeForDockWidget8:
|
||||||
|
# Set a maximum size on dock #8
|
||||||
|
myWidget.setMaximumSize(200, 200)
|
||||||
|
|
||||||
|
dock.setWidget(myWidget)
|
||||||
|
|
||||||
|
if dock.options() & KDDockWidgets.DockWidget.Option_NotDockable:
|
||||||
|
dock.setTitle("DockWidget #%d (%s)" %(MyMainWindow.s_count, "non dockable"))
|
||||||
|
else:
|
||||||
|
dock.setTitle("DockWidget #%d"%(MyMainWindow.s_count))
|
||||||
|
|
||||||
|
dock.resize(600, 600)
|
||||||
|
self.m_toggleMenu.addAction(dock.toggleAction())
|
||||||
|
MyMainWindow.s_count += 1
|
||||||
|
return dock
|
||||||
|
|
||||||
51
python/examples-qt6/MyWidget.py
Normal file
51
python/examples-qt6/MyWidget.py
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
#
|
||||||
|
# This file is part of KDDockWidgets.
|
||||||
|
#
|
||||||
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
#
|
||||||
|
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||||
|
#
|
||||||
|
|
||||||
|
import PyKDDockWidgetsQt6
|
||||||
|
|
||||||
|
from PySide6 import QtWidgets, QtGui, QtCore
|
||||||
|
|
||||||
|
class MyWidget(QtWidgets.QWidget):
|
||||||
|
s_images = {}
|
||||||
|
def __init__(self, backgroundFile, logoFile, parent = None):
|
||||||
|
super().__init__(parent)
|
||||||
|
|
||||||
|
self.m_background = self._lookupImage(backgroundFile)
|
||||||
|
self.m_logo = self._lookupImage(logoFile)
|
||||||
|
|
||||||
|
def _lookupImage(self, imageName):
|
||||||
|
if imageName == "":
|
||||||
|
return None
|
||||||
|
|
||||||
|
if imageName not in MyWidget.s_images:
|
||||||
|
MyWidget.s_images[imageName] = QtGui.QImage(imageName)
|
||||||
|
|
||||||
|
return MyWidget.s_images[imageName]
|
||||||
|
|
||||||
|
def drawLogo(self, p):
|
||||||
|
|
||||||
|
if not self.m_logo:
|
||||||
|
return
|
||||||
|
|
||||||
|
ratio = self.m_logo.height() / (self.m_logo.width() * 1.0)
|
||||||
|
maxWidth = int(0.80 * self.size().width())
|
||||||
|
maxHeight = int(0.80 * self.size().height())
|
||||||
|
proposedHeight = int(maxWidth * ratio)
|
||||||
|
if (proposedHeight <= maxHeight):
|
||||||
|
width = maxWidth
|
||||||
|
else:
|
||||||
|
width = int(maxHeight / ratio)
|
||||||
|
|
||||||
|
height = int(width * ratio)
|
||||||
|
targetLogoRect = QtCore.QRect(0,0, width, height)
|
||||||
|
targetLogoRect.moveCenter(self.rect().center() + QtCore.QPoint(0, -int(self.size().height() * 0.00)))
|
||||||
|
p.drawImage(targetLogoRect, self.m_logo, self.m_logo.rect());
|
||||||
|
|
||||||
29
python/examples-qt6/MyWidget1.py
Normal file
29
python/examples-qt6/MyWidget1.py
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#
|
||||||
|
# This file is part of KDDockWidgets.
|
||||||
|
#
|
||||||
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
#
|
||||||
|
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||||
|
#
|
||||||
|
|
||||||
|
import PyKDDockWidgetsQt6
|
||||||
|
|
||||||
|
from PySide6 import QtWidgets, QtGui
|
||||||
|
|
||||||
|
from MyWidget import MyWidget
|
||||||
|
|
||||||
|
|
||||||
|
class MyWidget1(MyWidget):
|
||||||
|
def __init__(self, parent = None):
|
||||||
|
super().__init__(":/assets/triangles.png", ":/assets/KDAB_bubble_white.png", parent)
|
||||||
|
|
||||||
|
|
||||||
|
def paintEvent(self, ev):
|
||||||
|
p = QtGui.QPainter(self)
|
||||||
|
p.fillRect(self.rect(), QtGui.QColor(0xCC, 0xCC, 0xCC))
|
||||||
|
p.drawImage(self.m_background.rect(), self.m_background, self.m_background.rect())
|
||||||
|
self.drawLogo(p)
|
||||||
|
|
||||||
27
python/examples-qt6/MyWidget2.py
Normal file
27
python/examples-qt6/MyWidget2.py
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
#
|
||||||
|
# This file is part of KDDockWidgets.
|
||||||
|
#
|
||||||
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
#
|
||||||
|
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||||
|
#
|
||||||
|
|
||||||
|
import PyKDDockWidgetsQt6
|
||||||
|
|
||||||
|
from PySide6 import QtWidgets, QtGui, QtCore
|
||||||
|
|
||||||
|
from MyWidget import MyWidget
|
||||||
|
|
||||||
|
class MyWidget2(MyWidget):
|
||||||
|
|
||||||
|
def __init__(self, parent = None):
|
||||||
|
super().__init__("", ":/assets/KDAB_bubble_blue.png", parent)
|
||||||
|
|
||||||
|
def paintEvent(self, ev):
|
||||||
|
p = QtGui.QPainter(self)
|
||||||
|
p.fillRect(self.rect(), QtCore.Qt.white);
|
||||||
|
self.drawLogo(p)
|
||||||
|
|
||||||
32
python/examples-qt6/MyWidget3.py
Normal file
32
python/examples-qt6/MyWidget3.py
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
#
|
||||||
|
# This file is part of KDDockWidgets.
|
||||||
|
#
|
||||||
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
#
|
||||||
|
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||||
|
#
|
||||||
|
|
||||||
|
import PyKDDockWidgetsQt6
|
||||||
|
|
||||||
|
from PySide6 import QtWidgets, QtGui, QtCore
|
||||||
|
|
||||||
|
from MyWidget import MyWidget
|
||||||
|
|
||||||
|
class MyWidget3(MyWidget):
|
||||||
|
|
||||||
|
def __init__(self, parent = None):
|
||||||
|
super().__init__(":/assets/base.png", ":/assets/KDAB_bubble_fulcolor.png", parent)
|
||||||
|
self.m_triangle = QtGui.QImage(":/assets/tri.png")
|
||||||
|
|
||||||
|
def paintEvent(self, ev):
|
||||||
|
p = QtGui.QPainter(self)
|
||||||
|
p.fillRect(self.rect(), QtGui.QColor(0xD5, 0xD5, 0xD5))
|
||||||
|
p.drawImage(self.m_background.rect(), self.m_background, self.m_background.rect())
|
||||||
|
|
||||||
|
targetRect = QtCore.QRect(QtCore.QPoint(self.width() - self.m_triangle.width(), self.height() - self.m_triangle.height()), self.m_triangle.size())
|
||||||
|
|
||||||
|
self.drawLogo(p)
|
||||||
|
|
||||||
8
python/examples-qt6/README.txt
Normal file
8
python/examples-qt6/README.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Running python example
|
||||||
|
======================
|
||||||
|
|
||||||
|
Generate resource file with:
|
||||||
|
~# rcc -g python -o rc_assets.py ../../examples/dockwidgets/resources_example.qrc
|
||||||
|
|
||||||
|
Run the app:
|
||||||
|
~# python3 main.py
|
||||||
38
python/examples-qt6/main.py
Normal file
38
python/examples-qt6/main.py
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
#
|
||||||
|
# This file is part of KDDockWidgets.
|
||||||
|
#
|
||||||
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
#
|
||||||
|
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||||
|
#
|
||||||
|
|
||||||
|
from PyKDDockWidgetsQt6 import KDDockWidgets
|
||||||
|
from MyMainWindow import MyMainWindow
|
||||||
|
|
||||||
|
from PySide6 import QtWidgets, QtCore
|
||||||
|
|
||||||
|
import sys
|
||||||
|
try:
|
||||||
|
import rc_assets
|
||||||
|
except:
|
||||||
|
exit("Oops.. rc_assets needs to be generated first.\nPlease run:\n rcc -g python -o rc_assets.py ../../examples/dockwidgets/resources_example.qrc\n(Make sure to use the rcc from the Qt6 version used to generate the bindings!)")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
|
||||||
|
QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps)
|
||||||
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
|
|
||||||
|
app.setOrganizationName("KDAB")
|
||||||
|
app.setApplicationName("Test app")
|
||||||
|
app.setStyle(QtWidgets.QStyleFactory.create("Fusion"))
|
||||||
|
|
||||||
|
mainWindow = MyMainWindow("MyMainWindow", )
|
||||||
|
mainWindow.setWindowTitle("Main Window 1")
|
||||||
|
mainWindow.resize(1200, 1200)
|
||||||
|
mainWindow.show()
|
||||||
|
|
||||||
|
app.exec_()
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
from PyKDDockWidgets import KDDockWidgets
|
from PyKDDockWidgets import KDDockWidgets
|
||||||
|
|
||||||
from PySide import QtCore, QtWidgets, QtGui
|
from PySide2 import QtCore, QtWidgets, QtGui
|
||||||
|
|
||||||
from MyWidget1 import MyWidget1
|
from MyWidget1 import MyWidget1
|
||||||
from MyWidget2 import MyWidget2
|
from MyWidget2 import MyWidget2
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
import PyKDDockWidgets
|
import PyKDDockWidgets
|
||||||
|
|
||||||
from PySide import QtWidgets, QtGui, QtCore
|
from PySide2 import QtWidgets, QtGui, QtCore
|
||||||
|
|
||||||
class MyWidget(QtWidgets.QWidget):
|
class MyWidget(QtWidgets.QWidget):
|
||||||
s_images = {}
|
s_images = {}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
import PyKDDockWidgets
|
import PyKDDockWidgets
|
||||||
|
|
||||||
from PySide import QtWidgets, QtGui
|
from PySide2 import QtWidgets, QtGui
|
||||||
|
|
||||||
from MyWidget import MyWidget
|
from MyWidget import MyWidget
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
import PyKDDockWidgets
|
import PyKDDockWidgets
|
||||||
|
|
||||||
from PySide import QtWidgets, QtGui, QtCore
|
from PySide2 import QtWidgets, QtGui, QtCore
|
||||||
|
|
||||||
from MyWidget import MyWidget
|
from MyWidget import MyWidget
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
import PyKDDockWidgets
|
import PyKDDockWidgets
|
||||||
|
|
||||||
from PySide import QtWidgets, QtGui, QtCore
|
from PySide2 import QtWidgets, QtGui, QtCore
|
||||||
|
|
||||||
from MyWidget import MyWidget
|
from MyWidget import MyWidget
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
@@ -12,10 +12,13 @@
|
|||||||
from PyKDDockWidgets import KDDockWidgets
|
from PyKDDockWidgets import KDDockWidgets
|
||||||
from MyMainWindow import MyMainWindow
|
from MyMainWindow import MyMainWindow
|
||||||
|
|
||||||
from PySide import QtWidgets, QtCore
|
from PySide2 import QtWidgets, QtCore
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import rc_assets
|
try:
|
||||||
|
import rc_assets
|
||||||
|
except:
|
||||||
|
exit("Oops.. rc_assets needs to be generated first.\nPlease run:\n rcc -g python -o rc_assets.py ../../examples/dockwidgets/resources_example.qrc\n(Make sure to use the rcc from the Qt5 version used to generate the bindings!)")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
|
QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
|
||||||
|
|||||||
40
python/tests/CMakeLists.txt
Normal file
40
python/tests/CMakeLists.txt
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
#
|
||||||
|
# This file is part of KDDockWidgets.
|
||||||
|
#
|
||||||
|
# SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
|
# Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
#
|
||||||
|
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||||
|
#
|
||||||
|
|
||||||
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.py.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.py @ONLY)
|
||||||
|
|
||||||
|
set(TEST_PYTHONPATH
|
||||||
|
${CMAKE_BINARY_DIR}/python
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
)
|
||||||
|
set(TEST_LIBRARYPATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
set(TEST_LIBRARY_VAR "PATH")
|
||||||
|
string(REPLACE "\\" "/" TEST_PYTHONPATH "${TEST_PYTHONPATH}")
|
||||||
|
string(REPLACE "\\" "/" TEST_LIBRARYPATH "${TEST_LIBRARYPATH}")
|
||||||
|
list(JOIN TEST_PYTHONPATH "\\;" TEST_PYTHONPATH)
|
||||||
|
list(JOIN TEST_LIBRARYPATH "\\;" TEST_LIBRARYPATH)
|
||||||
|
else()
|
||||||
|
set(TEST_LIBRARY_VAR "LD_LIBRARY_PATH")
|
||||||
|
list(JOIN TEST_PYTHONPATH ":" TEST_PYTHONPATH)
|
||||||
|
list(JOIN TEST_LIBRARYPATH ":" TEST_LIBRARYPATH)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(PYTHON_ENV_COMMON "PYTHONPATH=${TEST_PYTHONPATH};${TEST_LIBRARY_VAR}=${TEST_LIBRARYPATH}")
|
||||||
|
|
||||||
|
file(GLOB TEST_FILES ${CMAKE_CURRENT_SOURCE_DIR}/tst_*.py)
|
||||||
|
foreach(test_file ${TEST_FILES})
|
||||||
|
get_filename_component(test_name ${test_file} NAME_WE)
|
||||||
|
add_test(${test_name} ${Python3_EXECUTABLE} ${test_file})
|
||||||
|
set_tests_properties(${test_name} PROPERTIES ENVIRONMENT "${PYTHON_ENV_COMMON}")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
19
python/tests/config.py.cmake
Normal file
19
python/tests/config.py.cmake
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# This file is part of KDDockWidgets.
|
||||||
|
#
|
||||||
|
# SPDX-FileCopyrightText: 2021-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
|
# Author: Renato Araujo <renato.araujo@kdab.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
#
|
||||||
|
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||||
|
#
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
class TstConfig(object):
|
||||||
|
bindingsNamespace = "PyKDDockWidgets"
|
||||||
|
|
||||||
|
def initLibraryPath():
|
||||||
|
if sys.platform == 'win32' and sys.version_info[0] == 3 and sys.version_info[1] >= 8:
|
||||||
|
os.add_dll_directory("@CMAKE_RUNTIME_OUTPUT_DIRECTORY@")
|
||||||
30
python/tests/tst_importModule.py
Normal file
30
python/tests/tst_importModule.py
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# This file is part of KDDockWidgets.
|
||||||
|
#
|
||||||
|
# SPDX-FileCopyrightText: 2021-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
|
# Author: Renato Araujo <renato.araujo@kdab.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
#
|
||||||
|
# Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||||
|
#
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
import importlib
|
||||||
|
import inspect
|
||||||
|
|
||||||
|
from config import TstConfig
|
||||||
|
|
||||||
|
class TestImportModules(unittest.TestCase):
|
||||||
|
def test_importModules(self):
|
||||||
|
m = importlib.import_module(TstConfig.bindingsNamespace + '.KDDockWidgets')
|
||||||
|
moduleSymbols = []
|
||||||
|
for t in inspect.getmembers(m):
|
||||||
|
moduleSymbols.append(t[0])
|
||||||
|
|
||||||
|
symbols = ['MainWindow', 'DockWidget']
|
||||||
|
for symbol in symbols:
|
||||||
|
self.assertIn(symbol, moduleSymbols)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
TstConfig.initLibraryPath()
|
||||||
|
unittest.main()
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# This file is part of KDDockWidgets.
|
# This file is part of KDDockWidgets.
|
||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
# SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
# Author: Sergio Martins <sergio.martins@kdab.com>
|
# Author: Sergio Martins <sergio.martins@kdab.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
@@ -74,6 +74,7 @@ set(DOCKSLIBS_SRCS
|
|||||||
private/DropAreaWithCentralFrame_p.h
|
private/DropAreaWithCentralFrame_p.h
|
||||||
private/WidgetResizeHandler.cpp
|
private/WidgetResizeHandler.cpp
|
||||||
private/WidgetResizeHandler_p.h
|
private/WidgetResizeHandler_p.h
|
||||||
|
private/WindowZOrder_x11_p.h
|
||||||
private/indicators/NullIndicators.cpp
|
private/indicators/NullIndicators.cpp
|
||||||
private/indicators/NullIndicators_p.h
|
private/indicators/NullIndicators_p.h
|
||||||
private/indicators/ClassicIndicators.cpp
|
private/indicators/ClassicIndicators.cpp
|
||||||
@@ -137,6 +138,10 @@ set(DOCKS_INSTALLABLE_PRIVATE_WIDGET_INCLUDES
|
|||||||
private/widgets/TabWidgetWidget_p.h
|
private/widgets/TabWidgetWidget_p.h
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(DOCKS_INSTALLABLE_PRIVATE_QUICK_INCLUDES
|
||||||
|
private/quick/QWidgetAdapter_quick_p.h
|
||||||
|
)
|
||||||
|
|
||||||
if(${PROJECT_NAME}_QTQUICK)
|
if(${PROJECT_NAME}_QTQUICK)
|
||||||
set(DOCKSLIBS_SRCS ${DOCKSLIBS_SRCS}
|
set(DOCKSLIBS_SRCS ${DOCKSLIBS_SRCS}
|
||||||
DockWidgetQuick.cpp
|
DockWidgetQuick.cpp
|
||||||
@@ -241,9 +246,16 @@ add_library(KDAB::kddockwidgets ALIAS kddockwidgets)
|
|||||||
set_target_properties(kddockwidgets PROPERTIES OUTPUT_NAME "kddockwidgets${KDDockWidgets_LIBRARY_QTID}")
|
set_target_properties(kddockwidgets PROPERTIES OUTPUT_NAME "kddockwidgets${KDDockWidgets_LIBRARY_QTID}")
|
||||||
set_compiler_flags(kddockwidgets)
|
set_compiler_flags(kddockwidgets)
|
||||||
|
|
||||||
|
if(${PROJECT_NAME}_QT6)
|
||||||
|
set(DOCKS_INCLUDES_INSTALL_PATH "include/kddockwidgets-qt6")
|
||||||
|
else()
|
||||||
|
set(DOCKS_INCLUDES_INSTALL_PATH "include/")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
target_include_directories(kddockwidgets
|
target_include_directories(kddockwidgets
|
||||||
PUBLIC
|
PUBLIC
|
||||||
$<INSTALL_INTERFACE:include>
|
$<INSTALL_INTERFACE:${DOCKS_INCLUDES_INSTALL_PATH}>
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/fwd_headers>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/fwd_headers>
|
||||||
PRIVATE
|
PRIVATE
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
@@ -283,16 +295,20 @@ if(CMAKE_COMPILER_IS_GNUCXX OR IS_CLANG_BUILD)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(${PROJECT_NAME}_QTQUICK)
|
if(${PROJECT_NAME}_QTQUICK)
|
||||||
target_link_libraries(kddockwidgets PUBLIC Qt${QT_MAJOR_VERSION}::Widgets Qt${QT_MAJOR_VERSION}::Quick Qt${QT_MAJOR_VERSION}::QuickControls2)
|
target_link_libraries(kddockwidgets PUBLIC Qt${Qt_VERSION_MAJOR}::Widgets Qt${Qt_VERSION_MAJOR}::Quick Qt${Qt_VERSION_MAJOR}::QuickControls2)
|
||||||
else()
|
else()
|
||||||
target_link_libraries(kddockwidgets PUBLIC Qt${QT_MAJOR_VERSION}::Widgets)
|
target_link_libraries(kddockwidgets PUBLIC Qt${Qt_VERSION_MAJOR}::Widgets PRIVATE Qt${Qt_VERSION_MAJOR}::WidgetsPrivate)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
target_link_libraries(kddockwidgets PRIVATE Qt${QT_MAJOR_VERSION}::GuiPrivate dwmapi)
|
target_link_libraries(kddockwidgets PRIVATE Qt${Qt_VERSION_MAJOR}::GuiPrivate dwmapi)
|
||||||
elseif(NOT APPLE AND NOT EMSCRIPTEN AND NOT ${PROJECT_NAME}_QT6)
|
elseif(NOT APPLE AND NOT EMSCRIPTEN AND NOT ${PROJECT_NAME}_QT6 AND ${PROJECT_NAME}_X11EXTRAS)
|
||||||
find_package(Qt${QT_MAJOR_VERSION}X11Extras)
|
find_package(Qt${Qt_VERSION_MAJOR}X11Extras)
|
||||||
target_link_libraries(kddockwidgets PUBLIC Qt${QT_MAJOR_VERSION}::X11Extras)
|
target_link_libraries(kddockwidgets PUBLIC Qt${Qt_VERSION_MAJOR}::X11Extras)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(${PROJECT_NAME}_XLib)
|
||||||
|
target_link_libraries(kddockwidgets PRIVATE X11)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_target_properties(kddockwidgets PROPERTIES
|
set_target_properties(kddockwidgets PROPERTIES
|
||||||
@@ -327,22 +343,23 @@ if(MSVC AND NOT ${PROJECT_NAME}_STATIC)
|
|||||||
install(FILES "$<TARGET_PDB_FILE_DIR:kddockwidgets>/$<TARGET_PDB_FILE_NAME:kddockwidgets>" DESTINATION ${INSTALL_LIBRARY_DIR} CONFIGURATIONS Debug RelWithDebInfo)
|
install(FILES "$<TARGET_PDB_FILE_DIR:kddockwidgets>/$<TARGET_PDB_FILE_NAME:kddockwidgets>" DESTINATION ${INSTALL_LIBRARY_DIR} CONFIGURATIONS Debug RelWithDebInfo)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(FILES ${camelcase_HEADERS} DESTINATION include/kddockwidgets)
|
install(FILES ${camelcase_HEADERS} DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets)
|
||||||
install(FILES ${DOCKS_INSTALLABLE_INCLUDES} DESTINATION include/kddockwidgets)
|
install(FILES ${DOCKS_INSTALLABLE_INCLUDES} DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets)
|
||||||
install(FILES ${DOCKS_INSTALLABLE_PRIVATE_INCLUDES} DESTINATION include/kddockwidgets/private)
|
install(FILES ${DOCKS_INSTALLABLE_PRIVATE_INCLUDES} DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private)
|
||||||
install(FILES private/multisplitter/Item_p.h DESTINATION include/kddockwidgets/private/multisplitter)
|
install(FILES private/multisplitter/Item_p.h DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/multisplitter)
|
||||||
install(FILES private/multisplitter/Widget.h DESTINATION include/kddockwidgets/private/multisplitter)
|
install(FILES private/multisplitter/Widget.h DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/multisplitter)
|
||||||
install(FILES private/multisplitter/Separator_p.h DESTINATION include/kddockwidgets/private/multisplitter)
|
install(FILES private/multisplitter/Separator_p.h DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/multisplitter)
|
||||||
install(FILES private/indicators/ClassicIndicators_p.h DESTINATION include/kddockwidgets/private/indicators)
|
install(FILES private/indicators/ClassicIndicators_p.h DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/indicators)
|
||||||
install(FILES private/indicators/SegmentedIndicators_p.h DESTINATION include/kddockwidgets/private/indicators)
|
install(FILES private/indicators/SegmentedIndicators_p.h DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/indicators)
|
||||||
|
|
||||||
if(KDDockWidgets_QTQUICK)
|
if(KDDockWidgets_QTQUICK)
|
||||||
install(FILES private/multisplitter/Separator_quick.h DESTINATION include/kddockwidgets/private/multisplitter)
|
install(FILES ${DOCKS_INSTALLABLE_PRIVATE_QUICK_INCLUDES} DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/quick)
|
||||||
install(FILES private/multisplitter/Widget_quick.h DESTINATION include/kddockwidgets/private/multisplitter)
|
install(FILES private/multisplitter/Separator_quick.h DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/multisplitter)
|
||||||
|
install(FILES private/multisplitter/Widget_quick.h DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/multisplitter)
|
||||||
else()
|
else()
|
||||||
install(FILES ${DOCKS_INSTALLABLE_PRIVATE_WIDGET_INCLUDES} DESTINATION include/kddockwidgets/private/widgets)
|
install(FILES ${DOCKS_INSTALLABLE_PRIVATE_WIDGET_INCLUDES} DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/widgets)
|
||||||
install(FILES private/multisplitter/Separator_qwidget.h DESTINATION include/kddockwidgets/private/multisplitter)
|
install(FILES private/multisplitter/Separator_qwidget.h DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/multisplitter)
|
||||||
install(FILES private/multisplitter/Widget_qwidget.h DESTINATION include/kddockwidgets/private/multisplitter)
|
install(FILES private/multisplitter/Widget_qwidget.h DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/multisplitter)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Generate library version files
|
# Generate library version files
|
||||||
@@ -351,21 +368,21 @@ ecm_setup_version(
|
|||||||
${${PROJECT_NAME}_VERSION}
|
${${PROJECT_NAME}_VERSION}
|
||||||
VARIABLE_PREFIX KDDOCKWIDGETS
|
VARIABLE_PREFIX KDDOCKWIDGETS
|
||||||
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kddockwidgets_version.h"
|
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kddockwidgets_version.h"
|
||||||
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KDDockWidgetsConfigVersion.cmake"
|
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KDDockWidgets${KDDockWidgets_LIBRARY_QTID}ConfigVersion.cmake"
|
||||||
SOVERSION ${${PROJECT_NAME}_SOVERSION}
|
SOVERSION ${${PROJECT_NAME}_SOVERSION}
|
||||||
COMPATIBILITY AnyNewerVersion
|
COMPATIBILITY AnyNewerVersion
|
||||||
)
|
)
|
||||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/kddockwidgets_version.h" DESTINATION include/kddockwidgets)
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/kddockwidgets_version.h" DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets)
|
||||||
|
|
||||||
install(EXPORT kddockwidgetsTargets
|
install(EXPORT kddockwidgetsTargets
|
||||||
FILE KDDockWidgetsTargets.cmake
|
FILE KDDockWidgets${KDDockWidgets_LIBRARY_QTID}Targets.cmake
|
||||||
NAMESPACE KDAB::
|
NAMESPACE KDAB::
|
||||||
DESTINATION ${INSTALL_LIBRARY_DIR}/cmake/KDDockWidgets
|
DESTINATION ${INSTALL_LIBRARY_DIR}/cmake/KDDockWidgets${KDDockWidgets_LIBRARY_QTID}
|
||||||
)
|
)
|
||||||
configure_file(KDDockWidgetsConfig.cmake.in KDDockWidgetsConfig.cmake @ONLY)
|
configure_file(KDDockWidgetsConfig.cmake.in KDDockWidgets${KDDockWidgets_LIBRARY_QTID}Config.cmake @ONLY)
|
||||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KDDockWidgetsConfig.cmake"
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KDDockWidgets${KDDockWidgets_LIBRARY_QTID}Config.cmake"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/KDDockWidgetsConfigVersion.cmake"
|
"${CMAKE_CURRENT_BINARY_DIR}/KDDockWidgets${KDDockWidgets_LIBRARY_QTID}ConfigVersion.cmake"
|
||||||
DESTINATION ${INSTALL_LIBRARY_DIR}/cmake/KDDockWidgets
|
DESTINATION ${INSTALL_LIBRARY_DIR}/cmake/KDDockWidgets${KDDockWidgets_LIBRARY_QTID}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(${PROJECT_NAME}_DEVELOPER_MODE)
|
if(${PROJECT_NAME}_DEVELOPER_MODE)
|
||||||
@@ -376,7 +393,7 @@ if(${PROJECT_NAME}_DEVELOPER_MODE)
|
|||||||
|
|
||||||
if(NOT ${PROJECT_NAME}_QTQUICK AND KDDockWidgets_LINTER) # TODO: We can support it
|
if(NOT ${PROJECT_NAME}_QTQUICK AND KDDockWidgets_LINTER) # TODO: We can support it
|
||||||
add_executable(kddockwidgets_linter layoutlinter_main.cpp)
|
add_executable(kddockwidgets_linter layoutlinter_main.cpp)
|
||||||
target_link_libraries(kddockwidgets_linter kddockwidgets Qt${QT_MAJOR_VERSION}::Widgets)
|
target_link_libraries(kddockwidgets_linter kddockwidgets Qt${Qt_VERSION_MAJOR}::Widgets)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of KDDockWidgets.
|
This file is part of KDDockWidgets.
|
||||||
|
|
||||||
SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user