From kde-commits Fri Aug 31 18:23:14 2012 From: Marco Gulino Date: Fri, 31 Aug 2012 18:23:14 +0000 To: kde-commits Subject: [kde-workspace] /: Added QJSON as optional dependency in kde-workspace, disabling chrome support in Message-Id: <20120831182314.4ABA1A60DC () git ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=134643740423776 Git commit 56e9cf6e7a305caba2a38630109c0486dc1b9cde by Marco Gulino. Committed on 31/08/2012 at 20:22. Pushed by gulino into branch 'master'. Added QJSON as optional dependency in kde-workspace, disabling chrome suppo= rt in Bookmarks Runner if not found M +2 -0 CMakeLists.txt A +46 -0 cmake/modules/FindQJSON.cmake M +22 -11 plasma/generic/runners/bookmarks/CMakeLists.txt M +2 -0 plasma/generic/runners/bookmarks/browserfactory.cpp http://commits.kde.org/kde-workspace/56e9cf6e7a305caba2a38630109c0486dc1b9c= de diff --git a/CMakeLists.txt b/CMakeLists.txt index 781d2c3..30eb084 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,6 +95,8 @@ macro_optional_find_package(Akonadi) macro_log_feature(Akonadi_FOUND "Akonadi" "An extensible cross-desktop sto= rage service for PIM data" "http://pim.kde.org/akonadi" FALSE "" "Required = to build certain Plasma DataEngines (Akonadi, Calendar)") macro_optional_find_package(KdepimLibs 4.5.60) macro_log_feature(KdepimLibs_FOUND "KDE PIM Libs" "KDE Libraries for PIM" = "http://pim.kde.org/" FALSE "4.5.60" "Required to build certain Plasma Data= Engines (Akonadi, Calendar)") +macro_optional_find_package(QJSON) +macro_log_feature(QJSON_FOUND "QJson" "Library to manage JSON objects with= Qt" "http://qjson.sourceforge.net/" FALSE "" "Required to build Chrome/Chr= omium support for Plasma Bookmarks Runners") = = include(ConfigureChecks.cmake) diff --git a/cmake/modules/FindQJSON.cmake b/cmake/modules/FindQJSON.cmake new file mode 100644 index 0000000..32e294f --- /dev/null +++ b/cmake/modules/FindQJSON.cmake @@ -0,0 +1,46 @@ +# Find QJSON - JSON handling library for Qt +# +# This module defines +# QJSON_FOUND - whether the qsjon library was found +# QJSON_LIBRARIES - the qjson library +# QJSON_INCLUDE_DIR - the include path of the qjson library +# + +if (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES) + + # Already in cache + set (QJSON_FOUND TRUE) + +else (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES) + + if (NOT WIN32) + # use pkg-config to get the values of QJSON_INCLUDE_DIRS + # and QJSON_LIBRARY_DIRS to add as hints to the find commands. + include (FindPkgConfig) + pkg_check_modules (QJSON REQUIRED QJson>=3D0.5) + endif (NOT WIN32) + + find_library (QJSON_LIBRARIES + NAMES + qjson + PATHS + ${QJSON_LIBRARY_DIRS} + ${LIB_INSTALL_DIR} + ${KDE4_LIB_DIR} + ) + + find_path (QJSON_INCLUDE_DIR + NAMES + parser.h + PATH_SUFFIXES + qjson + PATHS + ${QJSON_INCLUDE_DIRS} + ${INCLUDE_INSTALL_DIR} + ${KDE4_INCLUDE_DIR} + ) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(QJSON DEFAULT_MSG QJSON_LIBRARIES QJSO= N_INCLUDE_DIR) + +endif (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES) diff --git a/plasma/generic/runners/bookmarks/CMakeLists.txt b/plasma/gener= ic/runners/bookmarks/CMakeLists.txt index c339068..f2c6d7f 100644 --- a/plasma/generic/runners/bookmarks/CMakeLists.txt +++ b/plasma/generic/runners/bookmarks/CMakeLists.txt @@ -1,25 +1,34 @@ - ########### next target ############### -find_package(QJSON REQUIRED) -include_directories(${QJSON_INCLUDE_DIR}) +set(EXTERNAL_LIBS ${KDE4_KIO_LIBS} ${QT_QTSCRIPT_LIBRARY} ${KDE4_PLASMA_LI= BS} ${QT_QTSQL_LIBRARY}) +if(QJSON_FOUND) + add_definitions(-DHAVE_QJSON=3D1) + set(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${QJSON_LIBRARIES} ) + include_directories(${QJSON_INCLUDE_DIR}) +endif(QJSON_FOUND) = set(krunner_bookmarksrunner_SRCS browserfactory.cpp bookmarkmatch.cpp faviconfromblob.cpp - browsers/chromefindprofile.cpp - browsers/chrome.cpp + favicon.cpp + fetchsqlite.cpp browsers/opera.cpp bookmarksrunner.cpp browsers/kdebrowser.cpp browsers/firefox.cpp - favicon.cpp - fetchsqlite.cpp ) = +if(QJSON_FOUND) +set(krunner_bookmarksrunner_SRCS + ${krunner_bookmarksrunner_SRCS} + browsers/chromefindprofile.cpp + browsers/chrome.cpp +) +endif(QJSON_FOUND) + + kde4_add_plugin(krunner_bookmarksrunner ${krunner_bookmarksrunner_SRCS}) -target_link_libraries(krunner_bookmarksrunner ${KDE4_KIO_LIBS} ${QT_QTSCRI= PT_LIBRARY} ${KDE4_PLASMA_LIBS} - ${QT_QTSQL_LIBRARY} ${QJSON_LIBRARIES}) +target_link_libraries(krunner_bookmarksrunner ${EXTERNAL_LIBS}) = install(TARGETS krunner_bookmarksrunner DESTINATION ${PLUGIN_INSTALL_DIR} ) = @@ -28,5 +37,7 @@ install(TARGETS krunner_bookmarksrunner DESTINATION ${PLU= GIN_INSTALL_DIR} ) = install(FILES plasma-runner-bookmarks.desktop DESTINATION ${SERVICES_INSTA= LL_DIR}) = - -add_subdirectory(tests) +# Currently tests include only chrome, so no need to get include them if j= son is not found +if(QJSON_FOUND) + add_subdirectory(tests) +endif(QJSON_FOUND) diff --git a/plasma/generic/runners/bookmarks/browserfactory.cpp b/plasma/g= eneric/runners/bookmarks/browserfactory.cpp index ce2caac..7f29f5e 100644 --- a/plasma/generic/runners/bookmarks/browserfactory.cpp +++ b/plasma/generic/runners/bookmarks/browserfactory.cpp @@ -37,10 +37,12 @@ Browser *BrowserFactory::find(const QString& browserNam= e, QObject* parent) m_previousBrowser =3D new Firefox(parent); } else if (browserName.contains("opera", Qt::CaseInsensitive)) { m_previousBrowser =3D new Opera(parent); +#ifdef HAVE_QJSON } else if (browserName.contains("chrome", Qt::CaseInsensitive)) { m_previousBrowser =3D new Chrome(new FindChromeProfile("google-chr= ome", QDir::homePath(), parent), parent); } else if (browserName.contains("chromium", Qt::CaseInsensitive)) { m_previousBrowser =3D new Chrome(new FindChromeProfile("chromium",= QDir::homePath(), parent), parent); +#endif // HAVE_QJSON } else { m_previousBrowser =3D new KDEBrowser(parent); }