aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiguel Costa <miguel.costa@qt.io>2022-09-07 14:20:05 +0200
committerMiguel Costa <miguel.costa@qt.io>2022-09-07 12:51:11 +0000
commit85d62c191d11252f7b0ffd434ea1d236cfc14d0e (patch)
tree2c82fa548891b6adea7a08895cf1e39647357503
parent6aa1775e46aa8d9733925ce841a26eb112baa0b2 (diff)
Add CMake support to the Widget project template
Task-number: QTVSADDINBUG-624 Change-Id: I9eb9a0119d466fc8a9c0cbf7c2d94fc52c056c7c Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
-rw-r--r--Templates/gui/CMakeLists.txt46
-rw-r--r--Templates/gui/CMakePresets.json1
-rw-r--r--Templates/gui/CMakeUserPresets.json1
-rw-r--r--Templates/gui/QtTemplate.Project.Gui.csproj3
-rw-r--r--Templates/gui/gui.vstemplate_TT3
5 files changed, 54 insertions, 0 deletions
diff --git a/Templates/gui/CMakeLists.txt b/Templates/gui/CMakeLists.txt
new file mode 100644
index 00000000..69c40988
--- /dev/null
+++ b/Templates/gui/CMakeLists.txt
@@ -0,0 +1,46 @@
+cmake_minimum_required(VERSION 3.16)
+project($safeprojectname$ LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+set(CMAKE_PREFIX_PATH "$ENV{QTDIR};$ENV{QTDIR}/lib/cmake/Qt5")
+
+find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
+set(Qt${QT_VERSION_MAJOR} "${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}")
+find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS ${QT_MODULES})
+list(TRANSFORM QT_MODULES PREPEND "Qt::" OUTPUT_VARIABLE QT_LIBS)
+
+set(PROJECT_SOURCES
+ main.cpp
+ $qrcfilename$
+ $uifilename$
+ $headerfilename$
+ $sourcefilename$
+)
+
+if(Qt6)
+ qt_add_executable($safeprojectname$ MANUAL_FINALIZATION ${PROJECT_SOURCES})
+else()
+ add_executable($safeprojectname$ ${PROJECT_SOURCES})
+endif()
+
+set_target_properties($safeprojectname$
+ PROPERTIES
+ WIN32_EXECUTABLE TRUE
+)
+
+target_link_libraries($safeprojectname$
+ PUBLIC
+ ${QT_LIBS}
+)
+
+if(Qt6)
+ qt_finalize_executable($safeprojectname$)
+endif()
diff --git a/Templates/gui/CMakePresets.json b/Templates/gui/CMakePresets.json
new file mode 100644
index 00000000..1b46ec37
--- /dev/null
+++ b/Templates/gui/CMakePresets.json
@@ -0,0 +1 @@
+$cmake_presets$
diff --git a/Templates/gui/CMakeUserPresets.json b/Templates/gui/CMakeUserPresets.json
new file mode 100644
index 00000000..53866554
--- /dev/null
+++ b/Templates/gui/CMakeUserPresets.json
@@ -0,0 +1 @@
+$cmake_user_presets$
diff --git a/Templates/gui/QtTemplate.Project.Gui.csproj b/Templates/gui/QtTemplate.Project.Gui.csproj
index b9fc2bf7..cd626e69 100644
--- a/Templates/gui/QtTemplate.Project.Gui.csproj
+++ b/Templates/gui/QtTemplate.Project.Gui.csproj
@@ -129,6 +129,9 @@
</Compile>
</ItemGroup>
<ItemGroup>
+ <Content Include="CMakeLists.txt" />
+ <Content Include="CMakePresets.json" />
+ <Content Include="CMakeUserPresets.json" />
<None Include="gui.ico" />
<None Include="gui.vcxproj">
<SubType>Designer</SubType>
diff --git a/Templates/gui/gui.vstemplate_TT b/Templates/gui/gui.vstemplate_TT
index 186d115b..a560027a 100644
--- a/Templates/gui/gui.vstemplate_TT
+++ b/Templates/gui/gui.vstemplate_TT
@@ -73,6 +73,9 @@
<ProjectItem ReplaceParameters="false">gui.ico</ProjectItem>
<ProjectItem ReplaceParameters="true"
TargetFileName="$qrcfilename$">widget.qrc</ProjectItem>
+ <ProjectItem ReplaceParameters="true">CMakeLists.txt</ProjectItem>
+ <ProjectItem ReplaceParameters="true">CMakePresets.json</ProjectItem>
+ <ProjectItem ReplaceParameters="true">CMakeUserPresets.json</ProjectItem>
</Project>
</TemplateContent>
<WizardExtension>