CMake: Small clean-up of CMake Wizards

* Updated CMake minimum version to 3.5 (Ubuntu LTS 16.04)
* Lowercase commands
* Used the target name instead of ${PROJECT_NAME}, which nobody uses in practice
* No string quotes around the source filenames, which do not contain spaces

Change-Id: Ide9b3eb85535213798c6c35e08624cae080ebd9d
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Cristian Adam
2019-06-12 14:49:47 +02:00
committed by Cristian Adam
parent 5ac71e485a
commit 36135aa261
7 changed files with 89 additions and 62 deletions

View File

@@ -1,7 +1,6 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
cmake_minimum_required(VERSION 3.5)
PROJECT(%{TestCaseName}
LANGUAGES CXX)
project(%{TestCaseName} LANGUAGES CXX)
@if "%{TestFrameWork}" == "QtTest"
@@ -10,38 +9,46 @@ find_package(Qt5Test REQUIRED)
find_package(Qt5Gui REQUIRED)
@endif
SET(CMAKE_AUTOMOC ON)
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
ENABLE_TESTING()
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_executable(${PROJECT_NAME} %{TestCaseFileWithCppSuffix})
add_test(${PROJECT_NAME} COMMAND ${PROJECT_NAME})
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
enable_testing()
add_executable(%{TestCaseName} %{TestCaseFileWithCppSuffix})
add_test(%{TestCaseName} COMMAND %{TestCaseName})
@if "%{RequireGUI}" == "true"
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Gui Qt5::Test)
target_link_libraries(%{TestCaseName} PRIVATE Qt5::Gui Qt5::Test)
@else
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Test)
target_link_libraries(%{TestCaseName} PRIVATE Qt5::Test)
@endif
@endif
@if "%{TestFrameWork}" == "QtQuickTest"
find_package(Qt5QuickTest REQUIRED)
SET(CMAKE_AUTOMOC ON)
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
ENABLE_TESTING()
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
enable_testing()
# no need to copy around qml test files for shadow builds - just set the respective define
add_definitions(-DQUICK_TEST_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
add_executable(${PROJECT_NAME} %{MainCppName})
add_test(${PROJECT_NAME} COMMAND ${PROJECT_NAME})
add_executable(%{TestCaseName} %{MainCppName})
add_test(%{TestCaseName} COMMAND %{TestCaseName})
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::QuickTest)
target_link_libraries(%{TestCaseName} PRIVATE Qt5::QuickTest)
@endif
@if "%{TestFrameWork}" == "GTest"
@@ -53,14 +60,14 @@ add_definitions(-DGTEST_LANGUAGE_CXX11)
find_package(Threads REQUIRED)
if ($ENV{GOOGLETEST_DIR})
SET(GOOGLETEST_DIR $ENV{GOOGLETEST_DIR})
set(GOOGLETEST_DIR $ENV{GOOGLETEST_DIR})
else ()
message(WARNING "Using googletest src dir specified at Qt Creator wizard")
SET(GOOGLETEST_DIR "%{GTestRepository}")
set(GOOGLETEST_DIR "%{GTestRepository}")
endif ()
if (EXISTS ${GOOGLETEST_DIR})
SET(GTestSrc ${GOOGLETEST_DIR}/googletest)
SET(GMockSrc ${GOOGLETEST_DIR}/googlemock)
set(GTestSrc ${GOOGLETEST_DIR}/googletest)
set(GMockSrc ${GOOGLETEST_DIR}/googlemock)
else ()
message( FATAL_ERROR "No googletest src dir found - set GOOGLETEST_DIR to enable!")
endif ()
@@ -68,19 +75,22 @@ endif ()
include_directories(${GTestSrc} ${GTestSrc}/include ${GMockSrc} ${GMockSrc}/include)
add_executable(${PROJECT_NAME} %{MainCppName} %{TestCaseFileWithHeaderSuffix}
add_executable(%{TestCaseName} %{MainCppName} %{TestCaseFileWithHeaderSuffix}
${GTestSrc}/src/gtest-all.cc
${GMockSrc}/src/gmock-all.cc)
add_test(${PROJECT_NAME} COMMAND ${PROJECT_NAME})
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads)
add_test(%{TestCaseName} COMMAND %{TestCaseName})
target_link_libraries(%{TestCaseName} PRIVATE Threads::Threads)
@endif
@if "%{TestFrameWork}" == "BoostTest"
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
ENABLE_TESTING()
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_executable(${PROJECT_NAME} %{MainCppName})
add_test(${PROJECT_NAME} COMMAND ${PROJECT_NAME})
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
enable_testing()
add_executable(%{TestCaseName} %{MainCppName})
add_test(%{TestCaseName} COMMAND %{TestCaseName})
if (DEFINED ENV{BOOST_INCLUDE_DIR})
set(BOOST_INCLUDE_DIR $ENV{BOOST_INCLUDE_DIR})

