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) function(extend_qtc_target target_name)
cmake_parse_arguments(_arg 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" "CONDITION;DEPENDS;PUBLIC_DEPENDS;DEFINES;PUBLIC_DEFINES;INCLUDES;PUBLIC_INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;EXTRA_TRANSLATIONS;PROPERTIES"
${ARGN} ${ARGN}
) )
@@ -411,6 +411,14 @@ function(extend_qtc_target target_name)
return() return()
endif() 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} add_qtc_depends(${target_name}
PRIVATE ${_arg_DEPENDS} PRIVATE ${_arg_DEPENDS}
PUBLIC ${_arg_PUBLIC_DEPENDS} PUBLIC ${_arg_PUBLIC_DEPENDS}

View File

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