Bug 178061

Summary: [PATCH] scancontroller missing dependecy to CacheLock (CMAKE)
Product: [Applications] digikam Reporter: simon
Component: Portability-CmakeAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: marcel.wiesweg
Priority: NOR    
Version: 0.10.0   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In: 0.10.0

Description simon 2008-12-18 14:07:27 UTC
Version:           Unbekannt (using 4.1.85 (KDE 4.1.85 (KDE 4.2 Beta2)), Gentoo)
Compiler:          x86_64-pc-linux-gnu-gcc
OS:                Linux (x86_64) release 2.6.26-tuxonice

hi,

current svn didn't build for me using a selfmade gentoo live ebuild, so i tried plain svn which also complained about  

scancontroller.cpp:(.text+0xab5): undefined reference to `Digikam::LoadingCache::CacheLock::CacheLock(Digikam::LoadingCache*)'      

i fiddled with it and at least it worked, i'm no cmake guy at all so please review!

Index: themedesigner/CMakeLists.txt
===================================================================
--- themedesigner/CMakeLists.txt	(Revision 898349)
+++ themedesigner/CMakeLists.txt	(Arbeitskopie)
@@ -94,6 +94,7 @@
     ${libcameragui_SRCS}
     ${libsetup_SRCS}
     ${libbatch_SRCS}
+    ${libthreadimageio_SRCS}
 
     main.cpp 
     mainwindow.cpp 
Index: digikam/CMakeLists.txt
===================================================================
--- digikam/CMakeLists.txt	(Revision 898349)
+++ digikam/CMakeLists.txt	(Arbeitskopie)
@@ -178,6 +178,7 @@
                      ${libfuzzysearch_SRCS}
                      ${libgpssearch_SRCS}
                      ${libtimeline_SRCS}
+                     ${libthreadimageio_SRCS}
 
                      album.cpp 
                      albumiconview.cpp
Comment 1 Marcel Wiesweg 2008-12-19 09:51:54 UTC
Can you try this patch instead. Maybe your compiler treats visibility of inner classes differently than mine. The threadimageio sources are already included in libdigikamcore, which digikam links.

diff --git a/libs/threadimageio/loadingcache.h b/libs/threadimageio/loadingcache.h
index 515623f..813fc7c 100644
--- a/libs/threadimageio/loadingcache.h
+++ b/libs/threadimageio/loadingcache.h
@@ -127,7 +127,7 @@ public:

     /// !! All methods of LoadingCache shall only be called when a CacheLock is held !!

-    class CacheLock
+    class DIGIKAM_EXPORT CacheLock
     {
     public:
Comment 2 simon 2008-12-21 12:40:49 UTC
thanks, this fixed it
Comment 3 Marcel Wiesweg 2008-12-21 16:21:33 UTC
SVN commit 899773 by mwiesweg:

Some compilers apparently treat inner classes visibility independent from
the outer class, so that we need to set the visibility flag for CacheLock as well.

CCBUG: 178061

 M  +1 -1      loadingcache.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=899773