View File

@@ -1,12 +1,17 @@
cmake_minimum_required(VERSION 3.0.0)
cmake_minimum_required(VERSION 3.5)
project(%{ProjectName} VERSION 0.1 LANGUAGES CXX)
project(%{ProjectName} LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5Core)
add_executable(${PROJECT_NAME} "%{CppFileName}")
target_link_libraries(${PROJECT_NAME} Qt5::Core)
add_executable(%{ProjectName} %{CppFileName})
target_link_libraries(%{ProjectName} Qt5::Core)

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.1)
cmake_minimum_required(VERSION 3.5)
project(%{ProjectName} LANGUAGES CXX)
@@ -15,21 +15,21 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5 COMPONENTS %{QtModuleUpperCase} REQUIRED)
@endif
add_library(${PROJECT_NAME} %{JS: %{IsStatic} ? 'STATIC' : 'SHARED'}
add_library(%{ProjectName} %{JS: %{IsStatic} ? 'STATIC' : 'SHARED'}
@if '%{Type}' === 'shared'
"%{GlobalHdrFileName}"
%{GlobalHdrFileName}
@endif
"%{SrcFileName}"
"%{HdrFileName}"
%{SrcFileName}
%{HdrFileName}
@if %{IsQtPlugin}
"%{PluginJsonFile}"
%{PluginJsonFile}
@endif
)
@if '%{QtModule}' != 'none'
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::%{QtModuleUpperCase})
target_link_libraries(%{ProjectName} PRIVATE Qt5::%{QtModuleUpperCase})
@endif
@if '%{IsShared}'
target_compile_definitions(${PROJECT_NAME} PRIVATE %{LibraryDefine})
target_compile_definitions(%{ProjectName} PRIVATE %{LibraryDefine})
@endif

View File

@@ -1,4 +1,5 @@
cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 3.5)
project(%{ProjectName})
add_executable(${PROJECT_NAME} "%{CFileName}")
project(%{ProjectName} LANGUAGES C)
add_executable(%{ProjectName} %{CFileName})

View File

@@ -1,4 +1,8 @@
cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 3.5)
project(%{ProjectName})
add_executable(${PROJECT_NAME} "%{CppFileName}")
project(%{ProjectName} LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(%{ProjectName} %{CppFileName})

View File

@@ -1,23 +1,28 @@
cmake_minimum_required(VERSION 3.1)
cmake_minimum_required(VERSION 3.5)
project(%{ProjectName} LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5 COMPONENTS Core Quick REQUIRED)
if(ANDROID)
add_library(${PROJECT_NAME} SHARED "%{MainCppFileName}" "qml.qrc")
add_library(%{ProjectName} SHARED %{MainCppFileName} qml.qrc)
else()
add_executable(${PROJECT_NAME} "%{MainCppFileName}" "qml.qrc")
add_executable(%{ProjectName} %{MainCppFileName} qml.qrc)
endif()
target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Quick)
target_compile_definitions(%{ProjectName}
PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
target_link_libraries(%{ProjectName}
PRIVATE Qt5::Core Qt5::Quick)
# QtCreator supports the following variables for Android, which are identical to qmake Android variables.
# Check http://doc.qt.io/qt-5/deployment-android.html for more information.

View File

@@ -1,23 +1,25 @@
cmake_minimum_required(VERSION 3.1)
cmake_minimum_required(VERSION 3.5)
project(%{ProjectName} LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5 COMPONENTS Widgets REQUIRED)
add_executable(${PROJECT_NAME}
"%{MainFileName}"
"%{SrcFileName}"
"%{HdrFileName}"
add_executable(%{ProjectName}
%{MainFileName}
%{SrcFileName}
%{HdrFileName}
@if %{GenerateForm}
"%{FormFileName}"
%{FormFileName}
@endif
)
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets)
target_link_libraries(%{ProjectName} PRIVATE Qt5::Widgets)