General CMake Notes: ========================================= 1. Indexing source code files: Never use GLOB_RECURSE. It's evil. E.g. if you add or remove source files, CMake has no way of knowing that it should be re-run. Just list all the files in your CMakeLists.txt (or, if you think the list is excessively long, create a file called e.g. files.cmake, put the list in there and INCLUDE it in the CMakeLists.txt file. 2. Never do in-source builds. CMake creates many, many files, and you don't want to delete them all individually for a clean build. And there's no way to implement a safe "make clean" (e.g. your build system might be running a custom utility which generates files CMake knows nothing about). Notes on NICE to CMAKE transformation ======================================== Todos ----- - libmagic++ scheint sehr aufwendig in der benutzung unter Windows: How to build it with vs, anleitung:http://www.graphicsmagick.org/INSTALL-windows.html#windows-xp-vista-7-visual-c-6-0-through-9-0-compilation unter windows doch einfacher: http://www.imagemagick.org/script/binary-releases.php#windows (sind nur die binaries, keine includes und libs) http://www.imagemagick.org/Magick++/ sources runterladen (getan. TODO: entpacken c/libraries/ImageMagick-6.8.3-6-windows.zip) braucht man überhaupt libmagick? warum nicht lieber opencv zum bilderlesen benutzen: momentan ist das lesen und schreiben eh mit throw exception not implemented verbunden: void ImageFile::readerMagick ( GrayColorImageCommonImplementationT
*image )
{
fthrow ( ImageException, "Format not yet implemented (only available for standard images)." );
}
weil magick momentan der default imagereader ist: void ImageFile::reader(...), wenn keine libPNG und LibJpeg gegeben ist.
- make compilable without Qt
- make compileable without opengl
- regex lib nutzen von boost (->config.h)
- substitue FileMgt::DirectoryRecursive by platform independend code using boost::filesystem
- Implement ResouceStatistics for windows
- braucht man GLUT noch ? Alt??? enable build without glut atleast!!
- remove all warnings for function shadowing
- remove all warning unreachable code
- fixing all these includes of template definitons:
//#ifdef __GNUC__
#include "core/vector/RowMatrixT.tcc"
//#endif
tcc are not cpps, they need to be included into the header file otherwise template usage will result in linking errors
See, Inclusion model of Template classes: http://stackoverflow.com/questions/3705740/c-lnk2019-error-unresolved-external-symbol-template-classs-constructor-and
- porting core/basics/timer.h/cpp
highly unix dependend, better use 3rd party time functionality for now()
better use boost::timer ??
- stringtools highly os dependented
->recursive dir scan with "ls -r" syntax!!
use 3rd party lib like boost oder qt
use boost regex for regex syntax in stringtools::regex bla
NICE defs to care about
-----------------------
NICE_USELIB_CUDACHOLESKY
NICE_USELIB_IPP
NICE_USELIB_OPENMP
#ifdef NICE_USELIB_MATIO
NICE_USELIB_PNG
NICE_USELIB_JPG
NICE_USELIB_LIBMAGICK
#eigene definiton zum builden der sub-test-ordners
Notes Using Libraries:
======================
needed libraries windows:
------------------------
- freeglut (download from: http://freeglut.sourceforge.net/index.php#download)
adjust pathes GLUT_ROOT_PATH in root-CMakeLists.txt
CPPUNIT verwenden
---------------------
1) installation
1-a) linux
if not already in path then:
download source from http://sourceforge.net/projects/cppunit/files/cppunit/1.12.1/cppunit-1.12.1.tar.gz/download
unzip
create build_