forked from qt-creator/qt-creator
That's where they belong Change-Id: I78e33e76a2f42f05961f6fab31da5f3dd583a2e9 Reviewed-by: Artem Sokolovskii <artem.sokolovskii@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
497 lines
16 KiB
CMake
497 lines
16 KiB
CMake
if (TARGET libclang)
|
|
set(HAVE_LIBCLANG ON)
|
|
endif()
|
|
|
|
if (HAVE_LIBCLANG AND NOT QTC_CLANG_BUILDMODE_MATCH)
|
|
message(STATUS "Disabling libclang tests due to build mode mismatch.")
|
|
set(HAVE_LIBCLANG OFF)
|
|
endif()
|
|
|
|
find_package(Googletest MODULE)
|
|
find_package(GoogleBenchmark MODULE)
|
|
|
|
if (NOT Googletest_FOUND)
|
|
message(STATUS "Googletest was not found. Please set GOOGLETEST_DIR (CMake or Environment) variable.")
|
|
message(STATUS "Have a look at cmake/FindGoogletest.cmake file for more details.")
|
|
message(STATUS "unittest module will be skipped.")
|
|
return()
|
|
endif()
|
|
|
|
if (MSVC)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
|
|
elseif (MINGW)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wa,-mbig-obj")
|
|
endif()
|
|
|
|
file(RELATIVE_PATH RELATIVE_TEST_PATH "${PROJECT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}")
|
|
file(RELATIVE_PATH TEST_RELATIVE_LIBEXEC_PATH "/${RELATIVE_TEST_PATH}" "/${IDE_LIBEXEC_PATH}")
|
|
|
|
add_qtc_test(unittest GTEST
|
|
INCLUDES
|
|
BEFORE "../mockup"
|
|
BEFORE "../mockup/qmldesigner/designercore/include"
|
|
DEPENDS
|
|
Qt5::Core Qt5::Network Qt5::Widgets
|
|
Qt5::Xml Qt5::Concurrent Qt5::Qml Qt5::Gui
|
|
Qt6Core5Compat QmlJS
|
|
Googletest
|
|
DEFINES
|
|
QT_NO_CAST_TO_ASCII
|
|
QT_RESTRICTED_CAST_FROM_ASCII
|
|
UNIT_TESTS
|
|
DONT_CHECK_MESSAGE_COUNTER
|
|
QTC_RESOURCE_DIR="${CMAKE_CURRENT_LIST_DIR}/../../../share/qtcreator"
|
|
TESTDATA_DIR="${CMAKE_CURRENT_BINARY_DIR}/data"
|
|
ECHOSERVER="$<TARGET_FILE_DIR:echo>/echo"
|
|
TEST_RELATIVE_LIBEXEC_PATH="${TEST_RELATIVE_LIBEXEC_PATH}"
|
|
SOURCES
|
|
abstractviewmock.h
|
|
clientserverinprocess-test.cpp
|
|
clientserveroutsideprocess-test.cpp
|
|
compare-operators.h
|
|
conditionally-disabled-tests.h
|
|
dummyclangipcclient.h
|
|
dynamicastmatcherdiagnosticcontainer-matcher.h
|
|
eventspy.cpp eventspy.h
|
|
fakeprocess.cpp fakeprocess.h
|
|
filesystem-utilities.h
|
|
googletest.h
|
|
google-using-declarations.h
|
|
gtest-creator-printing.cpp gtest-creator-printing.h
|
|
gtest-llvm-printing.h
|
|
gtest-qt-printing.cpp gtest-qt-printing.h
|
|
gtest-std-printing.h
|
|
lastchangedrowid-test.cpp
|
|
lineprefixer-test.cpp
|
|
matchingtext-test.cpp
|
|
mockclangcodemodelclient.h
|
|
mockclangcodemodelserver.h
|
|
mockfutureinterface.h
|
|
mockmutex.h
|
|
mockqfilesystemwatcher.h
|
|
mockqueue.h
|
|
mocksqlitestatement.h
|
|
mocksqlitetransactionbackend.h
|
|
mocksyntaxhighligher.h
|
|
mocktimer.cpp mocktimer.h
|
|
nodelistproperty-test.cpp
|
|
processcreator-test.cpp
|
|
processevents-utilities.cpp processevents-utilities.h
|
|
readandwritemessageblock-test.cpp
|
|
rundocumentparse-utility.h
|
|
sizedarray-test.cpp
|
|
smallstring-test.cpp
|
|
sourcerangecontainer-matcher.h
|
|
spydummy.cpp spydummy.h
|
|
sqlitealgorithms-test.cpp
|
|
sqliteindex-test.cpp
|
|
sqliteteststatement.h
|
|
sqlitetransaction-test.cpp
|
|
unittests-main.cpp
|
|
unittest-utility-functions.h
|
|
utf8-test.cpp
|
|
sqlitecolumn-test.cpp
|
|
sqlitedatabasebackend-test.cpp
|
|
sqlitedatabase-test.cpp
|
|
sqlitesessions-test.cpp
|
|
sqlitestatement-test.cpp
|
|
sqlitetable-test.cpp
|
|
sqlstatementbuilder-test.cpp
|
|
createtablesqlstatementbuilder-test.cpp
|
|
sqlitevalue-test.cpp
|
|
asynchronousimagecache-test.cpp
|
|
synchronousimagecache-test.cpp
|
|
imagecachegenerator-test.cpp
|
|
imagecachestorage-test.cpp
|
|
sqlitedatabasemock.h
|
|
sqlitereadstatementmock.cpp sqlitereadstatementmock.h
|
|
sqlitereadwritestatementmock.cpp
|
|
sqlitestatementmock.h
|
|
sqlitetransactionbackendmock.h
|
|
sqlitewritestatementmock.cpp sqlitewritestatementmock.h
|
|
notification.h
|
|
mocktimestampprovider.h
|
|
imagecachecollectormock.h
|
|
mockimagecachegenerator.h
|
|
mockimagecachestorage.h
|
|
asynchronousexplicitimagecache-test.cpp
|
|
asynchronousimagefactory-test.cpp
|
|
)
|
|
|
|
if (NOT TARGET unittest)
|
|
return()
|
|
endif()
|
|
|
|
function(extend_qtc_test_with_target_sources target)
|
|
cmake_parse_arguments(_arg "" "" "DEFINES;INCLUDES" ${ARGN})
|
|
|
|
get_target_property(${target}Sources ${target} SOURCES)
|
|
# work around issue with CMake < 3.14 where target sources can contain
|
|
# $<TARGET_OBJECTS:...>
|
|
list(FILTER ${target}Sources EXCLUDE REGEX "^\\$<TARGET_OBJECTS:.*")
|
|
|
|
get_target_property(${target}SourcesDir ${target} SOURCES_DIR)
|
|
extend_qtc_test(unittest
|
|
SOURCES_PREFIX "${${target}SourcesDir}"
|
|
SOURCES ${${target}Sources}
|
|
DEFINES
|
|
$<TARGET_PROPERTY:${target},INTERFACE_COMPILE_DEFINITIONS>
|
|
${_arg_DEFINES}
|
|
INCLUDES
|
|
$<TARGET_PROPERTY:${target},INTERFACE_INCLUDE_DIRECTORIES>
|
|
${_arg_INCLUDES}
|
|
)
|
|
endfunction()
|
|
|
|
if (HAVE_LIBCLANG AND NOT TARGET clangbackend_lib)
|
|
add_subdirectory(../../../src/tools/clangbackend/source ${CMAKE_CURRENT_BINARY_DIR}/clangbackend)
|
|
endif()
|
|
extend_qtc_test(unittest DEPENDS clangbackend_lib CONDITION HAVE_LIBCLANG)
|
|
|
|
if (NOT TARGET Sqlite)
|
|
add_subdirectory(../../../src/libs/sqlite ${CMAKE_CURRENT_BINARY_DIR}/sqlite)
|
|
endif()
|
|
extend_qtc_test_with_target_sources(Sqlite
|
|
DEFINES SQLITE_CUSTOM_INCLUDE=config.h
|
|
)
|
|
|
|
if (APPLE)
|
|
extend_qtc_test(unittest DEFINES _BSD_SOURCE)
|
|
elseif (UNIX)
|
|
extend_qtc_test(unittest DEFINES _POSIX_C_SOURCE=200809L _GNU_SOURCE _DEFAULT_SOURCE)
|
|
endif()
|
|
|
|
# Do not work on the source directory data
|
|
add_custom_command(TARGET unittest POST_BUILD
|
|
COMMAND "${CMAKE_COMMAND}" -E copy_directory
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/data"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/data"
|
|
)
|
|
|
|
extend_qtc_test(unittest
|
|
CONDITION HAVE_LIBCLANG
|
|
INCLUDES "${CLANG_INCLUDE_DIRS}"
|
|
DEFINES CLANG_UNIT_TESTS
|
|
DEPENDS libclang
|
|
SOURCES
|
|
activationsequencecontextprocessor-test.cpp
|
|
activationsequenceprocessor-test.cpp
|
|
chunksreportedmonitor.cpp
|
|
clangasyncjob-base.cpp
|
|
clangcodecompleteresults-test.cpp
|
|
clangcodemodelserver-test.cpp
|
|
clangcompletecodejob-test.cpp
|
|
clangcompletioncontextanalyzer-test.cpp
|
|
clangdiagnosticfilter-test.cpp
|
|
clangdocumentprocessors-test.cpp
|
|
clangdocumentprocessor-test.cpp
|
|
clangdocuments-test.cpp
|
|
clangdocumentsuspenderresumer-test.cpp
|
|
clangdocument-test.cpp
|
|
clangfixitoperation-test.cpp
|
|
clangfollowsymbol-test.cpp
|
|
clangisdiagnosticrelatedtolocation-test.cpp
|
|
clangjobqueue-test.cpp
|
|
clangjobs-test.cpp
|
|
clangparsesupportivetranslationunitjob-test.cpp
|
|
clangreferencescollector-test.cpp
|
|
clangrequestannotationsjob-test.cpp
|
|
clangrequestreferencesjob-test.cpp
|
|
clangresumedocumentjob-test.cpp
|
|
clangstring-test.cpp
|
|
clangsupportivetranslationunitinitializer-test.cpp
|
|
clangsuspenddocumentjob-test.cpp
|
|
clangtooltipinfo-test.cpp
|
|
clangtranslationunits-test.cpp
|
|
clangtranslationunit-test.cpp
|
|
clangupdateannotationsjob-test.cpp
|
|
codecompleter-test.cpp
|
|
codecompletionsextractor-test.cpp
|
|
completionchunkstotextconverter-test.cpp
|
|
cursor-test.cpp
|
|
diagnosticset-test.cpp
|
|
diagnostic-test.cpp
|
|
fixit-test.cpp
|
|
gtest-clang-printing.cpp gtest-clang-printing.h
|
|
highlightingresultreporter-test.cpp
|
|
readexporteddiagnostics-test.cpp
|
|
skippedsourceranges-test.cpp
|
|
sourcelocation-test.cpp
|
|
sourcerange-test.cpp
|
|
token-test.cpp
|
|
tokenprocessor-test.cpp
|
|
translationunitupdater-test.cpp
|
|
unsavedfile-test.cpp
|
|
unsavedfiles-test.cpp
|
|
utf8positionfromlinecolumn-test.cpp
|
|
chunksreportedmonitor.h
|
|
clangasyncjob-base.h
|
|
clangcompareoperators.h
|
|
diagnosticcontainer-matcher.h
|
|
)
|
|
|
|
extend_qtc_test(unittest
|
|
CONDITION TARGET GoogleBenchmark
|
|
DEPENDS GoogleBenchmark
|
|
SOURCES
|
|
smallstring-benchmark.cpp
|
|
)
|
|
|
|
finalize_qtc_gtest(unittest ".c$")
|
|
|
|
# Path needs to be before CppEditor
|
|
target_include_directories(unittest
|
|
PRIVATE
|
|
BEFORE ../../../src/tools/clangbackend/source
|
|
BEFORE ../../../src/plugins
|
|
)
|
|
|
|
# QmlDesigner tests
|
|
|
|
set(QmlDesignerDir ../../../src/plugins/qmldesigner)
|
|
extend_qtc_test(unittest
|
|
INCLUDES
|
|
"${QmlDesignerDir}"
|
|
"${QmlDesignerDir}/designercore"
|
|
"${QmlDesignerDir}/designercore/include"
|
|
"${QmlDesignerDir}/designercore/imagecache"
|
|
"${QmlDesignerDir}/../../../share/qtcreator/qml/qmlpuppet/interfaces"
|
|
"${QmlDesignerDir}/../../../share/qtcreator/qml/qmlpuppet/types"
|
|
DEFINES
|
|
QMLDESIGNER_TEST DESIGNER_STATIC_CORE_LIBRARY
|
|
SOURCES_PREFIX
|
|
"${QmlDesignerDir}"
|
|
SOURCES
|
|
components/listmodeleditor/listmodeleditormodel.cpp components/listmodeleditor/listmodeleditormodel.h
|
|
)
|
|
extend_qtc_test(unittest
|
|
SOURCES_PREFIX "${QmlDesignerDir}/designercore"
|
|
SOURCES
|
|
../../../../share/qtcreator/qml/qmlpuppet/interfaces/commondefines.h
|
|
../components/listmodeleditor/listmodeleditormodel.cpp
|
|
../components/listmodeleditor/listmodeleditormodel.h
|
|
exceptions/exception.cpp
|
|
exceptions/invalidargumentexception.cpp
|
|
exceptions/invalididexception.cpp
|
|
exceptions/invalidmetainfoexception.cpp
|
|
exceptions/invalidmodelnodeexception.cpp
|
|
exceptions/invalidmodelstateexception.cpp
|
|
exceptions/invalidpropertyexception.cpp
|
|
exceptions/invalidqmlsourceexception.cpp
|
|
exceptions/invalidreparentingexception.cpp
|
|
exceptions/invalidslideindexexception.cpp
|
|
exceptions/notimplementedexception.cpp
|
|
exceptions/removebasestateexception.cpp
|
|
exceptions/rewritingexception.cpp
|
|
imagecache/asynchronousexplicitimagecache.cpp
|
|
imagecache/asynchronousimagecache.cpp
|
|
imagecache/asynchronousimagefactory.cpp
|
|
imagecache/asynchronousimagefactory.h
|
|
imagecache/imagecachecollectorinterface.h
|
|
imagecache/imagecachegenerator.cpp
|
|
imagecache/imagecachegenerator.h
|
|
imagecache/imagecachegeneratorinterface.h
|
|
imagecache/imagecachestorage.h
|
|
imagecache/imagecachestorageinterface.h
|
|
imagecache/synchronousimagecache.cpp
|
|
imagecache/timestampproviderinterface.h
|
|
include/abstractproperty.h
|
|
include/abstractview.h
|
|
include/asynchronousexplicitimagecache.h
|
|
include/asynchronousimagecache.h
|
|
include/asynchronousimagecacheinterface.h
|
|
include/bindingproperty.h
|
|
include/imagecacheauxiliarydata.h
|
|
include/import.h
|
|
include/model.h
|
|
include/modelnode.h
|
|
include/nodeabstractproperty.h
|
|
include/nodelistproperty.h
|
|
include/nodeproperty.h
|
|
include/projectstorageids.h
|
|
include/qmldesignercorelib_global.h
|
|
include/signalhandlerproperty.h
|
|
include/synchronousimagecache.h
|
|
include/variantproperty.h
|
|
model/abstractproperty.cpp
|
|
model/abstractview.cpp
|
|
model/annotation.cpp
|
|
model/bindingproperty.cpp
|
|
model/import.cpp
|
|
model/internalbindingproperty.cpp
|
|
model/internalbindingproperty.h
|
|
model/internalnode.cpp
|
|
model/internalnode_p.h
|
|
model/internalnodeabstractproperty.cpp
|
|
model/internalnodeabstractproperty.h
|
|
model/internalnodelistproperty.cpp
|
|
model/internalnodelistproperty.h
|
|
model/internalnodeproperty.cpp
|
|
model/internalnodeproperty.h
|
|
model/internalproperty.cpp
|
|
model/internalproperty.h
|
|
model/internalsignalhandlerproperty.cpp
|
|
model/internalsignalhandlerproperty.h
|
|
model/internalvariantproperty.cpp
|
|
model/internalvariantproperty.h
|
|
model/model.cpp
|
|
model/model_p.h
|
|
model/modelnode.cpp
|
|
model/nodeabstractproperty.cpp
|
|
model/nodelistproperty.cpp
|
|
model/nodeproperty.cpp
|
|
model/signalhandlerproperty.cpp
|
|
model/variantproperty.cpp
|
|
projectstorage/directorypathcompressor.h
|
|
projectstorage/filesysteminterface.h
|
|
projectstorage/filesystem.cpp projectstorage/filesystem.h
|
|
projectstorage/filestatus.h
|
|
projectstorage/filestatuscache.cpp projectstorage/filestatuscache.h
|
|
projectstorage/nonlockingmutex.h
|
|
projectstorage/projectmanagerinterface.h
|
|
projectstorage/projectstorageinterface.h
|
|
projectstorage/projectstorage.h
|
|
projectstorage/projectstoragepathwatcher.h
|
|
projectstorage/projectstoragepathwatcherinterface.h
|
|
projectstorage/projectstoragepathwatchernotifierinterface.h
|
|
projectstorage/projectstoragesqlitefunctionregistry.cpp
|
|
projectstorage/projectstoragesqlitefunctionregistry.h
|
|
projectstorage/projectstoragepathwatcher.h
|
|
projectstorage/projectstoragepathwatchertypes.h
|
|
projectstorage/projectstoragetypes.h
|
|
projectstorage/projectstorageupdater.cpp projectstorage/projectstorageupdater.h
|
|
projectstorage/sourcepath.h
|
|
projectstorage/sourcepathcache.h
|
|
projectstorage/sourcepathcache.h
|
|
projectstorage/sourcepathcachetypes.h
|
|
projectstorage/sourcepathview.h
|
|
projectstorage/storagecache.h
|
|
projectstorage/storagecacheentry.h
|
|
projectstorage/storagecachefwd.h
|
|
projectstorage/qmldocumentparserinterface.h
|
|
projectstorage/qmltypesparserinterface.h
|
|
rewritertransaction.cpp
|
|
rewritertransaction.h
|
|
EXPLICIT_MOC
|
|
"../mockup/qmldesigner/designercore/include/nodeinstanceview.h"
|
|
"../mockup/qmldesigner/designercore/include/rewriterview.h"
|
|
"${QmlDesignerDir}/designercore/include/model.h"
|
|
)
|
|
|
|
extend_qtc_test(unittest
|
|
SOURCES
|
|
directorypathcompressor-test.cpp
|
|
filesystemmock.h
|
|
filestatuscache-test.cpp
|
|
listmodeleditor-test.cpp
|
|
projectmanagermock.h
|
|
projectstorage-test.cpp
|
|
projectstorageupdater-test.cpp
|
|
projectstoragesqlitefunctionregistry-test.cpp
|
|
projectstoragepathwatchermock.h
|
|
projectstoragepathwatchernotifiermock.h
|
|
projectstoragepathwatcher-test.cpp
|
|
sourcepath-test.cpp
|
|
sourcepathcache-test.cpp
|
|
sourcepathcachemock.h
|
|
sourcepathview-test.cpp
|
|
storagecache-test.cpp
|
|
qmldocumentparsermock.h
|
|
qmltypesparsermock.h
|
|
)
|
|
|
|
# QmlDesigner tests END
|
|
|
|
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 ../../../src/plugins/clangcodemodel
|
|
SOURCES
|
|
clangactivationsequencecontextprocessor.cpp clangactivationsequencecontextprocessor.h
|
|
clangactivationsequenceprocessor.cpp clangactivationsequenceprocessor.h
|
|
clangcompletionchunkstotextconverter.cpp clangcompletionchunkstotextconverter.h
|
|
clangcompletioncontextanalyzer.cpp clangcompletioncontextanalyzer.h
|
|
clangdiagnosticfilter.cpp clangdiagnosticfilter.h
|
|
clangfixitoperation.cpp clangfixitoperation.h
|
|
clanghighlightingresultreporter.cpp clanghighlightingresultreporter.h
|
|
clanguiheaderondiskmanager.cpp clanguiheaderondiskmanager.h
|
|
clangisdiagnosticrelatedtolocation.h
|
|
)
|
|
|
|
find_package(yaml-cpp QUIET MODULE)
|
|
|
|
extend_qtc_test(unittest
|
|
DEPENDS yaml-cpp
|
|
DEFINES CLANGTOOLS_STATIC_LIBRARY
|
|
SOURCES_PREFIX ../../../src/plugins/clangtools
|
|
SOURCES
|
|
clangtoolsdiagnostic.cpp
|
|
clangtoolsdiagnostic.h
|
|
clangtoolslogfilereader.cpp
|
|
clangtoolslogfilereader.h
|
|
)
|
|
|
|
extend_qtc_test(unittest
|
|
DEFINES DEBUGGER_STATIC_LIBRARY
|
|
SOURCES_PREFIX ../../../src/plugins/debugger
|
|
SOURCES
|
|
analyzer/diagnosticlocation.cpp
|
|
analyzer/diagnosticlocation.h
|
|
)
|
|
|
|
extend_qtc_test(unittest
|
|
SOURCES_PREFIX ../../../src/plugins/coreplugin
|
|
DEFINES CORE_STATIC_LIBRARY
|
|
SOURCES
|
|
coreicons.cpp coreicons.h
|
|
find/ifindfilter.cpp find/ifindfilter.h
|
|
locator/ilocatorfilter.cpp locator/ilocatorfilter.h
|
|
)
|
|
|
|
extend_qtc_test(unittest
|
|
SOURCES_PREFIX ../../../src/plugins/cppeditor
|
|
DEFINES CPPEDITOR_STATIC_LIBRARY
|
|
SOURCES
|
|
cppprojectfile.cpp cppprojectfile.h
|
|
)
|
|
|
|
get_filename_component(
|
|
QMLDOM_STANDALONE_CMAKELISTS
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../qmldom_standalone/src/qmldom/standalone/"
|
|
ABSOLUTE
|
|
)
|
|
|
|
if(EXISTS ${QMLDOM_STANDALONE_CMAKELISTS} AND Qt6_FOUND)
|
|
add_subdirectory(
|
|
../../../../qmldom_standalone/src/qmldom/standalone
|
|
${CMAKE_CURRENT_BINARY_DIR}/qmldom_standalone)
|
|
|
|
set_target_properties(qmldomlib PROPERTIES
|
|
RUNTIME_OUTPUT_DIRECTORY "$<TARGET_PROPERTY:QmlJS,RUNTIME_OUTPUT_DIRECTORY>"
|
|
LIBRARY_OUTPUT_DIRECTORY "$<TARGET_PROPERTY:QmlJS,LIBRARY_OUTPUT_DIRECTORY>")
|
|
|
|
extend_qtc_test(unittest
|
|
DEPENDS qmldomlib
|
|
SOURCES
|
|
qmldocumentparser-test.cpp
|
|
qmltypesparser-test.cpp
|
|
)
|
|
extend_qtc_test(unittest
|
|
SOURCES_PREFIX "${QmlDesignerDir}/designercore"
|
|
SOURCES
|
|
projectstorage/qmldocumentparser.cpp projectstorage/qmldocumentparser.h
|
|
projectstorage/qmltypesparser.cpp projectstorage/qmltypesparser.h
|
|
)
|
|
endif()
|