﻿notes on porting NICE to WIN using CMAKE:
-------
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


-----------------------------------------------------------------------
macro add_all_subdirs()

set(_all_headers)
set(_all_sources)
set(_all_linkings)

#ge
foreach dir in subdirlist
{
  add_directories( dir )
  #add header, sources, linkings from subdir to _all_* variables

}  



endmacro

set(NICE_CURR_DIR "${CMAKE_CURRENT_SOURCE_DIR}")


#### geile funktionen der OpenCV:
---aus OpenCVUtils.cmake:
macro(ocv_convert_to_full_paths VAR) # convert list of paths to full paths
macro(ocv_get_real_path VAR PATHSTR) # get absolute path with symlinks resolved
macro(ocv_list_add_suffix LST SUFFIX) # add suffix to each item in the list
macro(ocv_list_add_prefix LST PREFIX) # add prefix to each item in the list
macro(ocv_list_unique __lst)# stable & safe duplicates removal macro



OpenCVModule.cmake
ocv_glob_modules(pathcurrdir) -->in modules
  in jedem untermodel, eg core
  ocv_add_module(modname)
    sets variable "the_module" => set(the_module opencv_${name})
    extra abhängikeitens über zweites argument in der funktion, eg. ocv_add_module(core ${ZLIB_Lbla})
  ocv_module_include_directories() ( auch mit zusatzincludes dann übergeben ${ZLib_include_Dir})
  ocv_glob_module_sources() holt cpps und hpp h aus unterordnern -- sources bilden
  ocv_create_module (binary build the module ->add_library,  set_target etc
  

#######
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
NICE_BUILD_TESTS	
NICE_BUILD_PROGS
