CMake Build: Allow building unittests when targets are missing

when configuring a minimal build make sure that when querying
for target properties like SOURCE_DIR the target actually exists.

Change-Id: Ib754b79be6461e3ddd4cdeb1abac123cf4535068
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Cristian Adam
2020-10-20 14:18:57 +02:00
parent a2aa02acba
commit 3c4f7967e3
2 changed files with 22 additions and 15 deletions

View File

@@ -386,7 +386,7 @@ endfunction()
function(extend_qtc_target target_name)
cmake_parse_arguments(_arg
""
"SOURCES_PREFIX;FEATURE_INFO"
"SOURCES_PREFIX;SOURCES_PREFIX_FROM_TARGET;FEATURE_INFO"
"CONDITION;DEPENDS;PUBLIC_DEPENDS;DEFINES;PUBLIC_DEFINES;INCLUDES;PUBLIC_INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;EXTRA_TRANSLATIONS;PROPERTIES"
${ARGN}
)
@@ -411,6 +411,14 @@ function(extend_qtc_target target_name)
return()
endif()
if (_arg_SOURCES_PREFIX_FROM_TARGET)
if (NOT TARGET ${_arg_SOURCES_PREFIX_FROM_TARGET})
return()
else()
get_target_property(_arg_SOURCES_PREFIX ${_arg_SOURCES_PREFIX_FROM_TARGET} SOURCES_DIR)
endif()
endif()
add_qtc_depends(${target_name}
PRIVATE ${_arg_DEPENDS}
PUBLIC ${_arg_PUBLIC_DEPENDS}

View File

@@ -40,7 +40,6 @@ add_qtc_test(unittest GTEST
clientserveroutsideprocess-test.cpp
commandlinebuilder-test.cpp
compare-operators.h
compilationdatabaseutils-test.cpp
compileroptionsbuilder-test.cpp
conditionally-disabled-tests.h
cppprojectfilecategorizer-test.cpp
@@ -319,7 +318,7 @@ extend_qtc_test(unittest
)
extend_qtc_test(unittest
CONDITION TARGET clangFormat
CONDITION TARGET ClangFormat
DEPENDS clangFormat
SOURCES
clangformat-test.cpp
@@ -421,9 +420,8 @@ 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)
get_target_property(ClangCodeModelSourcesDir ClangCodeModel SOURCES_DIR)
extend_qtc_test(unittest
SOURCES_PREFIX "${ClangCodeModelSourcesDir}"
SOURCES_PREFIX_FROM_TARGET ClangCodeModel
SOURCES
clangactivationsequencecontextprocessor.cpp clangactivationsequencecontextprocessor.h
clangactivationsequenceprocessor.cpp clangactivationsequenceprocessor.h
@@ -436,16 +434,20 @@ extend_qtc_test(unittest
clangisdiagnosticrelatedtolocation.h
)
get_target_property(CompilationDatabasePMSourcesDir CompilationDatabaseProjectManager SOURCES_DIR)
extend_qtc_test(unittest
SOURCES_PREFIX "${CompilationDatabasePMSourcesDir}"
SOURCES_PREFIX_FROM_TARGET CompilationDatabaseProjectManager
SOURCES
compilationdatabaseutils.cpp compilationdatabaseutils.h
)
get_target_property(CoreSourcesDir Core SOURCES_DIR)
extend_qtc_test(unittest
SOURCES_PREFIX "${CoreSourcesDir}"
CONDITION TARGET CompilationDatabaseProjectManager
SOURCES
compilationdatabaseutils-test.cpp
)
extend_qtc_test(unittest
SOURCES_PREFIX_FROM_TARGET Core
DEFINES CORE_STATIC_LIBRARY
SOURCES
coreicons.cpp coreicons.h
@@ -453,9 +455,8 @@ extend_qtc_test(unittest
locator/ilocatorfilter.cpp locator/ilocatorfilter.h
)
get_target_property(CppToolsSourcesDir CppTools SOURCES_DIR)
extend_qtc_test(unittest
SOURCES_PREFIX "${CppToolsSourcesDir}"
SOURCES_PREFIX_FROM_TARGET CppTools
DEFINES CPPTOOLS_STATIC_LIBRARY
SOURCES
cppprojectfile.cpp cppprojectfile.h
@@ -469,9 +470,8 @@ extend_qtc_test(unittest
headerpathfilter.cpp headerpathfilter.h
)
get_target_property(ProjectExplorerSourcesDir ProjectExplorer SOURCES_DIR)
extend_qtc_test(unittest
SOURCES_PREFIX "${ProjectExplorerSourcesDir}"
SOURCES_PREFIX_FROM_TARGET ProjectExplorer
DEFINES PROJECTEXPLORER_STATIC_LIBRARY
SOURCES
projectmacro.cpp projectmacro.h
@@ -517,9 +517,8 @@ extend_qtc_test(unittest
progressmanagerinterface.h
)
get_target_property(ClangFormatSourcesDir ClangFormat SOURCES_DIR)
extend_qtc_test(unittest
SOURCES_PREFIX "${ClangFormatSourcesDir}"
SOURCES_PREFIX_FROM_TARGET ClangFormat
DEFINES CLANGPCHMANAGER_STATIC_LIB
SOURCES
clangformatconstants.h