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);
|
||||
|
||||
std::ostream &operator<<(std::ostream &os, const CodeCompletionChunk::Kind &kind);
|
||||
CLANGSUPPORT_EXPORT std::ostream &operator<<(std::ostream &os, const CodeCompletionChunk::Kind &kind);
|
||||
|
||||
} // namespace ClangBackEnd
|
||||
|
||||
@@ -29,9 +29,11 @@
|
||||
|
||||
#include <exception>
|
||||
|
||||
#include "clangsupport_global.h"
|
||||
|
||||
namespace ClangBackEnd {
|
||||
|
||||
class ProcessException : public std::exception
|
||||
class CLANGSUPPORT_EXPORT ProcessException : public std::exception
|
||||
{
|
||||
public:
|
||||
ProcessException() = default;
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "clangsupport_global.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QDataStream;
|
||||
class QIODevice;
|
||||
@@ -38,7 +40,7 @@ namespace ClangBackEnd {
|
||||
|
||||
class MessageEnvelop;
|
||||
|
||||
class ReadMessageBlock
|
||||
class CLANGSUPPORT_EXPORT ReadMessageBlock
|
||||
{
|
||||
public:
|
||||
ReadMessageBlock(QIODevice *ioDevice = nullptr);
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
|
||||
#include <QVariant>
|
||||
|
||||
#include "clangsupport_global.h"
|
||||
|
||||
namespace ClangBackEnd {
|
||||
|
||||
class ToolTipInfo
|
||||
@@ -106,6 +108,6 @@ public:
|
||||
QDebug operator<<(QDebug debug, 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
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
#include <QByteArray>
|
||||
#include <QtGlobal>
|
||||
|
||||
#include "clangsupport_global.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QVariant;
|
||||
class QDataStream;
|
||||
@@ -39,7 +41,7 @@ namespace ClangBackEnd {
|
||||
|
||||
class MessageEnvelop;
|
||||
|
||||
class WriteMessageBlock
|
||||
class CLANGSUPPORT_EXPORT WriteMessageBlock
|
||||
{
|
||||
public:
|
||||
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(unittest)
|
||||
|
||||
@@ -14,7 +14,9 @@ if (NOT Googletest_FOUND)
|
||||
endif()
|
||||
|
||||
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()
|
||||
|
||||
add_qtc_test(unittest GTEST
|
||||
@@ -31,7 +33,7 @@ add_qtc_test(unittest GTEST
|
||||
QT_RESTRICTED_CAST_FROM_ASCII
|
||||
UNIT_TESTS
|
||||
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"
|
||||
ECHOSERVER="$<TARGET_FILE_DIR:echo>/echo"
|
||||
CPPTOOLS_JSON="${CMAKE_CURRENT_BINARY_DIR}/CppTools.json"
|
||||
@@ -139,23 +141,22 @@ function(extend_qtc_test_with_target_sources target)
|
||||
)
|
||||
endfunction()
|
||||
|
||||
foreach(clang_tools_library clangbackend_lib)
|
||||
extend_qtc_test_with_target_sources(${clang_tools_library}
|
||||
DEFINES
|
||||
CLANGSUPPORT_BUILD_LIB
|
||||
INCLUDES
|
||||
$<TARGET_PROPERTY:ClangSupport,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
)
|
||||
endforeach()
|
||||
if (NOT TARGET clangbackend_lib)
|
||||
add_subdirectory(../../../src/tools/clangbackend/source ${CMAKE_CURRENT_BINARY_DIR}/clangbackend)
|
||||
endif()
|
||||
extend_qtc_test(unittest DEPENDS clangbackend_lib)
|
||||
|
||||
extend_qtc_test_with_target_sources(Sqlite)
|
||||
|
||||
extend_qtc_test(unittest DEFINES _HAVE_SQLITE_CONFIG_H)
|
||||
if (NOT TARGET Sqlite)
|
||||
add_subdirectory(../../../src/libs/sqlite ${CMAKE_CURRENT_BINARY_DIR}/sqlite)
|
||||
endif()
|
||||
extend_qtc_test_with_target_sources(Sqlite
|
||||
DEFINES _HAVE_SQLITE_CONFIG_H
|
||||
)
|
||||
|
||||
if (APPLE)
|
||||
extend_qtc_test(unittest DEFINES _BSD_SOURCE)
|
||||
extend_qtc_test(unittest DEFINES _BSD_SOURCE)
|
||||
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()
|
||||
|
||||
# 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
|
||||
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 "$$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
|
||||
target_include_directories(unittest
|
||||
PRIVATE
|
||||
BEFORE ../../../src/tools/clangbackend/source
|
||||
BEFORE ../../../src/plugins
|
||||
)
|
||||
|
||||
@@ -329,17 +331,21 @@ extend_qtc_test(unittest
|
||||
"${QmlDesignerDir}/designercore/include/model.h"
|
||||
)
|
||||
|
||||
extend_qtc_test_with_target_sources(Utils DEFINES QTCREATOR_UTILS_STATIC_LIB "QTC_REL_TOOLS_PATH=\"${RELATIVE_LIBEXEC_PATH}\"")
|
||||
extend_qtc_test(unittest
|
||||
CONDITION APPLE
|
||||
DEPENDS ${FWFoundation} ${FWAppKit}
|
||||
)
|
||||
extend_qtc_test_with_target_sources(CPlusPlus DEFINES CPLUSPLUS_BUILD_STATIC_LIB)
|
||||
extend_qtc_test_with_target_sources(3rd_cplusplus DEFINES CPLUSPLUS_BUILD_LIB)
|
||||
extend_qtc_test_with_target_sources(ClangSupport DEFINES CLANGSUPPORT_BUILD_LIB)
|
||||
if (NOT TARGET Utils)
|
||||
add_subdirectory(../../../src/libs/utils ${CMAKE_CURRENT_BINARY_DIR}/utils)
|
||||
endif()
|
||||
if (NOT TARGET CPlusPlus)
|
||||
add_subdirectory(../../../src/libs/3rdparty/cplusplus ${CMAKE_CURRENT_BINARY_DIR}/3rd_cplusplus)
|
||||
add_subdirectory(../../../src/libs/cplusplus ${CMAKE_CURRENT_BINARY_DIR}/cplusplus)
|
||||
endif()
|
||||
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
|
||||
SOURCES_PREFIX_FROM_TARGET ClangCodeModel
|
||||
SOURCES_PREFIX ../../../src/plugins/clangcodemodel
|
||||
SOURCES
|
||||
clangactivationsequencecontextprocessor.cpp clangactivationsequencecontextprocessor.h
|
||||
clangactivationsequenceprocessor.cpp clangactivationsequenceprocessor.h
|
||||
@@ -365,7 +371,7 @@ extend_qtc_test(unittest
|
||||
)
|
||||
|
||||
extend_qtc_test(unittest
|
||||
SOURCES_PREFIX_FROM_TARGET Core
|
||||
SOURCES_PREFIX ../../../src/plugins/coreplugin
|
||||
DEFINES CORE_STATIC_LIBRARY
|
||||
SOURCES
|
||||
coreicons.cpp coreicons.h
|
||||
@@ -374,7 +380,7 @@ extend_qtc_test(unittest
|
||||
)
|
||||
|
||||
extend_qtc_test(unittest
|
||||
SOURCES_PREFIX_FROM_TARGET CppTools
|
||||
SOURCES_PREFIX ../../../src/plugins/cpptools
|
||||
DEFINES CPPTOOLS_STATIC_LIBRARY
|
||||
SOURCES
|
||||
cppprojectfile.cpp cppprojectfile.h
|
||||
@@ -389,15 +395,16 @@ extend_qtc_test(unittest
|
||||
)
|
||||
|
||||
extend_qtc_test(unittest
|
||||
SOURCES_PREFIX_FROM_TARGET ProjectExplorer
|
||||
SOURCES_PREFIX ../../../src/plugins/projectexplorer
|
||||
DEFINES PROJECTEXPLORER_STATIC_LIBRARY
|
||||
SOURCES
|
||||
projectmacro.cpp projectmacro.h
|
||||
)
|
||||
|
||||
extend_qtc_test(unittest
|
||||
SOURCES_PREFIX_FROM_TARGET ClangFormat
|
||||
DEFINES CLANGPCHMANAGER_STATIC_LIB
|
||||
SOURCES_PREFIX ../../../src/plugins/clangformat
|
||||
CONDITION TARGET libclang
|
||||
DEPENDS ${CLANG_TOOLING_LIBS}
|
||||
SOURCES
|
||||
clangformatconstants.h
|
||||
clangformatbaseindenter.cpp clangformatbaseindenter.h
|
||||
|
||||
Reference in New Issue
Block a user