diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2021-04-27 08:55:29 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2021-04-27 21:33:48 +0200 |
commit | 4caac1feea025b0ad496141e8f16ab88c04c2caa (patch) | |
tree | ca1e0b60217e33ea2f7a9bbd0edb6a54aa8729d3 /examples | |
parent | Compile resource objects of the static library using same options (diff) | |
download | qtbase-4caac1feea025b0ad496141e8f16ab88c04c2caa.tar.xz qtbase-4caac1feea025b0ad496141e8f16ab88c04c2caa.zip |
Re-work the CMake project files for the plugandpaint example
Move the project prelude to
examples/widgets/tools/plugandpaint/CMakeLists.txt
to mark it as the entry point of the example project.
Remove the project prelude from all its subdirectories, because the
subdirs are not supposed to be built separately.
Remove the wrong code that pro2cmake generated for the application's
project file. That merely tried to link the basictools static plugin.
Move common initialization code (CMAKE_AUTO*, INSTALL_EXAMPLESDIR) to
the top-level plugandpaint project file.
Remove superfluous CMAKE_INCLUDE_CURRENT_DIR.
Set the output directory of the extrafilters plugin to the application's
build directory such that the app can find the plugin without having to
install the example.
Skip regeneration in those files, to avoid scattering the project files
with special case markers.
Fixes: QTBUG-87449
Fixes: QTBUG-91066
Change-Id: I3ceb08f5fcda1ffea3c35cee8580f7b5e4ecfc1f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'examples')
5 files changed, 26 insertions, 105 deletions
diff --git a/examples/widgets/tools/CMakeLists.txt b/examples/widgets/tools/CMakeLists.txt index 022f4a2b8f..72bc4cc44b 100644 --- a/examples/widgets/tools/CMakeLists.txt +++ b/examples/widgets/tools/CMakeLists.txt @@ -14,5 +14,9 @@ add_subdirectory(undoframework) if(QT_FEATURE_library) # special case add_subdirectory(echoplugin) - add_subdirectory(plugandpaint) # special case + # special case begin + if(QT_FEATURE_inputdialog) + add_subdirectory(plugandpaint) + endif() + # special case end endif() diff --git a/examples/widgets/tools/plugandpaint/CMakeLists.txt b/examples/widgets/tools/plugandpaint/CMakeLists.txt index 4e35d0d0c3..3c997faf21 100644 --- a/examples/widgets/tools/plugandpaint/CMakeLists.txt +++ b/examples/widgets/tools/plugandpaint/CMakeLists.txt @@ -1,7 +1,19 @@ # Generated from plugandpaint.pro. +# special case skip regeneration +cmake_minimum_required(VERSION 3.14) +project(plugandpaint LANGUAGES CXX) -if(NOT QT_FEATURE_inputdialog) - return() +find_package(Qt6 COMPONENTS Core Gui Widgets) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/tools/plugandpaint") + add_subdirectory(plugins) add_subdirectory(app) diff --git a/examples/widgets/tools/plugandpaint/app/CMakeLists.txt b/examples/widgets/tools/plugandpaint/app/CMakeLists.txt index bdf934fa2c..14cdaeb822 100644 --- a/examples/widgets/tools/plugandpaint/app/CMakeLists.txt +++ b/examples/widgets/tools/plugandpaint/app/CMakeLists.txt @@ -1,23 +1,5 @@ # Generated from app.pro. - -cmake_minimum_required(VERSION 3.14) -project(plugandpaint LANGUAGES CXX) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_AUTOUIC ON) - -if(NOT DEFINED INSTALL_EXAMPLESDIR) - set(INSTALL_EXAMPLESDIR "examples") -endif() - -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/tools/plugandpaint") - -find_package(Qt6 COMPONENTS Core) -find_package(Qt6 COMPONENTS Gui) -find_package(Qt6 COMPONENTS Widgets) +# special case skip regeneration qt_add_executable(plugandpaint interfaces.h @@ -31,43 +13,9 @@ set_target_properties(plugandpaint PROPERTIES MACOSX_BUNDLE TRUE ) target_link_libraries(plugandpaint PUBLIC - # Remove: L../plugins - Qt::Core - Qt::Gui Qt::Widgets - pnp_basictools # special case + pnp_basictools ) -target_link_libraries(plugandpaint PUBLIC pnp_basictools) # special case - -if(macx-xcode) - target_link_libraries(plugandpaint PUBLIC - ( - ) - pnp_basictools$ - ) -endif() - -if(NOT macx-xcode) - target_link_libraries(plugandpaint PUBLIC - pnp_basictools - ) -endif() - -if(((NOT (macx-xcode)) AND (( NOT debug_and_release OR build_pass ) AND CONFIG(debug,debug OR release))) AND (APPLE)) - target_link_libraries(plugandpaint PUBLIC - (LIBS, 0) - (LIBS, 1) - _debug - ) -endif() - -if(((NOT (macx-xcode)) AND (( NOT debug_and_release OR build_pass ) AND CONFIG(debug,debug OR release))) AND (WIN32)) - target_link_libraries(plugandpaint PUBLIC - (LIBS, 0) - (LIBS, 1) - d - ) -endif() install(TARGETS plugandpaint RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" diff --git a/examples/widgets/tools/plugandpaint/plugins/basictools/CMakeLists.txt b/examples/widgets/tools/plugandpaint/plugins/basictools/CMakeLists.txt index 97e4021d61..c66f83ce62 100644 --- a/examples/widgets/tools/plugandpaint/plugins/basictools/CMakeLists.txt +++ b/examples/widgets/tools/plugandpaint/plugins/basictools/CMakeLists.txt @@ -1,23 +1,5 @@ # Generated from basictools.pro. - -cmake_minimum_required(VERSION 3.14) -project(pnp_basictools LANGUAGES CXX) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_AUTOUIC ON) - -if(NOT DEFINED INSTALL_EXAMPLESDIR) - set(INSTALL_EXAMPLESDIR "examples") -endif() - -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/tools/plugandpaint/plugins") - -find_package(Qt6 COMPONENTS Core) -find_package(Qt6 COMPONENTS Gui) -find_package(Qt6 COMPONENTS Widgets) +# special case skip regeneration qt_add_plugin(pnp_basictools STATIC) target_sources(pnp_basictools PRIVATE @@ -36,9 +18,3 @@ target_link_libraries(pnp_basictools PUBLIC Qt::Gui Qt::Widgets ) - -install(TARGETS pnp_basictools - RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" - BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" - LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" -) diff --git a/examples/widgets/tools/plugandpaint/plugins/extrafilters/CMakeLists.txt b/examples/widgets/tools/plugandpaint/plugins/extrafilters/CMakeLists.txt index bb6948e610..9227dd0537 100644 --- a/examples/widgets/tools/plugandpaint/plugins/extrafilters/CMakeLists.txt +++ b/examples/widgets/tools/plugandpaint/plugins/extrafilters/CMakeLists.txt @@ -1,31 +1,13 @@ # Generated from extrafilters.pro. - -cmake_minimum_required(VERSION 3.14) -project(pnp_extrafilters LANGUAGES CXX) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_AUTOUIC ON) - -if(NOT DEFINED INSTALL_EXAMPLESDIR) - set(INSTALL_EXAMPLESDIR "examples") -endif() - -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/tools/plugandpaint/plugins") - -find_package(Qt6 COMPONENTS Core) -find_package(Qt6 COMPONENTS Gui) -find_package(Qt6 COMPONENTS Widgets) +# special case skip regeneration qt_add_plugin(pnp_extrafilters) target_sources(pnp_extrafilters PRIVATE extrafiltersplugin.cpp extrafiltersplugin.h ) set_target_properties(pnp_extrafilters PROPERTIES - WIN32_EXECUTABLE TRUE MACOSX_BUNDLE TRUE + LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/app" ) target_include_directories(pnp_extrafilters PUBLIC ../../app @@ -38,7 +20,6 @@ target_link_libraries(pnp_extrafilters PUBLIC ) install(TARGETS pnp_extrafilters - RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" - BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" - LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}/plugins" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}/plugins" ) |