[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: RFC v2: adding a temporary, non-BC gauranteed, 'private' library
From:       Alexander Neundorf <neundorf () kde ! org>
Date:       2009-05-10 12:56:32
Message-ID: 200905101456.32792.neundorf () kde ! org
[Download RAW message or body]

...not sure which message exactly to reply to from these big threads, so I 
just take this one.

We have now a libknotificationitem-1.so, which is only a temporary thing, i.e. 
it may/will go away again in the future.
We discussed on kde-buildsystem:
http://lists.kde.org/?l=kde-buildsystem&m=124187917419874&w=2
http://lists.kde.org/?t=111529985400006&r=1&w=2

There is now a FindLibKNotificationItem-1.cmake installed by 
kdelibs/experimental/ (it is wrong that package A installs a FindA.cmake 
file, since the point of this file is to find out whether A is installed and 
where).
So, there are two options: install FindLibKNotificationItem-1.cmake by 
kdelibs, or not install it at all and instead give the project which use this 
experimental temporary library their own copy.

If we install it with kdelibs, we will have to make sure it stays reasonably 
working for the rest of KDE4, which would mean at least that once this 
library doesn't exist anymore, we should still give a proper error message 
("this library doesn't exist anymore, use the new stuff instead, porting goes 
like that."). These would have to come from the 
FindLibKNotificationItem-1.cmake file, which means we would have to keep this 
file around for the rest of KDE 4.

So the better solution is instead of installing a Find-module for a temporary 
library, give the users of this library their own copy of this module. This 
makes it also very clear that it is unstable etc.

Attached you can find the patch which does that for kdebase/.
If nobody objects, I'll commit this.

Aaron, can you please take care of the other locations, i.e.
kdenetwork/kget/
kdemultimedia/kmix/
kdepim/korganizer/
kdepim/akonadi/
kdeutils/kwallet/
kdeutils/kgpg/

Once done, kdelibs/experimental/ must not install 
FindLibKNotificationItem-1.cmake anymore.

Alex

["libknotificationitem.cmake.diff" (text/x-diff)]

Index: runtime/cmake/modules/FindLibKNotificationItem-1.cmake
===================================================================
--- runtime/cmake/modules/FindLibKNotificationItem-1.cmake	(revision 0)
+++ runtime/cmake/modules/FindLibKNotificationItem-1.cmake	(revision 0)
@@ -0,0 +1,37 @@
+# - Find libknotification-1 library
+# Find the libknotification-1. This is an experimental library which is not 
+# supposed to stay source- or binary compatible, it may even go away in the future \
again. +#
+# This module defines
+#  LIBKNOTIFICATIONITEM-1_FOUND - whether the libkonitification-1 library was found
+#  LIBKNOTIFICATIONITEM-1_LIBRARIES - the libknotification-1 library
+#  LIBKNOTIFICATIONITEM-1_INCLUDE_DIR - the include path of the libknotification-1 \
library +
+
+
+find_library (LIBKNOTIFICATIONITEM-1_LIBRARY
+  NAMES
+  knotificationitem-1
+  HINTS
+  ${LIB_INSTALL_DIR}
+  ${KDE4_LIB_DIR}
+)
+
+set(LIBKNOTIFICATIONITEM-1_LIBRARIES  ${LIBKNOTIFICATIONITEM-1_LIBRARY})
+
+find_path (LIBKNOTIFICATIONITEM-1_INCLUDE_DIR
+  NAMES
+  knotificationitem.h
+  PATH_SUFFIXES
+  knotificationitem-1
+  HINTS
+  ${INCLUDE_INSTALL_DIR}
+  ${KDE4_INCLUDE_DIR}
+)
+
+
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LibKNotificationItem-1  DEFAULT_MSG  \
LIBKNOTIFICATIONITEM-1_LIBRARY LIBKNOTIFICATIONITEM-1_INCLUDE_DIR) +
+mark_as_advanced(LIBKNOTIFICATIONITEM-1_INCLUDE_DIR LIBKNOTIFICATIONITEM-1_LIBRARY)

Property changes on: runtime/cmake/modules/FindLibKNotificationItem-1.cmake
___________________________________________________________________
Name: svn:eol-style
   + native

Index: runtime/nepomuk/services/strigi/CMakeLists.txt
===================================================================
--- runtime/nepomuk/services/strigi/CMakeLists.txt	(revision 965980)
+++ runtime/nepomuk/services/strigi/CMakeLists.txt	(working copy)
@@ -8,6 +8,7 @@
   ${NEPOMUK_INCLUDE_DIR}
   ${STRIGI_INCLUDE_DIR}
   ${nepomukstrigiservice_BUILD_DIR}
+  ${LIBKNOTIFICATIONITEM-1_INCLUDE_DIR}
   )
 
 set(strigiservice_SRCS
@@ -30,7 +31,7 @@
 kde4_add_plugin(nepomukstrigiservice ${strigiservice_SRCS})
 
 target_link_libraries(nepomukstrigiservice
-  knotificationitem-1 
+  ${LIBKNOTIFICATIONITEM-1_LIBRARIES}
   ${STRIGI_STREAMANALYZER_LIBRARY}
   ${STRIGI_STREAMS_LIBRARY}
   ${KDE4_KDEUI_LIBS}
Index: workspace/cmake/modules/FindLibKNotificationItem-1.cmake
===================================================================
--- workspace/cmake/modules/FindLibKNotificationItem-1.cmake	(revision 0)
+++ workspace/cmake/modules/FindLibKNotificationItem-1.cmake	(revision 0)
@@ -0,0 +1,37 @@
+# - Find libknotification-1 library
+# Find the libknotification-1. This is an experimental library which is not 
+# supposed to stay source- or binary compatible, it may even go away in the future \
again. +#
+# This module defines
+#  LIBKNOTIFICATIONITEM-1_FOUND - whether the libkonitification-1 library was found
+#  LIBKNOTIFICATIONITEM-1_LIBRARIES - the libknotification-1 library
+#  LIBKNOTIFICATIONITEM-1_INCLUDE_DIR - the include path of the libknotification-1 \
library +
+
+
+find_library (LIBKNOTIFICATIONITEM-1_LIBRARY
+  NAMES
+  knotificationitem-1
+  HINTS
+  ${LIB_INSTALL_DIR}
+  ${KDE4_LIB_DIR}
+)
+
+set(LIBKNOTIFICATIONITEM-1_LIBRARIES  ${LIBKNOTIFICATIONITEM-1_LIBRARY})
+
+find_path (LIBKNOTIFICATIONITEM-1_INCLUDE_DIR
+  NAMES
+  knotificationitem.h
+  PATH_SUFFIXES
+  knotificationitem-1
+  HINTS
+  ${INCLUDE_INSTALL_DIR}
+  ${KDE4_INCLUDE_DIR}
+)
+
+
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LibKNotificationItem-1  DEFAULT_MSG  \
LIBKNOTIFICATIONITEM-1_LIBRARY LIBKNOTIFICATIONITEM-1_INCLUDE_DIR) +
+mark_as_advanced(LIBKNOTIFICATIONITEM-1_INCLUDE_DIR LIBKNOTIFICATIONITEM-1_LIBRARY)

Property changes on: workspace/cmake/modules/FindLibKNotificationItem-1.cmake
___________________________________________________________________
Name: svn:eol-style
   + native

Index: workspace/kcontrol/randr/CMakeLists.txt
===================================================================
--- workspace/kcontrol/randr/CMakeLists.txt	(revision 966038)
+++ workspace/kcontrol/randr/CMakeLists.txt	(working copy)
@@ -1,10 +1,11 @@
-include_directories( ${X11_Xrandr_INCLUDE_PATH}  )
 
 configure_file (config-randr.h.cmake
                 ${CMAKE_CURRENT_BINARY_DIR}/config-randr.h )
 
 find_package(LibKNotificationItem-1 REQUIRED)
 
+include_directories( ${X11_Xrandr_INCLUDE_PATH}  
+                     ${LIBKNOTIFICATIONITEM-1_INCLUDE_DIR} )
 
 ########### next target ###############
 
@@ -52,7 +53,7 @@
 
 kde4_add_executable(krandrtray ${krandrtray_SRCS})
 
-target_link_libraries(krandrtray knotificationitem-1  ${KDE4_KUTILS_LIBS} \
${X11_Xrandr_LIB} ${X11_LIBRARIES}) +target_link_libraries(krandrtray \
${LIBKNOTIFICATIONITEM-1_LIBRARIES}  ${KDE4_KUTILS_LIBS} ${X11_Xrandr_LIB} \
${X11_LIBRARIES})  
 install(TARGETS krandrtray ${INSTALL_TARGETS_DEFAULT_ARGS})
 



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic