forked from qt-creator/qt-creator
CMake: Allow standalone build of unittests
tests/unit/CMakeLists.txt needs to be opened for standalone usage. Change-Id: Ib763dedd09ee00bc793b56d87456981b71f4004c Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
@@ -112,6 +112,6 @@ public:
|
|||||||
|
|
||||||
CLANGSUPPORT_EXPORT QDebug operator<<(QDebug debug, const CodeCompletionChunk &chunk);
|
CLANGSUPPORT_EXPORT QDebug operator<<(QDebug debug, const CodeCompletionChunk &chunk);
|
||||||
|
|
||||||
std::ostream &operator<<(std::ostream &os, const CodeCompletionChunk::Kind &kind);
|
CLANGSUPPORT_EXPORT std::ostream &operator<<(std::ostream &os, const CodeCompletionChunk::Kind &kind);
|
||||||
|
|
||||||
} // namespace ClangBackEnd
|
} // namespace ClangBackEnd
|
||||||
|
|||||||
@@ -29,9 +29,11 @@
|
|||||||
|
|
||||||
#include <exception>
|
#include <exception>
|
||||||
|
|
||||||
|
#include "clangsupport_global.h"
|
||||||
|
|
||||||
namespace ClangBackEnd {
|
namespace ClangBackEnd {
|
||||||
|
|
||||||
class ProcessException : public std::exception
|
class CLANGSUPPORT_EXPORT ProcessException : public std::exception
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ProcessException() = default;
|
ProcessException() = default;
|
||||||
|
|||||||
@@ -29,6 +29,8 @@
|
|||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "clangsupport_global.h"
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QDataStream;
|
class QDataStream;
|
||||||
class QIODevice;
|
class QIODevice;
|
||||||
@@ -38,7 +40,7 @@ namespace ClangBackEnd {
|
|||||||
|
|
||||||
class MessageEnvelop;
|
class MessageEnvelop;
|
||||||
|
|
||||||
class ReadMessageBlock
|
class CLANGSUPPORT_EXPORT ReadMessageBlock
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ReadMessageBlock(QIODevice *ioDevice = nullptr);
|
ReadMessageBlock(QIODevice *ioDevice = nullptr);
|
||||||
|
|||||||
@@ -30,6 +30,8 @@
|
|||||||
|
|
||||||
#include <QVariant>
|
#include <QVariant>
|
||||||
|
|
||||||
|
#include "clangsupport_global.h"
|
||||||
|
|
||||||
namespace ClangBackEnd {
|
namespace ClangBackEnd {
|
||||||
|
|
||||||
class ToolTipInfo
|
class ToolTipInfo
|
||||||
@@ -106,6 +108,6 @@ public:
|
|||||||
QDebug operator<<(QDebug debug, const ToolTipInfo &message);
|
QDebug operator<<(QDebug debug, const ToolTipInfo &message);
|
||||||
std::ostream &operator<<(std::ostream &os, const ToolTipInfo &message);
|
std::ostream &operator<<(std::ostream &os, const ToolTipInfo &message);
|
||||||
|
|
||||||
const char *qdocCategoryToString(ToolTipInfo::QdocCategory category);
|
CLANGSUPPORT_EXPORT const char *qdocCategoryToString(ToolTipInfo::QdocCategory category);
|
||||||
|
|
||||||
} // namespace ClangBackEnd
|
} // namespace ClangBackEnd
|
||||||
|
|||||||
@@ -28,6 +28,8 @@
|
|||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
|
|
||||||
|
#include "clangsupport_global.h"
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QVariant;
|
class QVariant;
|
||||||
class QDataStream;
|
class QDataStream;
|
||||||
@@ -39,7 +41,7 @@ namespace ClangBackEnd {
|
|||||||
|
|
||||||
class MessageEnvelop;
|
class MessageEnvelop;
|
||||||
|
|
||||||
class WriteMessageBlock
|
class CLANGSUPPORT_EXPORT WriteMessageBlock
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
WriteMessageBlock(QIODevice *ioDevice = nullptr);
|
WriteMessageBlock(QIODevice *ioDevice = nullptr);
|
||||||
|
|||||||
@@ -1,2 +1,40 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.10)
|
||||||
|
|
||||||
|
if (NOT QT_CREATOR_API_DEFINED)
|
||||||
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake")
|
||||||
|
|
||||||
|
project(unit)
|
||||||
|
|
||||||
|
enable_testing()
|
||||||
|
|
||||||
|
# Needed for pch
|
||||||
|
set(QtCreator_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../")
|
||||||
|
option(BUILD_WITH_PCH "Build with precompiled headers" 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_CXX_EXTENSIONS OFF)
|
||||||
|
|
||||||
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
|
||||||
|
set(BUILD_EXECUTABLES echo)
|
||||||
|
|
||||||
|
set(IMPLICIT_DEPENDS Qt5::Test)
|
||||||
|
|
||||||
|
include(QtCreatorIDEBranding)
|
||||||
|
include(QtCreatorAPI)
|
||||||
|
|
||||||
|
set(WITH_TESTS ON)
|
||||||
|
set(GOOGLETEST_DIR ${CMAKE_CURRENT_LIST_DIR}/unittest/3rdparty/googletest)
|
||||||
|
|
||||||
|
find_package(Clang MODULE)
|
||||||
|
find_package(Qt5 COMPONENTS Core Widgets Network Qml Concurrent Test Xml MODULE)
|
||||||
|
find_package(Threads)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_subdirectory(echoserver)
|
add_subdirectory(echoserver)
|
||||||
add_subdirectory(unittest)
|
add_subdirectory(unittest)
|
||||||
|
|||||||
@@ -14,7 +14,9 @@ if (NOT Googletest_FOUND)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
|
||||||
|
elseif (MINGW)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wa,-mbig-obj")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_qtc_test(unittest GTEST
|
add_qtc_test(unittest GTEST
|
||||||
@@ -31,7 +33,7 @@ add_qtc_test(unittest GTEST
|
|||||||
QT_RESTRICTED_CAST_FROM_ASCII
|
QT_RESTRICTED_CAST_FROM_ASCII
|
||||||
UNIT_TESTS
|
UNIT_TESTS
|
||||||
DONT_CHECK_MESSAGE_COUNTER
|
DONT_CHECK_MESSAGE_COUNTER
|
||||||
QTC_RESOURCE_DIR="${PROJECT_SOURCE_DIR}/share/qtcreator"
|
QTC_RESOURCE_DIR="${CMAKE_CURRENT_LIST_DIR}/../../../share/qtcreator"
|
||||||
TESTDATA_DIR="${CMAKE_CURRENT_BINARY_DIR}/data"
|
TESTDATA_DIR="${CMAKE_CURRENT_BINARY_DIR}/data"
|
||||||
ECHOSERVER="$<TARGET_FILE_DIR:echo>/echo"
|
ECHOSERVER="$<TARGET_FILE_DIR:echo>/echo"
|
||||||
CPPTOOLS_JSON="${CMAKE_CURRENT_BINARY_DIR}/CppTools.json"
|
CPPTOOLS_JSON="${CMAKE_CURRENT_BINARY_DIR}/CppTools.json"
|
||||||
@@ -139,23 +141,22 @@ function(extend_qtc_test_with_target_sources target)
|
|||||||
)
|
)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
foreach(clang_tools_library clangbackend_lib)
|
if (NOT TARGET clangbackend_lib)
|
||||||
extend_qtc_test_with_target_sources(${clang_tools_library}
|
add_subdirectory(../../../src/tools/clangbackend/source ${CMAKE_CURRENT_BINARY_DIR}/clangbackend)
|
||||||
DEFINES
|
endif()
|
||||||
CLANGSUPPORT_BUILD_LIB
|
extend_qtc_test(unittest DEPENDS clangbackend_lib)
|
||||||
INCLUDES
|
|
||||||
$<TARGET_PROPERTY:ClangSupport,INTERFACE_INCLUDE_DIRECTORIES>
|
|
||||||
)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
extend_qtc_test_with_target_sources(Sqlite)
|
if (NOT TARGET Sqlite)
|
||||||
|
add_subdirectory(../../../src/libs/sqlite ${CMAKE_CURRENT_BINARY_DIR}/sqlite)
|
||||||
extend_qtc_test(unittest DEFINES _HAVE_SQLITE_CONFIG_H)
|
endif()
|
||||||
|
extend_qtc_test_with_target_sources(Sqlite
|
||||||
|
DEFINES _HAVE_SQLITE_CONFIG_H
|
||||||
|
)
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
extend_qtc_test(unittest DEFINES _BSD_SOURCE)
|
extend_qtc_test(unittest DEFINES _BSD_SOURCE)
|
||||||
elseif (UNIX)
|
elseif (UNIX)
|
||||||
extend_qtc_test(unittest DEFINES _POSIX_C_SOURCE=200809L _GNU_SOURCE _DEFAULT_SOURCE)
|
extend_qtc_test(unittest DEFINES _POSIX_C_SOURCE=200809L _GNU_SOURCE _DEFAULT_SOURCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Do not work on the source directory data
|
# Do not work on the source directory data
|
||||||
@@ -166,7 +167,7 @@ add_custom_command(TARGET unittest POST_BUILD
|
|||||||
)
|
)
|
||||||
|
|
||||||
# create fake CppTools.json for the mime type definitions
|
# create fake CppTools.json for the mime type definitions
|
||||||
file(READ "${PROJECT_SOURCE_DIR}/src/plugins/cpptools/CppTools.json.in" plugin_json_in)
|
file(READ "../../../src/plugins/cpptools/CppTools.json.in" plugin_json_in)
|
||||||
string(REPLACE "\\\"" "\"" plugin_json_in ${plugin_json_in})
|
string(REPLACE "\\\"" "\"" plugin_json_in ${plugin_json_in})
|
||||||
string(REPLACE "\\'" "'" plugin_json_in ${plugin_json_in})
|
string(REPLACE "\\'" "'" plugin_json_in ${plugin_json_in})
|
||||||
string(REPLACE "$$QTCREATOR_VERSION" "${IDE_VERSION}" plugin_json_in ${plugin_json_in})
|
string(REPLACE "$$QTCREATOR_VERSION" "${IDE_VERSION}" plugin_json_in ${plugin_json_in})
|
||||||
@@ -253,6 +254,7 @@ finalize_qtc_gtest(unittest ".c$")
|
|||||||
# Path needs to be before CppTools
|
# Path needs to be before CppTools
|
||||||
target_include_directories(unittest
|
target_include_directories(unittest
|
||||||
PRIVATE
|
PRIVATE
|
||||||
|
BEFORE ../../../src/tools/clangbackend/source
|
||||||
BEFORE ../../../src/plugins
|
BEFORE ../../../src/plugins
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -329,17 +331,21 @@ extend_qtc_test(unittest
|
|||||||
"${QmlDesignerDir}/designercore/include/model.h"
|
"${QmlDesignerDir}/designercore/include/model.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
extend_qtc_test_with_target_sources(Utils DEFINES QTCREATOR_UTILS_STATIC_LIB "QTC_REL_TOOLS_PATH=\"${RELATIVE_LIBEXEC_PATH}\"")
|
if (NOT TARGET Utils)
|
||||||
extend_qtc_test(unittest
|
add_subdirectory(../../../src/libs/utils ${CMAKE_CURRENT_BINARY_DIR}/utils)
|
||||||
CONDITION APPLE
|
endif()
|
||||||
DEPENDS ${FWFoundation} ${FWAppKit}
|
if (NOT TARGET CPlusPlus)
|
||||||
)
|
add_subdirectory(../../../src/libs/3rdparty/cplusplus ${CMAKE_CURRENT_BINARY_DIR}/3rd_cplusplus)
|
||||||
extend_qtc_test_with_target_sources(CPlusPlus DEFINES CPLUSPLUS_BUILD_STATIC_LIB)
|
add_subdirectory(../../../src/libs/cplusplus ${CMAKE_CURRENT_BINARY_DIR}/cplusplus)
|
||||||
extend_qtc_test_with_target_sources(3rd_cplusplus DEFINES CPLUSPLUS_BUILD_LIB)
|
endif()
|
||||||
extend_qtc_test_with_target_sources(ClangSupport DEFINES CLANGSUPPORT_BUILD_LIB)
|
if (NOT TARGET ClangSupport)
|
||||||
|
add_subdirectory(../../../src/libs/clangsupport ${CMAKE_CURRENT_BINARY_DIR}/clangsupport)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
extend_qtc_test(unittest DEPENDS Utils CPlusPlus ClangSupport)
|
||||||
|
|
||||||
extend_qtc_test(unittest
|
extend_qtc_test(unittest
|
||||||
SOURCES_PREFIX_FROM_TARGET ClangCodeModel
|
SOURCES_PREFIX ../../../src/plugins/clangcodemodel
|
||||||
SOURCES
|
SOURCES
|
||||||
clangactivationsequencecontextprocessor.cpp clangactivationsequencecontextprocessor.h
|
clangactivationsequencecontextprocessor.cpp clangactivationsequencecontextprocessor.h
|
||||||
clangactivationsequenceprocessor.cpp clangactivationsequenceprocessor.h
|
clangactivationsequenceprocessor.cpp clangactivationsequenceprocessor.h
|
||||||
@@ -365,7 +371,7 @@ extend_qtc_test(unittest
|
|||||||
)
|
)
|
||||||
|
|
||||||
extend_qtc_test(unittest
|
extend_qtc_test(unittest
|
||||||
SOURCES_PREFIX_FROM_TARGET Core
|
SOURCES_PREFIX ../../../src/plugins/coreplugin
|
||||||
DEFINES CORE_STATIC_LIBRARY
|
DEFINES CORE_STATIC_LIBRARY
|
||||||
SOURCES
|
SOURCES
|
||||||
coreicons.cpp coreicons.h
|
coreicons.cpp coreicons.h
|
||||||
@@ -374,7 +380,7 @@ extend_qtc_test(unittest
|
|||||||
)
|
)
|
||||||
|
|
||||||
extend_qtc_test(unittest
|
extend_qtc_test(unittest
|
||||||
SOURCES_PREFIX_FROM_TARGET CppTools
|
SOURCES_PREFIX ../../../src/plugins/cpptools
|
||||||
DEFINES CPPTOOLS_STATIC_LIBRARY
|
DEFINES CPPTOOLS_STATIC_LIBRARY
|
||||||
SOURCES
|
SOURCES
|
||||||
cppprojectfile.cpp cppprojectfile.h
|
cppprojectfile.cpp cppprojectfile.h
|
||||||
@@ -389,15 +395,16 @@ extend_qtc_test(unittest
|
|||||||
)
|
)
|
||||||
|
|
||||||
extend_qtc_test(unittest
|
extend_qtc_test(unittest
|
||||||
SOURCES_PREFIX_FROM_TARGET ProjectExplorer
|
SOURCES_PREFIX ../../../src/plugins/projectexplorer
|
||||||
DEFINES PROJECTEXPLORER_STATIC_LIBRARY
|
DEFINES PROJECTEXPLORER_STATIC_LIBRARY
|
||||||
SOURCES
|
SOURCES
|
||||||
projectmacro.cpp projectmacro.h
|
projectmacro.cpp projectmacro.h
|
||||||
)
|
)
|
||||||
|
|
||||||
extend_qtc_test(unittest
|
extend_qtc_test(unittest
|
||||||
SOURCES_PREFIX_FROM_TARGET ClangFormat
|
SOURCES_PREFIX ../../../src/plugins/clangformat
|
||||||
DEFINES CLANGPCHMANAGER_STATIC_LIB
|
CONDITION TARGET libclang
|
||||||
|
DEPENDS ${CLANG_TOOLING_LIBS}
|
||||||
SOURCES
|
SOURCES
|
||||||
clangformatconstants.h
|
clangformatconstants.h
|
||||||
clangformatbaseindenter.cpp clangformatbaseindenter.h
|
clangformatbaseindenter.cpp clangformatbaseindenter.h
|
||||||
|
|||||||
Reference in New Issue
Block a user