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

List:       kde-commits
Subject:    Re: extragear/graphics/kphotoalbum
From:       "Jesper K. Pedersen" <blackie () blackie ! dk>
Date:       2009-03-02 20:35:26
Message-ID: 200903022135.26588.blackie () blackie ! dk
[Download RAW message or body]

OK, thanks for your clarification. Please go ahead with your project.

On Monday 02 March 2009, Henner Zeller wrote:
| Hi,
|
| On Mon, Mar 2, 2009 at 12:25 AM, Jesper K. Pedersen <blackie@blackie.dk> 
wrote:
| > Why would you want that? Doesn't that make KPA even less parallel in
| > compiling or am I misunderstanding something?
|
| Several reasons;
| First, I don't think that it makes the compiling less parallel. You
| still can compile all sources in parallel, there is no difference
| there. The only difference is, that it links intermediate libraries
| that can make it potentially a bit slower if you compile from scratch
| - that should be unnoticable. In fact it will probably turn out to be
| faster if you do incremental compiles.
|
| The reason why I started this, and did some other dependency
| untangling, was that I yesterday wanted to do some little performance
| testing. For this I hoped to create a little standalone binary that
| links in just the DB and XMLDB.
|
|  Turns out that this is not possible because of the massive
| interdependencies. So for instance the abstract DB code depends on the
| MainWindow (!), which then in turn depends on everytyhing else. But
| even if that dependency is cut, there are still hard dependencies to
| Browser and Viewer for instance which then in turn pull in everything.
| One reason for this interdpendence is of course that all sources used
| to be compiled together and only linked into one binary - so nobody
| notices.
| For performance test binaries or just unit-tests, these dependencies
| are harmful. Probably a big hindrance in developing the SQLDB because
| we can only do in-system manual testing, hoping not to miss something.
|
| Some dependencies I could cut and least the Utilities-library I could
| extract ;) Having things in different libraries helps thinking of not
| adding more to the dependency entanglement.
|
| I do believe, that we should create a CMakeLists in each subdirectory
| to further detangle this in the long term; I can do some compiling
| performance tests if you want: it might be a bit slower if you compile
| everything because gnumake unfortunately does not use all opportunity
| to parellelize, but having the ability to focus on a particular piece
| of code and do incremental compiles will be a win in the end in
| turnaround times and not lost engineering hours.
|
| As for my performance test: I ended up compiling _all_sources together
| with a different main but still couldn't make it to work because of
| implicitly created singletons in GUI code somewhere - code that isn't
| called of course in that test program. So after 6 hours of hope to
| detangle dependencies I ended up adding test functions to the menu in
| my local version :/
|
| -h
|
| > On Monday 02 March 2009, Henner Zeller wrote:
| > | SVN commit 933977 by hzeller:
| > |
| > | Pull out Utilities as separate library.
| > |
| > |
| > |  M  +16 -12    CMakeLists.txt
| > |
| > |
| > | --- trunk/extragear/graphics/kphotoalbum/CMakeLists.txt #933976:933977
| > | @@ -72,15 +72,14 @@
| > |  set(libSettings_SRCS
| > | ${CMAKE_CURRENT_SOURCE_DIR}/Settings/SettingsData.cpp
| > | ${CMAKE_CURRENT_SOURCE_DIR}/Settings/SettingsDialog.cpp
| > | ${CMAKE_CURRENT_SOURCE_DIR}/Settings/ViewerSizeConfig.cpp
| > | ${CMAKE_CURRENT_SOURCE_DIR}/Settings/CategoryItem.cpp)
| > |
| > |  set(libxmldb_SRCS
| > | -     ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/Database.cpp
| > | -     ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/XMLCategoryCollection.cpp
| > | -     ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/XMLCategory.cpp
| > | -     ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/XMLImageDateCollection.cpp
| > | +       ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/Database.cpp
| > | +     ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/XMLCategoryCollection.cpp
| > | +     ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/XMLCategory.cpp
| > | +     ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/XMLImageDateCollection.cpp
| > |       ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/NumberedBackup.cpp
| > | -     ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/FileReader.cpp
| > | +     ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/FileReader.cpp
| > |       ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/FileWriter.cpp
| > | -     ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/IdNameMapper.cpp
| > | -)
| > | +     ${CMAKE_CURRENT_SOURCE_DIR}/XMLDB/IdNameMapper.cpp)
| > |
| > |  set(libThumbnailView_SRCS
| > |          ${CMAKE_CURRENT_SOURCE_DIR}/ThumbnailView/ThumbnailRequest.cpp
| > | @@ -240,10 +239,19 @@
| > |
| > |  ########### next target ###############
| > |
| > | -set(kphotoalbum_SRCS main.cpp ${libdatebar_SRCS} ${libSettings_SRCS}
| > | ${libsurvey_SRCS} ${libxmldb_SRCS} ${libThumbnailView_SRCS}
| > | ${libPlugins_SRCS} ${libViewer_SRCS} ${libCategoryListView_SRCS}
| > | ${libHTMLGenerator_SRCS} ${libUtilities_SRCS} ${libMainWindow_SRCS}
| > | ${libImageManager_SRCS} ${libDB_SRCS} ${libImportExport_SRCS}
| > | ${libAnnotationDialog_SRCS} ${EXIV2_SRCS} ${libBrowser_SRCS})
| > | +set(kphotoalbum_SRCS main.cpp ${libdatebar_SRCS} ${libSettings_SRCS}
| > | ${libsurvey_SRCS} ${libxmldb_SRCS} ${libThumbnailView_SRCS}
| > | ${libPlugins_SRCS} ${libViewer_SRCS} ${libCategoryListView_SRCS}
| > | ${libHTMLGenerator_SRCS} ${libMainWindow_SRCS} ${libImageManager_SRCS}
| > | ${libDB_SRCS} ${libImportExport_SRCS} ${libAnnotationDialog_SRCS}
| > | ${EXIV2_SRCS} ${libBrowser_SRCS})
| > |
| > |  kde4_add_executable(kphotoalbum ${kphotoalbum_SRCS})
| > |
| > | +kde4_add_library(Utilities STATIC ${libUtilities_SRCS})
| > | +
| > | +# Internal components
| > | +if(SQLDB_SUPPORT)
| > | +  target_link_libraries(kphotoalbum SQLDB)
| > | +endif(SQLDB_SUPPORT)
| > | +target_link_libraries(kphotoalbum Utilities)
| > | +
| > | +# External components
| > |  target_link_libraries(kphotoalbum  ${KDE4_KDE3SUPPORT_LIBS}
| > | ${KDE4_KIO_LIBS} ${JPEG_LIBRARY} kmediaplayer ${KDE4_PHONON_LIBS})
| > |
| > |  if(KIPI_FOUND)
| > | @@ -268,10 +276,6 @@
| > |      INCLUDE_DIRECTORIES(${NEPOMUK_INCLUDE_DIR})
| > |  endif(NEPOMUK_FOUND)
| > |
| > | -if(SQLDB_SUPPORT)
| > | -  target_link_libraries(kphotoalbum SQLDB)
| > | -endif(SQLDB_SUPPORT)
| > | -
| > |  install(TARGETS kphotoalbum ${INSTALL_TARGETS_DEFAULT_ARGS})
| >
| > --
| > Having trouble finding a given image in your collection containing
| > thousands of images?
| >
| > http://www.kphotoalbum.org might be the answer.


-- 
Having trouble finding a given image in your collection containing
thousands of images?

http://www.kphotoalbum.org might be the answer.


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

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