forked from qt-creator/qt-creator
AutoTest: Wizard: Soften condition for gtest repository
Make the need for the googletest repository optional. The user may have gtest installed inside the system instead. Change-Id: I4959878fa893d6b8ed53fd612934d7cd4504a6b7 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -13,12 +13,13 @@
|
|||||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||||
**
|
**
|
||||||
**/
|
**/
|
||||||
|
var File = require("qbs.File")
|
||||||
var FileInfo = require("qbs.FileInfo")
|
var FileInfo = require("qbs.FileInfo")
|
||||||
|
|
||||||
function getGTestDir(qbs, str) {
|
function getGTestDir(qbs, str) {
|
||||||
if (!str) {
|
if (!str) {
|
||||||
if (qbs.hostOS.contains("linux"))
|
if (qbs.hostOS.contains("linux") && File.exists("/usr/src/gtest"))
|
||||||
return "/usr/include/gtest";
|
return "/usr/src/gtest";
|
||||||
} else {
|
} else {
|
||||||
return FileInfo.joinPaths(str, "googletest");
|
return FileInfo.joinPaths(str, "googletest");
|
||||||
}
|
}
|
||||||
@@ -27,8 +28,8 @@ function getGTestDir(qbs, str) {
|
|||||||
|
|
||||||
function getGMockDir(qbs, str) {
|
function getGMockDir(qbs, str) {
|
||||||
if (!str) {
|
if (!str) {
|
||||||
if (qbs.hostOS.contains("linux"))
|
if (qbs.hostOS.contains("linux") && File.exists("/usr/src/gmock"))
|
||||||
return "/usr/include/gmock";
|
return "/usr/src/gmock";
|
||||||
} else {
|
} else {
|
||||||
return FileInfo.joinPaths(str, "googlemock");
|
return FileInfo.joinPaths(str, "googlemock");
|
||||||
}
|
}
|
||||||
|
@@ -1,31 +1,43 @@
|
|||||||
isEmpty(GOOGLETEST_DIR):GOOGLETEST_DIR=$$(GOOGLETEST_DIR)
|
isEmpty(GOOGLETEST_DIR):GOOGLETEST_DIR=$$(GOOGLETEST_DIR)
|
||||||
|
|
||||||
isEmpty(GOOGLETEST_DIR) {
|
isEmpty(GOOGLETEST_DIR) {
|
||||||
warning("Using googletest src dir specified at Qt Creator wizard")
|
|
||||||
message("set GOOGLETEST_DIR as environment variable or qmake variable to get rid of this message")
|
|
||||||
GOOGLETEST_DIR = %{GTestRepository}
|
GOOGLETEST_DIR = %{GTestRepository}
|
||||||
|
!isEmpty(GOOGLETEST_DIR) {
|
||||||
|
warning("Using googletest src dir specified at Qt Creator wizard")
|
||||||
|
message("set GOOGLETEST_DIR as environment variable or qmake variable to get rid of this message")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
!isEmpty(GOOGLETEST_DIR): {
|
!isEmpty(GOOGLETEST_DIR): {
|
||||||
GTEST_SRCDIR = $$GOOGLETEST_DIR/googletest
|
GTEST_SRCDIR = $$GOOGLETEST_DIR/googletest
|
||||||
GMOCK_SRCDIR = $$GOOGLETEST_DIR/googlemock
|
GMOCK_SRCDIR = $$GOOGLETEST_DIR/googlemock
|
||||||
|
} else: unix {
|
||||||
|
exists(/usr/src/gtest):GTEST_SRCDIR=/usr/src/gtest
|
||||||
|
exists(/usr/src/gmock):GMOCK_SRCDIR=/usr/src/gmock
|
||||||
|
!isEmpty(GTEST_SRCDIR): message("Using gtest from system")
|
||||||
}
|
}
|
||||||
|
|
||||||
requires(exists($$GTEST_SRCDIR):exists($$GMOCK_SRCDIR))
|
requires(exists($$GTEST_SRCDIR):exists($$GMOCK_SRCDIR))
|
||||||
|
|
||||||
!exists($$GOOGLETEST_DIR):message("No googletest src dir found - set GOOGLETEST_DIR to enable.")
|
|
||||||
|
|
||||||
@if "%{GTestCXX11}" == "true"
|
@if "%{GTestCXX11}" == "true"
|
||||||
DEFINES += \\
|
DEFINES += \\
|
||||||
GTEST_LANG_CXX11
|
GTEST_LANG_CXX11
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
INCLUDEPATH *= \\
|
!isEmpty(GTEST_SRCDIR) {
|
||||||
$$GTEST_SRCDIR \\
|
INCLUDEPATH *= \\
|
||||||
$$GTEST_SRCDIR/include \\
|
$$GTEST_SRCDIR \\
|
||||||
$$GMOCK_SRCDIR \\
|
$$GTEST_SRCDIR/include
|
||||||
$$GMOCK_SRCDIR/include
|
|
||||||
|
|
||||||
SOURCES += \\
|
SOURCES += \\
|
||||||
$$GTEST_SRCDIR/src/gtest-all.cc \\
|
$$GTEST_SRCDIR/src/gtest-all.cc
|
||||||
$$GMOCK_SRCDIR/src/gmock-all.cc
|
}
|
||||||
|
|
||||||
|
!isEmpty(GMOCK_SRCDIR) {
|
||||||
|
INCLUDEPATH *= \\
|
||||||
|
$$GMOCK_SRCDIR \\
|
||||||
|
$$GMOCK_SRCDIR/include
|
||||||
|
|
||||||
|
SOURCES += \\
|
||||||
|
$$GMOCK_SRCDIR/src/gmock-all.cc
|
||||||
|
}
|
||||||
|
@@ -26,8 +26,12 @@ CppApplication {
|
|||||||
@if "%{TestFrameWork}" == "GTest"
|
@if "%{TestFrameWork}" == "GTest"
|
||||||
property string googletestDir: {
|
property string googletestDir: {
|
||||||
if (typeof Environment.getEnv("GOOGLETEST_DIR") === 'undefined') {
|
if (typeof Environment.getEnv("GOOGLETEST_DIR") === 'undefined') {
|
||||||
console.warn("Using googletest src dir specified at Qt Creator wizard")
|
if ("%{GTestRepository}" === "" && googleCommon.getGTestDir(qbs, undefined) !== "") {
|
||||||
console.log("set GOOGLETEST_DIR as environment variable or Qbs property to get rid of this message")
|
console.warn("Using googletest from system")
|
||||||
|
} else {
|
||||||
|
console.warn("Using googletest src dir specified at Qt Creator wizard")
|
||||||
|
console.log("set GOOGLETEST_DIR as environment variable or Qbs property to get rid of this message")
|
||||||
|
}
|
||||||
return "%{GTestRepository}"
|
return "%{GTestRepository}"
|
||||||
} else {
|
} else {
|
||||||
return Environment.getEnv("GOOGLETEST_DIR")
|
return Environment.getEnv("GOOGLETEST_DIR")
|
||||||
|
@@ -62,22 +62,35 @@ 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")
|
if (NOT "%{GTestRepository}" STREQUAL "")
|
||||||
|
message(WARNING "Using googletest src dir specified at Qt Creator wizard")
|
||||||
|
endif ()
|
||||||
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)
|
||||||
|
elseif (UNIX AND EXISTS /usr/src/gtest)
|
||||||
|
set(GTestSrc /usr/src/gtest)
|
||||||
|
message(WARNING "Using gtest from system")
|
||||||
|
if (EXISTS /usr/src/gmock)
|
||||||
|
set(GMockSrc /usr/src/gmock)
|
||||||
|
endif ()
|
||||||
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 ()
|
||||||
|
|
||||||
|
set(GTestFiles ${GTestSrc}/src/gtest-all.cc)
|
||||||
|
set(GTestIncludes ${GTestSrc} ${GTestSrc}/include)
|
||||||
|
if (NOT ${GMockSrc} STREQUAL "")
|
||||||
|
list(APPEND GTestFiles ${GMockSrc}/src/gmock-all.cc)
|
||||||
|
list(APPEND GTestIncludes ${GMockSrc} ${GMockSrc}/include)
|
||||||
|
endif ()
|
||||||
|
|
||||||
include_directories(${GTestSrc} ${GTestSrc}/include ${GMockSrc} ${GMockSrc}/include)
|
include_directories(${GTestIncludes})
|
||||||
|
|
||||||
add_executable(%{TestCaseName} %{MainCppName} %{TestCaseFileWithHeaderSuffix}
|
add_executable(%{TestCaseName} %{MainCppName} %{TestCaseFileWithHeaderSuffix}
|
||||||
${GTestSrc}/src/gtest-all.cc
|
${GTestFiles})
|
||||||
${GMockSrc}/src/gmock-all.cc)
|
|
||||||
add_test(%{TestCaseName} COMMAND %{TestCaseName})
|
add_test(%{TestCaseName} COMMAND %{TestCaseName})
|
||||||
target_link_libraries(%{TestCaseName} PRIVATE Threads::Threads)
|
target_link_libraries(%{TestCaseName} PRIVATE Threads::Threads)
|
||||||
|
|
||||||
|
@@ -149,8 +149,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "GTestRepository",
|
"name": "GTestRepository",
|
||||||
"trDisplayName": "Googletest repository:",
|
"trDisplayName": "Googletest source directory (optional):",
|
||||||
"visible": "%{JS: value('TestFrameWork') === 'GTest'}",
|
"visible": "%{JS: value('TestFrameWork') === 'GTest'}",
|
||||||
|
"mandatory": false,
|
||||||
"type": "PathChooser",
|
"type": "PathChooser",
|
||||||
"data": {
|
"data": {
|
||||||
"kind": "existingDirectory"
|
"kind": "existingDirectory"
|
||||||
@@ -158,7 +159,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "BoostIncDir",
|
"name": "BoostIncDir",
|
||||||
"trDisplayName": "Boost include dir (optional):",
|
"trDisplayName": "Boost include directory (optional):",
|
||||||
"visible": "%{JS: value('TestFrameWork') == 'BoostTest'}",
|
"visible": "%{JS: value('TestFrameWork') == 'BoostTest'}",
|
||||||
"mandatory": false,
|
"mandatory": false,
|
||||||
"type": "PathChooser",
|
"type": "PathChooser",
|
||||||
|
Reference in New Issue
Block a user