From cf21ddc3cce570e574364e841758b59c0f8e8e04 Mon Sep 17 00:00:00 2001 From: samelian Date: Sun, 23 Jan 2011 20:22:40 +0000 Subject: [kdevelop] initial cmake support git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdevelop@1216516 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- lib/CMakeLists.txt | 39 +++++++++++++++++ lib/antlr/CMakeLists.txt | 13 ++++++ lib/antlr/antlr/CMakeLists.txt | 10 +++++ lib/antlr/src/CMakeLists.txt | 38 +++++++++++++++++ lib/astyle/CMakeLists.txt | 24 +++++++++++ lib/catalog/CMakeLists.txt | 38 +++++++++++++++++ lib/cppparser/CMakeLists.txt | 43 +++++++++++++++++++ lib/interfaces/CMakeLists.txt | 61 +++++++++++++++++++++++++++ lib/interfaces/extensions/CMakeLists.txt | 54 ++++++++++++++++++++++++ lib/interfaces/extensions/dcop/CMakeLists.txt | 34 +++++++++++++++ lib/interfaces/external/CMakeLists.txt | 30 +++++++++++++ lib/interfaces/extras/CMakeLists.txt | 40 ++++++++++++++++++ lib/util/CMakeLists.txt | 38 +++++++++++++++++ lib/widgets/CMakeLists.txt | 52 +++++++++++++++++++++++ lib/widgets/propeditor/CMakeLists.txt | 59 ++++++++++++++++++++++++++ 15 files changed, 573 insertions(+) create mode 100644 lib/CMakeLists.txt create mode 100644 lib/antlr/CMakeLists.txt create mode 100644 lib/antlr/antlr/CMakeLists.txt create mode 100644 lib/antlr/src/CMakeLists.txt create mode 100644 lib/astyle/CMakeLists.txt create mode 100644 lib/catalog/CMakeLists.txt create mode 100644 lib/cppparser/CMakeLists.txt create mode 100644 lib/interfaces/CMakeLists.txt create mode 100644 lib/interfaces/extensions/CMakeLists.txt create mode 100644 lib/interfaces/extensions/dcop/CMakeLists.txt create mode 100644 lib/interfaces/external/CMakeLists.txt create mode 100644 lib/interfaces/extras/CMakeLists.txt create mode 100644 lib/util/CMakeLists.txt create mode 100644 lib/widgets/CMakeLists.txt create mode 100644 lib/widgets/propeditor/CMakeLists.txt (limited to 'lib') diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt new file mode 100644 index 00000000..07d06e3b --- /dev/null +++ b/lib/CMakeLists.txt @@ -0,0 +1,39 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +add_subdirectory( util ) +add_subdirectory( interfaces ) +add_subdirectory( widgets ) +add_subdirectory( antlr ) +add_subdirectory( catalog ) +add_subdirectory( cppparser ) +add_subdirectory( astyle ) + +include_directories( + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + + +##### kdevelop (shared) ######################### + +tde_add_library( kdevelop SHARED + SOURCES dummy.cpp + VERSION 1.0.0 + EMBED kdevutil-static kdevinterfaces-static + LINK + kdevpropertyeditor-shared + kscript-shared kparts-shared ktexteditor-shared + DESTINATION ${LIB_INSTALL_DIR} +) diff --git a/lib/antlr/CMakeLists.txt b/lib/antlr/CMakeLists.txt new file mode 100644 index 00000000..8e293b46 --- /dev/null +++ b/lib/antlr/CMakeLists.txt @@ -0,0 +1,13 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +add_subdirectory( src ) +add_subdirectory( antlr ) diff --git a/lib/antlr/antlr/CMakeLists.txt b/lib/antlr/antlr/CMakeLists.txt new file mode 100644 index 00000000..96e1e621 --- /dev/null +++ b/lib/antlr/antlr/CMakeLists.txt @@ -0,0 +1,10 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# diff --git a/lib/antlr/src/CMakeLists.txt b/lib/antlr/src/CMakeLists.txt new file mode 100644 index 00000000..2215c5f6 --- /dev/null +++ b/lib/antlr/src/CMakeLists.txt @@ -0,0 +1,38 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +# FIXME KDE_CXXFLAGS = $(USE_EXCEPTIONS) + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/lib/antlr + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + + +##### antlr (static) ############################ + +tde_add_library( antlr STATIC_PIC + SOURCES + ANTLRUtil.cpp ASTFactory.cpp ASTNULLType.cpp + ASTRefCount.cpp BaseAST.cpp BitSet.cpp + CharBuffer.cpp CharScanner.cpp CommonAST.cpp + CommonASTWithHiddenTokens.cpp CommonHiddenStreamToken.cpp + CommonToken.cpp InputBuffer.cpp LLkParser.cpp + MismatchedCharException.cpp MismatchedTokenException.cpp + NoViableAltException.cpp NoViableAltForCharException.cpp + Parser.cpp RecognitionException.cpp String.cpp + Token.cpp TokenBuffer.cpp TokenRefCount.cpp + TokenStreamBasicFilter.cpp TokenStreamHiddenTokenFilter.cpp + TokenStreamRewriteEngine.cpp TokenStreamSelector.cpp + TreeParser.cpp +) diff --git a/lib/astyle/CMakeLists.txt b/lib/astyle/CMakeLists.txt new file mode 100644 index 00000000..8a0abb9b --- /dev/null +++ b/lib/astyle/CMakeLists.txt @@ -0,0 +1,24 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +include_directories( + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + + +##### astyle (static) ########################### + +tde_add_library( astyle STATIC_PIC + SOURCES + ASBeautifier.cpp ASEnhancer.cpp + ASFormatter.cpp ASResource.cpp +) diff --git a/lib/catalog/CMakeLists.txt b/lib/catalog/CMakeLists.txt new file mode 100644 index 00000000..404b7bc9 --- /dev/null +++ b/lib/catalog/CMakeLists.txt @@ -0,0 +1,38 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + + +##### headers ################################### + +install( FILES + catalog.h tag.h + DESTINATION ${INCLUDE_INSTALL_DIR}/kdevelop/catalog ) + + +##### kdevcatalog (shared) ###################### + +tde_add_library( kdevcatalog SHARED AUTOMOC + SOURCES tag.cpp catalog.cpp + VERSION 0.0.0 + LINK kdecore-shared ${BDB_LIBRARY} + DESTINATION ${LIB_INSTALL_DIR} +) diff --git a/lib/cppparser/CMakeLists.txt b/lib/cppparser/CMakeLists.txt new file mode 100644 index 00000000..d8cf531d --- /dev/null +++ b/lib/cppparser/CMakeLists.txt @@ -0,0 +1,43 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +add_definitions( -DKDEVELOP_BGPARSER ) + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/lib/interfaces + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + + +##### headers ################################### + +install( FILES + ast.h driver.h lexer.h parser.h tree_parser.h errors.h + lookup.h cachemanager.h lexercache.h macro.h + DESTINATION ${INCLUDE_INSTALL_DIR}/kdevelop/cppparser ) + + +##### kdevcppparser (shared) #################### + +tde_add_library( kdevcppparser SHARED AUTOMOC + SOURCES + ast.cpp cachemanager.cpp driver.cpp errors.cpp lexer.cpp + lexercache.cpp lookup.cpp parser.cpp tree_parser.cpp + VERSION 0.0.0 + LINK kdevinterfaces-static kio-shared + DESTINATION ${LIB_INSTALL_DIR} +) diff --git a/lib/interfaces/CMakeLists.txt b/lib/interfaces/CMakeLists.txt new file mode 100644 index 00000000..fac94870 --- /dev/null +++ b/lib/interfaces/CMakeLists.txt @@ -0,0 +1,61 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +add_subdirectory( extensions ) +add_subdirectory( external ) +add_subdirectory( extras ) + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/util + ${CMAKE_SOURCE_DIR}/lib/interfaces/external + ${CMAKE_SOURCE_DIR}/lib/cppparser + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + + +##### headers ################################### + +install( FILES + kdevlanguagesupport.h kdevmainwindow.h kdevpartcontroller.h + kdevplugin.h kdevproject.h kdevcore.h kdevcoderepository.h + codemodel.h codemodel_utils.h codemodel_treeparser.h + kdevgenericfactory.h kdevapi.h kdevdesignerintegration.h + kdevplugincontroller.h kdevplugininfo.h KDevCoreIface.h + KDevPartControllerIface.h katedocumentmanagerinterface.h + hashedstring.h + DESTINATION ${INCLUDE_INSTALL_DIR}/kdevelop/interfaces ) + +install( FILES + kdevelopproject.desktop kdeveloplanguagesupport.desktop + kdevelopplugin.desktop + DESTINATION ${SERVICETYPES_INSTALL_DIR} ) + + +##### kdevinterfaces (static) ################### + +tde_add_library( kdevinterfaces STATIC_PIC AUTOMOC + SOURCES + kdevcore.cpp kdevproject.cpp kdevlanguagesupport.cpp + kdevpartcontroller.cpp kdevapi.cpp KDevCoreIface.skel + kdevmainwindow.cpp KDevPartControllerIface.skel + kdevplugin.cpp kdevcoderepository.cpp + codemodel.cpp codemodel_treeparser.cpp + codemodel_utils.cpp kdevdesignerintegration.cpp + kdevplugincontroller.cpp kdevplugininfo.cpp + KDevCoreIface.cpp KDevPartControllerIface.cpp + katedocumentmanagerinterface.cpp + katedocumentmanagerinterface.skel kdevprojectiface.cpp + kdevprojectiface.skel kdevdesignerintegrationiface.cpp + kdevdesignerintegrationiface.skel hashedstring.cpp +) diff --git a/lib/interfaces/extensions/CMakeLists.txt b/lib/interfaces/extensions/CMakeLists.txt new file mode 100644 index 00000000..d7c9cbf1 --- /dev/null +++ b/lib/interfaces/extensions/CMakeLists.txt @@ -0,0 +1,54 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +add_subdirectory( dcop ) + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/lib/interfaces + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + + +##### headers ################################### + +install( FILES + codebrowserfrontend.h kdevappfrontend.h kdevcreatefile.h + kdevdifffrontend.h kdevmakefrontend.h kdevquickopen.h + kdevsourceformatter.h kdevversioncontrol.h + DESTINATION ${INCLUDE_INSTALL_DIR}/kdevelop/interfaces/extensions ) + +install( FILES + kdevelopappfrontend.desktop kdevelopcodebrowserfrontend.desktop + kdevelopcreatefile.desktop kdevelopdifffrontend.desktop + kdevelopmakefrontend.desktop kdevelopquickopen.desktop + kdevelopsourceformatter.desktop kdevelopversioncontrol.desktop + DESTINATION ${SERVICETYPES_INSTALL_DIR} ) + + +##### kdevextensions (static) ################### + +add_custom_command( OUTPUT codebrowserfrontend.moc.cpp + COMMAND + ${TQT_TMOC_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/codebrowserfrontend.h -o codebrowserfrontend.moc.cpp + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/codebrowserfrontend.h ) + +add_custom_command( OUTPUT kdevversioncontrol.moc.cpp + COMMAND + ${TQT_TMOC_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/kdevversioncontrol.h -o kdevversioncontrol.moc.cpp + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/kdevversioncontrol.h ) + +tde_add_library( kdevextensions STATIC_PIC AUTOMOC + SOURCES + kdevappfrontend.cpp kdevappfrontend.cpp kdevmakefrontend.cpp + codebrowserfrontend.moc.cpp kdevversioncontrol.moc.cpp +) diff --git a/lib/interfaces/extensions/dcop/CMakeLists.txt b/lib/interfaces/extensions/dcop/CMakeLists.txt new file mode 100644 index 00000000..03e2d622 --- /dev/null +++ b/lib/interfaces/extensions/dcop/CMakeLists.txt @@ -0,0 +1,34 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/lib/interfaces + ${CMAKE_SOURCE_DIR}/lib/interfaces/extensions + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + + +##### headers ################################### + +install( FILES + KDevAppFrontendIface.h KDevMakeFrontendIface.h + DESTINATION ${INCLUDE_INSTALL_DIR}/kdevelop/interfaces/extensions/dcop ) + + +##### kdevdcopextensions (static) ############### + +tde_add_library( kdevdcopextensions STATIC_PIC + SOURCES + KDevAppFrontendIface.cpp KDevMakeFrontendIface.cpp + KDevAppFrontendIface.skel KDevMakeFrontendIface.skel +) diff --git a/lib/interfaces/external/CMakeLists.txt b/lib/interfaces/external/CMakeLists.txt new file mode 100644 index 00000000..1a12815c --- /dev/null +++ b/lib/interfaces/external/CMakeLists.txt @@ -0,0 +1,30 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + + +##### headers ################################### + +install( FILES + designer.h + DESTINATION ${INCLUDE_INSTALL_DIR}/kinterfacedesigner ) + + +##### kinterfacedesigner (static) ############### + +tde_add_library( kinterfacedesigner STATIC_PIC AUTOMOC + SOURCES designer.cpp +) diff --git a/lib/interfaces/extras/CMakeLists.txt b/lib/interfaces/extras/CMakeLists.txt new file mode 100644 index 00000000..522a9c10 --- /dev/null +++ b/lib/interfaces/extras/CMakeLists.txt @@ -0,0 +1,40 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + + +##### headers ################################### + +install( FILES + kdevcompileroptions.h kdevvcsintegrator.h + DESTINATION ${INCLUDE_INSTALL_DIR}/kdevelop/interfaces/extras ) + +install( FILES + kdevelopcompileroptions.desktop kdevelopvcsintegrator.desktop + DESTINATION ${SERVICETYPES_INSTALL_DIR} ) + + +##### kdevextras (shared) ####################### + +tde_add_library( kdevextras SHARED AUTOMOC + SOURCES kdevcompileroptions.cpp kdevvcsintegrator.cpp + VERSION 0.0.0 + LINK ${TQT_LIBRARIES} + DESTINATION ${LIB_INSTALL_DIR} +) diff --git a/lib/util/CMakeLists.txt b/lib/util/CMakeLists.txt new file mode 100644 index 00000000..f075a840 --- /dev/null +++ b/lib/util/CMakeLists.txt @@ -0,0 +1,38 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/interfaces + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + + +##### headers ################################### + +install( FILES + domutil.h execcommand.h filetemplate.h urlutil.h + configwidgetproxy.h rurl.h kscriptactionmanager.h + DESTINATION ${INCLUDE_INSTALL_DIR} ) + + +##### kdevutil (static) ######################### + +tde_add_library( kdevutil STATIC_PIC AUTOMOC + SOURCES + blockingkprocess.cpp configwidgetproxy.cpp + domutil.cpp execcommand.cpp filetemplate.cpp + kdeveditorutil.cpp kdevjobtimer.cpp + kdevshellwidget.cpp kscriptactionmanager.cpp + rurl.cpp settings.cpp urlutil.cpp +) diff --git a/lib/widgets/CMakeLists.txt b/lib/widgets/CMakeLists.txt new file mode 100644 index 00000000..aae0455b --- /dev/null +++ b/lib/widgets/CMakeLists.txt @@ -0,0 +1,52 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +add_subdirectory( propeditor ) + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/lib/interfaces + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + + +##### headers ################################### + +install( FILES + klistviewaction.h qcomboview.h flagboxes.h + ksavealldialog.h resizablecombo.h kcomboview.h + kdevhtmlpart.h processlinemaker.h processwidget.h + fancylistviewitem.h + DESTINATION ${INCLUDE_INSTALL_DIR}/kdevelop/widgets ) + + +##### other data ################################ + +install( FILES kdevhtml_partui.rc DESTINATION ${DATA_INSTALL_DIR}/kdevelop ) + + +##### kdevwidgets (shared) ###################### + +tde_add_library( kdevwidgets SHARED AUTOMOC + SOURCES + flagboxes.cpp qcomboview.cpp klistviewaction.cpp + kcomboview.cpp resizablecombo.cpp kdevhtmlpart.cpp + processlinemaker.cpp processwidget.cpp ksavealldialog.cpp + fancylistviewitem.cpp + VERSION 0.0.0 + LINK kio-shared khtml-shared + DESTINATION ${LIB_INSTALL_DIR} +) diff --git a/lib/widgets/propeditor/CMakeLists.txt b/lib/widgets/propeditor/CMakeLists.txt new file mode 100644 index 00000000..792ff33c --- /dev/null +++ b/lib/widgets/propeditor/CMakeLists.txt @@ -0,0 +1,59 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + + +##### headers ################################### + +install( FILES + childproperty.h pcombobox.h pdummywidget.h + ppointedit.h propertymachinefactory.h + pcursoredit.h pfontbutton.h prectedit.h + propertywidget.h pdateedit.h pfontcombo.h + property.h psizeedit.h pdatetimeedit.h + plineedit.h propertyeditor.h psizepolicyedit.h + pdoublenuminput.h ppixmapedit.h propertylist.h + pspinbox.h propertywidgetproxy.h multiproperty.h + pyesnobutton.h purledit.h psymbolcombo.h + pstringlistedit.h pcolorcombo.h pcolorbutton.h + pcheckbox.h plinestyleedit.h + DESTINATION ${INCLUDE_INSTALL_DIR}/kdevelop/propeditor ) + + +##### kdevpropertyeditor (shared) ############### + +tde_add_library( kdevpropertyeditor SHARED AUTOMOC + SOURCES + childproperty.cpp pcombobox.cpp pdummywidget.cpp + ppointedit.cpp propertymachinefactory.cpp + pstringlistedit.cpp multiproperty.cpp pcursoredit.cpp + pfontbutton.cpp prectedit.cpp propertywidget.cpp + psymbolcombo.cpp pcheckbox.cpp pdateedit.cpp pfontcombo.cpp + property.cpp psizeedit.cpp purledit.cpp pcolorbutton.cpp + pdatetimeedit.cpp plineedit.cpp propertyeditor.cpp + psizepolicyedit.cpp pyesnobutton.cpp pcolorcombo.cpp + pdoublenuminput.cpp ppixmapedit.cpp propertylist.cpp + pspinbox.cpp propertywidgetproxy.cpp plinestyleedit.cpp + qeditlistbox.cpp + VERSION 0.0.0 + LINK kio-shared + DESTINATION ${LIB_INSTALL_DIR} +) -- cgit v1.2.1