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} project(%{TestCaseName} LANGUAGES CXX)
LANGUAGES CXX)
@if "%{TestFrameWork}" == "QtTest" @if "%{TestFrameWork}" == "QtTest"
@@ -10,38 +9,46 @@ find_package(Qt5Test REQUIRED)
find_package(Qt5Gui REQUIRED) find_package(Qt5Gui REQUIRED)
@endif @endif
SET(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
ENABLE_TESTING()
add_executable(${PROJECT_NAME} %{TestCaseFileWithCppSuffix}) set(CMAKE_AUTOUIC ON)
add_test(${PROJECT_NAME} COMMAND ${PROJECT_NAME}) 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" @if "%{RequireGUI}" == "true"
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Gui Qt5::Test) target_link_libraries(%{TestCaseName} PRIVATE Qt5::Gui Qt5::Test)
@else @else
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Test) target_link_libraries(%{TestCaseName} PRIVATE Qt5::Test)
@endif @endif
@endif @endif
@if "%{TestFrameWork}" == "QtQuickTest" @if "%{TestFrameWork}" == "QtQuickTest"
find_package(Qt5QuickTest REQUIRED) find_package(Qt5QuickTest REQUIRED)
SET(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(CMAKE_CXX_STANDARD 11) set(CMAKE_AUTOUIC ON)
SET(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTOMOC ON)
ENABLE_TESTING() 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 # 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_definitions(-DQUICK_TEST_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
add_executable(${PROJECT_NAME} %{MainCppName}) add_executable(%{TestCaseName} %{MainCppName})
add_test(${PROJECT_NAME} COMMAND ${PROJECT_NAME}) add_test(%{TestCaseName} COMMAND %{TestCaseName})
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::QuickTest) target_link_libraries(%{TestCaseName} PRIVATE Qt5::QuickTest)
@endif @endif
@if "%{TestFrameWork}" == "GTest" @if "%{TestFrameWork}" == "GTest"
@@ -53,14 +60,14 @@ add_definitions(-DGTEST_LANGUAGE_CXX11)
find_package(Threads REQUIRED) find_package(Threads REQUIRED)
if ($ENV{GOOGLETEST_DIR}) if ($ENV{GOOGLETEST_DIR})
SET(GOOGLETEST_DIR $ENV{GOOGLETEST_DIR}) set(GOOGLETEST_DIR $ENV{GOOGLETEST_DIR})
else () else ()
message(WARNING "Using googletest src dir specified at Qt Creator wizard") message(WARNING "Using googletest src dir specified at Qt Creator wizard")
SET(GOOGLETEST_DIR "%{GTestRepository}") set(GOOGLETEST_DIR "%{GTestRepository}")
endif () endif ()
if (EXISTS ${GOOGLETEST_DIR}) if (EXISTS ${GOOGLETEST_DIR})
SET(GTestSrc ${GOOGLETEST_DIR}/googletest) set(GTestSrc ${GOOGLETEST_DIR}/googletest)
SET(GMockSrc ${GOOGLETEST_DIR}/googlemock) set(GMockSrc ${GOOGLETEST_DIR}/googlemock)
else () else ()
message( FATAL_ERROR "No googletest src dir found - set GOOGLETEST_DIR to enable!") message( FATAL_ERROR "No googletest src dir found - set GOOGLETEST_DIR to enable!")
endif () endif ()
@@ -68,19 +75,22 @@ endif ()
include_directories(${GTestSrc} ${GTestSrc}/include ${GMockSrc} ${GMockSrc}/include) include_directories(${GTestSrc} ${GTestSrc}/include ${GMockSrc} ${GMockSrc}/include)
add_executable(${PROJECT_NAME} %{MainCppName} %{TestCaseFileWithHeaderSuffix} add_executable(%{TestCaseName} %{MainCppName} %{TestCaseFileWithHeaderSuffix}
${GTestSrc}/src/gtest-all.cc ${GTestSrc}/src/gtest-all.cc
${GMockSrc}/src/gmock-all.cc) ${GMockSrc}/src/gmock-all.cc)
add_test(${PROJECT_NAME} COMMAND ${PROJECT_NAME}) add_test(%{TestCaseName} COMMAND %{TestCaseName})
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads) target_link_libraries(%{TestCaseName} PRIVATE Threads::Threads)
@endif @endif
@if "%{TestFrameWork}" == "BoostTest" @if "%{TestFrameWork}" == "BoostTest"
SET(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_INCLUDE_CURRENT_DIR ON)
ENABLE_TESTING()
add_executable(${PROJECT_NAME} %{MainCppName}) set(CMAKE_CXX_STANDARD 11)
add_test(${PROJECT_NAME} COMMAND ${PROJECT_NAME}) set(CMAKE_CXX_STANDARD_REQUIRED ON)
enable_testing()
add_executable(%{TestCaseName} %{MainCppName})
add_test(%{TestCaseName} COMMAND %{TestCaseName})
if (DEFINED ENV{BOOST_INCLUDE_DIR}) if (DEFINED ENV{BOOST_INCLUDE_DIR})
set(BOOST_INCLUDE_DIR $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_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5Core) find_package(Qt5Core)
add_executable(${PROJECT_NAME} "%{CppFileName}") add_executable(%{ProjectName} %{CppFileName})
target_link_libraries(%{ProjectName} Qt5::Core)
target_link_libraries(${PROJECT_NAME} Qt5::Core)

View File

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

View File

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

View File

@@ -1,4 +1,8 @@
cmake_minimum_required(VERSION 2.8) cmake_minimum_required(VERSION 3.5)
project(%{ProjectName}) project(%{ProjectName} LANGUAGES CXX)
add_executable(${PROJECT_NAME} "%{CppFileName}")
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) project(%{ProjectName} LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON) set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5 COMPONENTS Core Quick REQUIRED) find_package(Qt5 COMPONENTS Core Quick REQUIRED)
if(ANDROID) if(ANDROID)
add_library(${PROJECT_NAME} SHARED "%{MainCppFileName}" "qml.qrc") add_library(%{ProjectName} SHARED %{MainCppFileName} qml.qrc)
else() else()
add_executable(${PROJECT_NAME} "%{MainCppFileName}" "qml.qrc") add_executable(%{ProjectName} %{MainCppFileName} qml.qrc)
endif() endif()
target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>) target_compile_definitions(%{ProjectName}
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Quick) 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. # 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. # 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) project(%{ProjectName} LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON) set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5 COMPONENTS Widgets REQUIRED) find_package(Qt5 COMPONENTS Widgets REQUIRED)
add_executable(${PROJECT_NAME} add_executable(%{ProjectName}
"%{MainFileName}" %{MainFileName}
"%{SrcFileName}" %{SrcFileName}
"%{HdrFileName}" %{HdrFileName}
@if %{GenerateForm} @if %{GenerateForm}
"%{FormFileName}" %{FormFileName}
@endif @endif
) )
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets) target_link_libraries(%{ProjectName} PRIVATE Qt5::Widgets)