diff options
author | Miguel Costa <miguel.costa@qt.io> | 2022-09-07 14:20:05 +0200 |
---|---|---|
committer | Miguel Costa <miguel.costa@qt.io> | 2022-09-07 12:51:11 +0000 |
commit | 85d62c191d11252f7b0ffd434ea1d236cfc14d0e (patch) | |
tree | 2c82fa548891b6adea7a08895cf1e39647357503 | |
parent | 6aa1775e46aa8d9733925ce841a26eb112baa0b2 (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.txt | 46 | ||||
-rw-r--r-- | Templates/gui/CMakePresets.json | 1 | ||||
-rw-r--r-- | Templates/gui/CMakeUserPresets.json | 1 | ||||
-rw-r--r-- | Templates/gui/QtTemplate.Project.Gui.csproj | 3 | ||||
-rw-r--r-- | Templates/gui/gui.vstemplate_TT | 3 |
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> |