[Digikam-devel] Re: extragear/graphics/digikam

Andi Clemens andi.clemens at gmx.net
Mon Nov 8 12:10:50 GMT 2010


I'd also like to use one big INCLUDE_DIRECTORIES in the main CMakeLists.txt 
file.
This way we don't have to add the include dirs over and over again in all the 
subprojects like it is now.
If something changes in the source tree, we need to change at least 12 
CMakeLists.txt files, having one section in the main file will prevent this.
No need to redefine this over and over again.

Andi Clemens
-----------------
www.digikam.org

On Monday 08 November 2010 12:57:54 Gilles Caulier wrote:
> 2010/11/8 Andi Clemens <andi.clemens at gmx.net>:
> > those libs will not be installed at all, they are just used for compiling
> > the digiKam, test suite and digiKamthemedesigner targets.
> > But it will prevent recompiling the object files over and over again.
> 
> Ah fine. I remember a similar way used with KDE3/Qt3 version before
> Cmake port. Fine for me.
> 
> Another tool which need this way is dng converter for example
> 
> > For example try compiling the themedesigner:
> > it will compile the queuemanager again, all dimg filter, advanced rename,
> > etc... and I don't even know why there are such weird dependencies at
> > all, why does the themedesigner need BQM?
> 
> I remember some broken compilation without. But it's can be different now.
> 
> > By putting all the little subprobjects into static libs, we can avoid
> > recompilation. Again, these static libs are used only for building, not
> > for later usage at runtime. So there are no changes for packagers at
> > all.
> 
> Lets go well...
> 
> Gilles Caulier
> 
> > Andi Clemens
> > -----------------
> > www.digikam.org
> > 
> > On Monday 08 November 2010 12:39:56 Gilles Caulier wrote:
> >> This want mean that more static libs files will be installed on the
> >> system, as libdigikam.so ?
> >> 
> >> Other project work like this, as Amarok ?
> >> 
> >> Perhaps packagers can comment this.
> >> 
> >> What's about static lib revision ID ?
> >> 
> >> Gilles
> >> 
> >> 2010/11/8 Andi Clemens <andi.clemens at gmx.net>:
> >> > I forgot to commit a file, sorry!
> >> > 
> >> > Right now I am creating some static libs for queuemanager, dimg
> >> > filters etc in a local branch.
> >> > 
> >> > I guess this really helps understanding the build process a little bit
> >> > more and also reduces compile time. What do you think?
> >> > 
> >> > Andi Clemens
> >> > -----------------
> >> > www.digikam.org
> >> > 
> >> > On Monday 08 November 2010 11:38:54 Gilles Caulier wrote:
> >> >> It doen't work here, after a fresh checkout :
> >> >> 
> >> >> [ 45%] Building CXX object
> >> >> digikam/digikam/CMakeFiles/digikam.dir/__/libs/dialogs/migrationdlg.o
> >> >> [ 45%] Building CXX object
> >> >> digikam/digikam/CMakeFiles/digikam.dir/main.o
> >> >> [ 45%] Building CXX object
> >> >> digikam/digikam/CMakeFiles/digikam.dir/digikamadaptor.o
> >> >> Linking CXX executable digikam
> >> >> /usr/bin/ld: cannot find -ladvancedrename
> >> >> collect2: ld returned 1 exit status
> >> >> make[2]: *** [digikam/digikam/digikam] Error 1
> >> >> make[1]: *** [digikam/digikam/CMakeFiles/digikam.dir/all] Error 2
> >> >> make: *** [all] Error 2
> >> >> 
> >> >> Gilles Caulier
> >> >> 
> >> >> 2010/11/8 Andi Clemens <andi.clemens at gmx.net>:
> >> >> > SVN commit 1194106 by aclemens:
> >> >> > 
> >> >> > Create a static lib for advancedrename. This prevents recompiling
> >> >> > of the object files when building the test suite or the
> >> >> > themedesigner. Right now when the themedesigner target is build,
> >> >> > nearly all objects from the digiKam target are recompiled again,
> >> >> > which is a waste of time. We should create static libs for all the
> >> >> > libXXX_SRCS variables in the main CMakeLists.txt file. I also
> >> >> > think we should remove those libXXX_SRCS variables from there
> >> >> > completely, they have nothing to do in there and make the code
> >> >> > hard to understand.
> >> >> > 
> >> >> > Right now I only created a static lib for advancedrename, but in
> >> >> > the future we should do this for all the other so called "libs",
> >> >> > too.
> >> >> > 
> >> >> > CCMAIL: digikam-devel at kde.org
> >> >> > 
> >> >> >  M  +0 -41     CMakeLists.txt
> >> >> >  M  +1 -6      digikam/CMakeLists.txt
> >> >> >  M  +1 -1      tests/CMakeLists.txt
> >> >> >  M  +1 -1      themedesigner/CMakeLists.txt
> >> >> >  M  +1 -0      utilities/CMakeLists.txt
> >> >> > 
> >> >> > 
> >> >> > --- trunk/extragear/graphics/digikam/CMakeLists.txt
> >> >> > #1194105:1194106 @@ -1284,47 +1284,6 @@
> >> >> > 
> >> >> > ${CMAKE_CURRENT_SOURCE_DIR}/utilities/timeline/timelinewidget.cpp )
> >> >> > 
> >> >> > -    SET(libadvancedrename_SRCS
> >> >> > -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/advancedrenam
> >> >> > edi al og.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/advancedrenam
> >> >> > ein pu t.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/advancedrenam
> >> >> > ema na ger.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/advancedrenam
> >> >> > ewi dg et.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/common/dynami
> >> >> > cla yo ut.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/common/highli
> >> >> > ght er .cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/common/modifi
> >> >> > er. cp p -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/common/option
> >> >> > .cp p -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/common/parsea
> >> >> > ble .c pp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/common/parsea
> >> >> > ble di alog.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/common/parser
> >> >> > .cp p -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/common/parser
> >> >> > esu lt s.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/common/rename
> >> >> > thr ea d.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/common/token.
> >> >> > cpp -
> >> >> > 
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/common/toolti
> >> >> > pcr ea tor.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/common/toolti
> >> >> > pdi al og.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/defaul
> >> >> > tre na meparser.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/import
> >> >> > ren am eparser.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/modifi
> >> >> > ers /c asemodifier.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/modifi
> >> >> > ers /d efaultvaluemodifier.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/modifi
> >> >> > ers /r angemodifier.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/modifi
> >> >> > ers /r emovedoublesmodifier.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/modifi
> >> >> > ers /r eplacemodifier.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/modifi
> >> >> > ers /t rimmedmodifier.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/modifi
> >> >> > ers /u niquemodifier.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/option
> >> >> > s/c am eranameoption.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/option
> >> >> > s/d at abase/databaseoption.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/option
> >> >> > s/d at abase/dbheaderlistitem.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/option
> >> >> > s/d at abase/dbkeyscollection.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/option
> >> >> > s/d at abase/dbkeyselector.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/option
> >> >> > s/d at abase/keys/commonkeys.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/option
> >> >> > s/d at abase/keys/metadatakeys.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/option
> >> >> > s/d at abase/keys/positionkeys.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/option
> >> >> > s/d at eoption.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/option
> >> >> > s/d ir ectorynameoption.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/option
> >> >> > s/f il epropertiesoption.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/option
> >> >> > s/m et adataoption.cpp -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/utilities/advancedrename/parser/option
> >> >> > s/s eq uencenumberoption.cpp -       )
> >> >> > -
> >> >> >     SET(libdigikamgui_SRCS
> >> >> >         ${CMAKE_CURRENT_SOURCE_DIR}/digikam/addtagslineedit.cpp
> >> >> >         ${CMAKE_CURRENT_SOURCE_DIR}/digikam/album.cpp
> >> >> > --- trunk/extragear/graphics/digikam/digikam/CMakeLists.txt
> >> >> > #1194105:1194106 @@ -157,11 +157,6 @@
> >> >> >    )
> >> >> > 
> >> >> >  KDE4_ADD_UI_FILES(digikamcore_LIB_SRCS
> >> >> > -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/mod
> >> >> > ifi er s/fillmodifierdialogwidget.ui -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/mod
> >> >> > ifi er s/replacemodifierdialogwidget.ui -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/mod
> >> >> > ifi er s/rangemodifierdialogwidget.ui -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/opt
> >> >> > ion s/ dateoptiondialogwidget.ui -
> >> >> >  ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/advancedrename/parser/opt
> >> >> > ion s/ sequencenumberoptiondialogwidget.ui
> >> >> > ${CMAKE_CURRENT_SOURCE_DIR}/../utilities/imageeditor/printiface/pri
> >> >> > nto pt ionspage.ui )
> >> >> > 
> >> >> > @@ -324,7 +319,6 @@
> >> >> >                  ${libdigikamgui_SRCS}
> >> >> >                  ${libfirstrun_SRCS}
> >> >> >                  ${libtemplate_SRCS}
> >> >> > -                 ${libadvancedrename_SRCS}
> >> >> >                  ${libdatabaseui_SRCS}
> >> >> > 
> >> >> >                  main.cpp
> >> >> > @@ -353,6 +347,7 @@
> >> >> >                       ${GPHOTO2_LIBRARIES}
> >> >> >                       digikamcore
> >> >> >                       digikamdatabase
> >> >> > +                      advancedrename
> >> >> >                      )
> >> >> > 
> >> >> >  IF(KDEPIMLIBS_FOUND)
> >> >> > --- trunk/extragear/graphics/digikam/tests/CMakeLists.txt
> >> >> > #1194105:1194106 @@ -49,7 +49,6 @@
> >> >> > 
> >> >> >  SET(advancedrenametest_SRCS
> >> >> >     advancedrenametest.cpp
> >> >> > -    ${libadvancedrename_SRCS}
> >> >> >  )
> >> >> >  KDE4_ADD_UNIT_TEST(advancedrenametest ${advancedrenametest_SRCS})
> >> >> >  TARGET_LINK_LIBRARIES(advancedrenametest
> >> >> > @@ -60,6 +59,7 @@
> >> >> >                       ${QT_QTTEST_LIBRARY}
> >> >> >                       digikamdatabase
> >> >> >                       digikamcore
> >> >> > +                      advancedrename
> >> >> >                       )
> >> >> > 
> >> >> >  #-----------------------------------------------------------------
> >> >> > --- --- - ---
> >> >> > trunk/extragear/graphics/digikam/themedesigner/CMakeLists.txt
> >> >> > #1194105:1194106 @@ -101,7 +101,6 @@
> >> >> >     ${libdigikamgui_SRCS}
> >> >> >     ${libqueuemanager_SRCS}
> >> >> >     ${libalbummodels_SRCS}
> >> >> > -    ${libadvancedrename_SRCS}
> >> >> >     ${libtemplate_SRCS}
> >> >> >     ${libdatabaseui_SRCS}
> >> >> > 
> >> >> > @@ -120,6 +119,7 @@
> >> >> >  TARGET_LINK_LIBRARIES(digikamthemedesigner
> >> >> >                       digikamcore
> >> >> >                       digikamdatabase
> >> >> > +                      advancedrename
> >> >> >                       ${KDE4_KPARTS_LIBS}
> >> >> >                       ${KDE4_PHONON_LIBS}
> >> >> >                       ${KDE4_KHTML_LIBS}
> >> >> > --- trunk/extragear/graphics/digikam/utilities/CMakeLists.txt
> >> >> > #1194105:1194106 @@ -4,3 +4,4 @@
> >> >> >  ADD_SUBDIRECTORY(lighttable)
> >> >> >  ADD_SUBDIRECTORY(cameragui)
> >> >> >  ADD_SUBDIRECTORY(queuemanager)
> >> >> > +ADD_SUBDIRECTORY(advancedrename)
> >> >> > _______________________________________________
> >> >> > Digikam-devel mailing list
> >> >> > Digikam-devel at kde.org
> >> >> > https://mail.kde.org/mailman/listinfo/digikam-devel
> >> >> 
> >> >> _______________________________________________
> >> >> Digikam-devel mailing list
> >> >> Digikam-devel at kde.org
> >> >> https://mail.kde.org/mailman/listinfo/digikam-devel
> >> > 
> >> > _______________________________________________
> >> > Digikam-devel mailing list
> >> > Digikam-devel at kde.org
> >> > https://mail.kde.org/mailman/listinfo/digikam-devel
> >> 
> >> _______________________________________________
> >> Digikam-devel mailing list
> >> Digikam-devel at kde.org
> >> https://mail.kde.org/mailman/listinfo/digikam-devel
> > 
> > _______________________________________________
> > Digikam-devel mailing list
> > Digikam-devel at kde.org
> > https://mail.kde.org/mailman/listinfo/digikam-devel
> 
> _______________________________________________
> Digikam-devel mailing list
> Digikam-devel at kde.org
> https://mail.kde.org/mailman/listinfo/digikam-devel



More information about the Digikam-devel mailing list