From 99539a289491a2a709c2a63cd91eac155a1699da Mon Sep 17 00:00:00 2001 From: Kevin Funk Date: Tue, 4 Jun 2019 17:08:47 +0200 Subject: Allow to build examples as standalone project Create CMake config files which can be used from the very same CMake project. These CMake config files simply do not create any targets, controlled via the QT_NO_CREATE_TARGETS. This patch also allows to build qtbase.git:examples as a standalone project, against an already-built Qt. Ran this: ag -s "QT " examples -l -0 | xargs -0 -n 1 .../util/cmake/pro2cmake.py --is-example Task-number: QTBUG-74713 Change-Id: I44cce5a4048618b30f890c5b789592c227a8b47d Reviewed-by: Alexandru Croitor --- examples/widgets/richtext/calendar/CMakeLists.txt | 35 +++++--- examples/widgets/richtext/orderform/CMakeLists.txt | 45 ++++++---- .../richtext/syntaxhighlighter/CMakeLists.txt | 37 +++++--- examples/widgets/richtext/textedit/CMakeLists.txt | 100 ++++++--------------- 4 files changed, 98 insertions(+), 119 deletions(-) (limited to 'examples/widgets/richtext') diff --git a/examples/widgets/richtext/calendar/CMakeLists.txt b/examples/widgets/richtext/calendar/CMakeLists.txt index 8d26479929..099991172d 100644 --- a/examples/widgets/richtext/calendar/CMakeLists.txt +++ b/examples/widgets/richtext/calendar/CMakeLists.txt @@ -1,16 +1,27 @@ # Generated from calendar.pro. -##################################################################### -## calendar Binary: -##################################################################### +cmake_minimum_required(VERSION 3.14) +project(calendar LANGUAGES CXX) -add_qt_executable(calendar - GUI - OUTPUT_DIRECTORY "${INSTALL_EXAMPLESDIR}/widgets/richtext/calendar" - INSTALL_DIRECTORY "${INSTALL_EXAMPLESDIR}/widgets/richtext/calendar" - SOURCES - main.cpp - mainwindow.cpp mainwindow.h - LIBRARIES - Qt::Widgets +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt5 COMPONENTS Widgets) + +add_executable(calendar WIN32 MACOSX_BUNDLE + main.cpp + mainwindow.cpp mainwindow.h +) +target_link_libraries(calendar PUBLIC + Qt::Widgets +) + +install(TARGETS calendar + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" ) diff --git a/examples/widgets/richtext/orderform/CMakeLists.txt b/examples/widgets/richtext/orderform/CMakeLists.txt index 5f12e98cdf..9dd715c752 100644 --- a/examples/widgets/richtext/orderform/CMakeLists.txt +++ b/examples/widgets/richtext/orderform/CMakeLists.txt @@ -1,25 +1,32 @@ # Generated from orderform.pro. -##################################################################### -## orderform Binary: -##################################################################### +cmake_minimum_required(VERSION 3.14) +project(orderform LANGUAGES CXX) -add_qt_executable(orderform - GUI - OUTPUT_DIRECTORY "${INSTALL_EXAMPLESDIR}/widgets/richtext/orderform" - INSTALL_DIRECTORY "${INSTALL_EXAMPLESDIR}/widgets/richtext/orderform" - SOURCES - detailsdialog.cpp detailsdialog.h - main.cpp - mainwindow.cpp mainwindow.h - LIBRARIES - Qt::Widgets -) +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") -## Scopes: -##################################################################### +find_package(Qt5 COMPONENTS Widgets) +find_package(Qt5 COMPONENTS PrintSupport) + +add_executable(orderform WIN32 MACOSX_BUNDLE + detailsdialog.cpp detailsdialog.h + main.cpp + mainwindow.cpp mainwindow.h +) +target_link_libraries(orderform PUBLIC + Qt::Widgets +) +if (TARGET Qt::PrintSupport) + target_link_libraries(orderform PUBLIC Qt::PrintSupport) +endif() -extend_target(orderform CONDITION TARGET Qt::PrintSupport - LIBRARIES - Qt::PrintSupport +install(TARGETS orderform + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" ) diff --git a/examples/widgets/richtext/syntaxhighlighter/CMakeLists.txt b/examples/widgets/richtext/syntaxhighlighter/CMakeLists.txt index afffcc639b..918843e1bd 100644 --- a/examples/widgets/richtext/syntaxhighlighter/CMakeLists.txt +++ b/examples/widgets/richtext/syntaxhighlighter/CMakeLists.txt @@ -1,17 +1,28 @@ # Generated from syntaxhighlighter.pro. -##################################################################### -## syntaxhighlighter Binary: -##################################################################### +cmake_minimum_required(VERSION 3.14) +project(syntaxhighlighter LANGUAGES CXX) -add_qt_executable(syntaxhighlighter - GUI - OUTPUT_DIRECTORY "${INSTALL_EXAMPLESDIR}/widgets/richtext/syntaxhighlighter" - INSTALL_DIRECTORY "${INSTALL_EXAMPLESDIR}/widgets/richtext/syntaxhighlighter" - SOURCES - highlighter.cpp highlighter.h - main.cpp - mainwindow.cpp mainwindow.h - LIBRARIES - Qt::Widgets +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt5 COMPONENTS Widgets) + +add_executable(syntaxhighlighter WIN32 MACOSX_BUNDLE + highlighter.cpp highlighter.h + main.cpp + mainwindow.cpp mainwindow.h +) +target_link_libraries(syntaxhighlighter PUBLIC + Qt::Widgets +) + +install(TARGETS syntaxhighlighter + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" ) diff --git a/examples/widgets/richtext/textedit/CMakeLists.txt b/examples/widgets/richtext/textedit/CMakeLists.txt index 487f708b34..54689bae5b 100644 --- a/examples/widgets/richtext/textedit/CMakeLists.txt +++ b/examples/widgets/richtext/textedit/CMakeLists.txt @@ -1,83 +1,33 @@ # Generated from textedit.pro. -##################################################################### -## textedit Binary: -##################################################################### +cmake_minimum_required(VERSION 3.14) +project(textedit LANGUAGES CXX) -add_qt_executable(textedit - GUI - OUTPUT_DIRECTORY "${INSTALL_EXAMPLESDIR}/widgets/richtext/textedit" - INSTALL_DIRECTORY "${INSTALL_EXAMPLESDIR}/widgets/richtext/textedit" - SOURCES - main.cpp - textedit.cpp textedit.h - PUBLIC_LIBRARIES - Qt::Widgets -) - -# Resources: -add_qt_resource(textedit "textedit" PREFIX "/" FILES - example.html - images/logo32.png - images/mac/checkbox-checked.png - images/mac/checkbox.png - images/mac/editcopy.png - images/mac/editcut.png - images/mac/editpaste.png - images/mac/editredo.png - images/mac/editundo.png - images/mac/exportpdf.png - images/mac/filenew.png - images/mac/fileopen.png - images/mac/fileprint.png - images/mac/filesave.png - images/mac/format-indent-less.png - images/mac/format-indent-more.png - images/mac/textbold.png - images/mac/textcenter.png - images/mac/textitalic.png - images/mac/textjustify.png - images/mac/textleft.png - images/mac/textright.png - images/mac/textunder.png - images/mac/zoomin.png - images/mac/zoomout.png - images/win/checkbox-checked.png - images/win/checkbox.png - images/win/editcopy.png - images/win/editcut.png - images/win/editpaste.png - images/win/editredo.png - images/win/editundo.png - images/win/exportpdf.png - images/win/filenew.png - images/win/fileopen.png - images/win/fileprint.png - images/win/filesave.png - images/win/format-indent-less.png - images/win/format-indent-more.png - images/win/textbold.png - images/win/textcenter.png - images/win/textitalic.png - images/win/textjustify.png - images/win/textleft.png - images/win/textright.png - images/win/textunder.png - images/win/zoomin.png - images/win/zoomout.png) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) -#### Keys ignored in scope 1:.:.:textedit.pro:: -# EXAMPLE_FILES = "textedit.qdoc" -# TEMPLATE = "app" +set(INSTALL_EXAMPLEDIR "examples") -## Scopes: -##################################################################### +find_package(Qt5 COMPONENTS Widgets) +find_package(Qt5 COMPONENTS PrintSupport) # special case -extend_target(textedit CONDITION TARGET Qt::PrintSupport - PUBLIC_LIBRARIES - Qt::PrintSupport +add_executable(textedit WIN32 MACOSX_BUNDLE + main.cpp + textedit.cpp textedit.h textedit.qrc +) +target_link_libraries(textedit PUBLIC + Qt::Widgets +) +# special case begin +if (TARGET Qt::PrintSupport) + target_link_libraries(textedit PUBLIC Qt::PrintSupport) +endif() +# special case end + +install(TARGETS textedit + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" ) - -#### Keys ignored in scope 3:.:.:textedit.pro:build_all AND NOT build_pass: -# CONFIG = "-build_all" "release" -- cgit v1.2.3