diff options
7 files changed, 18 insertions, 13 deletions
diff --git a/examples/widgets/painting/affine/CMakeLists.txt b/examples/widgets/painting/affine/CMakeLists.txt index c3323693b8..cd264e6be4 100644 --- a/examples/widgets/painting/affine/CMakeLists.txt +++ b/examples/widgets/painting/affine/CMakeLists.txt @@ -39,7 +39,7 @@ target_include_directories(affine PUBLIC # special case begin if(NOT TARGET painting_shared::painting_shared) - add_subdirectory(../shared painting_shared) + include(../shared/use_lib.cmake) endif() # special case end diff --git a/examples/widgets/painting/composition/CMakeLists.txt b/examples/widgets/painting/composition/CMakeLists.txt index 8192439737..f693d48569 100644 --- a/examples/widgets/painting/composition/CMakeLists.txt +++ b/examples/widgets/painting/composition/CMakeLists.txt @@ -39,7 +39,7 @@ target_include_directories(composition PUBLIC # special case begin if(NOT TARGET painting_shared::painting_shared) - add_subdirectory(../shared painting_shared) + include(../shared/use_lib.cmake) endif() # special case end diff --git a/examples/widgets/painting/deform/CMakeLists.txt b/examples/widgets/painting/deform/CMakeLists.txt index c2517ac66f..6b8a66d9a2 100644 --- a/examples/widgets/painting/deform/CMakeLists.txt +++ b/examples/widgets/painting/deform/CMakeLists.txt @@ -39,7 +39,7 @@ target_include_directories(deform PUBLIC # special case begin if(NOT TARGET painting_shared::painting_shared) - add_subdirectory(../shared painting_shared) + include(../shared/use_lib.cmake) endif() # special case end diff --git a/examples/widgets/painting/gradients/CMakeLists.txt b/examples/widgets/painting/gradients/CMakeLists.txt index 6ad4dfa771..78d659ee84 100644 --- a/examples/widgets/painting/gradients/CMakeLists.txt +++ b/examples/widgets/painting/gradients/CMakeLists.txt @@ -39,7 +39,7 @@ target_include_directories(gradients PUBLIC # special case begin if(NOT TARGET painting_shared::painting_shared) - add_subdirectory(../shared painting_shared) + include(../shared/use_lib.cmake) endif() # special case end diff --git a/examples/widgets/painting/pathstroke/CMakeLists.txt b/examples/widgets/painting/pathstroke/CMakeLists.txt index 17de61fede..feb3332897 100644 --- a/examples/widgets/painting/pathstroke/CMakeLists.txt +++ b/examples/widgets/painting/pathstroke/CMakeLists.txt @@ -39,7 +39,7 @@ target_include_directories(pathstroke PUBLIC # special case begin if(NOT TARGET painting_shared::painting_shared) - add_subdirectory(../shared painting_shared) + include(../shared/use_lib.cmake) endif() # special case end diff --git a/examples/widgets/painting/shared/CMakeLists.txt b/examples/widgets/painting/shared/CMakeLists.txt index 9d43e4a980..0fc65d3d99 100644 --- a/examples/widgets/painting/shared/CMakeLists.txt +++ b/examples/widgets/painting/shared/CMakeLists.txt @@ -1,14 +1,6 @@ # special case skip regeneration # Port of shared.pri to be included by painting examples -if(NOT TARGET Qt::Widgets) - find_package(Qt6 REQUIRED COMPONENTS Widgets) -endif() - -if(NOT TARGET Qt::OpenGL) - find_package(Qt6 OPTIONAL_COMPONENTS OpenGL) -endif() - add_library(painting_shared OBJECT) add_library(painting_shared::painting_shared ALIAS painting_shared) qt6_wrap_cpp(moc_files arthurwidgets.h hoverpoints.h) # no automoc for OBJECT libs:-/ diff --git a/examples/widgets/painting/shared/use_lib.cmake b/examples/widgets/painting/shared/use_lib.cmake new file mode 100644 index 0000000000..11e9c2cf71 --- /dev/null +++ b/examples/widgets/painting/shared/use_lib.cmake @@ -0,0 +1,13 @@ +# Include this file in your example project to use the library defined in this directory. +# This avoids find_package calls in a directory scope different from the directory scope of the +# consuming target. + +if(NOT TARGET Qt::Widgets) + find_package(Qt6 REQUIRED COMPONENTS Widgets) +endif() + +if(NOT TARGET Qt::OpenGL) + find_package(Qt6 OPTIONAL_COMPONENTS OpenGL) +endif() + +add_subdirectory("${CMAKE_CURRENT_LIST_DIR}" painting_shared) |