Browse Source

added ui options (ccmake)

Johannes Ruehle 12 years ago
parent
commit
1c1593ff3f
3 changed files with 119 additions and 65 deletions
  1. 91 63
      CMakeLists.txt
  2. 26 0
      cmake/FindMATIO.cmake
  3. 2 2
      cmake/NiceModules.cmake

+ 91 - 63
CMakeLists.txt

@@ -5,7 +5,7 @@ include(CheckSymbolExists)
 
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
 
-#include(cmake/OpenCVUtils.cmake REQUIRED)
+include(cmake/OpenCVUtils.cmake REQUIRED) #for OCV_OPTION (gui)
 #include(cmake/OpenCVDetectCXXCompiler.cmake REQUIRED)
 include(cmake/NiceModules.cmake REQUIRED)
 #include(cmake/OpenCVCompilerOptions.cmake REQUIRED)
@@ -14,7 +14,10 @@ include(cmake/NiceModules.cmake REQUIRED)
 set(NICELibrary_VERSION_MAJOR 1)
 set(NICELibrary_VERSION_MINOR 2)
 
-set(CMAKE_VERBOSE_MAKEFILE off) 
+OCV_OPTION(CMAKE_VERBOSE "Verbose mode" OFF )
+if(CMAKE_VERBOSE)
+  set(CMAKE_VERBOSE_MAKEFILE 1)
+endif()
 
 set(CMAKE_INSTALL_PREFIX ${PROJECT_BINARY_DIR})
 
@@ -22,14 +25,17 @@ set(NICE_BUILD_LIBS_STATIC_SHARED STATIC)
 
 set(NICE_BUILD_PROGS 1)
 
-set(Boost_USE_STATIC_LIBS ON)
-FIND_PACKAGE(Boost COMPONENTS date_time filesystem)
-IF (Boost_FOUND)
-	message(STATUS "boost-incl-dir: ${Boost_INCLUDE_DIRS}")
-    INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
-    ADD_DEFINITIONS( "-DNICE_BOOST_FOUND" )
-	ADD_DEFINITIONS( "-DNICE_USELIB_BOOST" )
-ENDIF()
+OCV_OPTION(WITH_BOOST "Build with Boost support" OFF)
+if(WITH_BOOST)
+  set(Boost_USE_STATIC_LIBS ON)
+  FIND_PACKAGE(Boost COMPONENTS date_time filesystem)
+  IF (Boost_FOUND)
+	  message(STATUS "boost-incl-dir: ${Boost_INCLUDE_DIRS}")
+      INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
+      ADD_DEFINITIONS( "-DNICE_BOOST_FOUND" )
+	  ADD_DEFINITIONS( "-DNICE_USELIB_BOOST" )
+  ENDIF()
+endif()
 
 FIND_PACKAGE(CppUnit)
 IF (CPPUNIT_FOUND)
@@ -43,11 +49,14 @@ else()
   message(STATUS "CppUnit not found")
 ENDIF()
 
-find_package(OpenMP)
-if (OPENMP_FOUND)
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
-    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
-    ADD_DEFINITIONS( "-DNICE_USELIB_OPENMP")
+OCV_OPTION(WITH_OPENMP "Build with OpenMP support" ON)
+if(WITH_OPENMP)
+  find_package(OpenMP)
+  if (OPENMP_FOUND)
+      set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
+      set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+      ADD_DEFINITIONS( "-DNICE_USELIB_OPENMP")
+  endif()
 endif()
 
 #find_package(PNG)
@@ -56,43 +65,55 @@ if (PNG_FOUND)
   ADD_DEFINITIONS( "-DNICE_USELIB_PNG")
 endif()
 
-find_package(HDF5)
-if(HDF5_FOUND)
-  message(STATUS "HDF5-dir: ${HDF5_INCLUDE_DIR}")
-endif()
-find_package(MATIO)
-if(MATIO_FOUND)
-  message(STATUS "Matio-dir: ${MATIO_INCLUDE_DIR}")
-  ADD_DEFINITIONS( "-DNICE_USELIB_MATIO")
-  INCLUDE_DIRECTORIES(${MATIO_INCLUDE_DIR})
+OCV_OPTION(WITH_MATIO "Build with Matio and HDF5 support" OFF)
+if(WITH_MATIO)
+  find_package(HDF5)
+  if(HDF5_FOUND)
+    message(STATUS "HDF5-dir: ${HDF5_INCLUDE_DIR}")
+  endif()
+  find_package(MATIO)
+  if(MATIO_FOUND)
+    message(STATUS "Matio-dir: ${MATIO_INCLUDE_DIRS}")
+    ADD_DEFINITIONS( "-DNICE_USELIB_MATIO")
+    INCLUDE_DIRECTORIES(${MATIO_INCLUDE_DIRS})
+  endif()
 endif()
 
-
-find_package(ImageMagick COMPONENTS Magick++)
-if(ImageMagick_FOUND)
-	message(STATUS "imagemagick found: ${ImageMagick_LIBRARIES}")
-	else()
-	message(STATUS "imagemagick not found")
+OCV_OPTION(WITH_IMAGEMAGICK "Build with ImageMagick++" OFF)
+if(WITH_IMAGEMAGICK)
+  find_package(ImageMagick COMPONENTS Magick++)
+  if(ImageMagick_FOUND)
+	  message(STATUS "imagemagick found: ${ImageMagick_LIBRARIES}")
+	  else()
+	  message(STATUS "imagemagick not found")
+  endif()
 endif()
 
-FIND_PACKAGE(Qt4)# COMPONENTS Qt3Support QtOpenGl)
-SET(QT_USE_QTOPENGL TRUE)
-SET(QT_USE_QTXML TRUE)
-SET(QT_USE_QT3SUPPORT TRUE)
-if(QT_FOUND)
-#  ADD_DEFINITIONS("-DQT3_SUPPORT")
-  message(STATUS "QTfound ${QT_QT3SUPPORT_INCLUDE_DIR}")
-  set(CMAKE_AUTOMOC TRUE) #see doc: http://blogs.kde.org/2011/11/01/cool-new-stuff-cmake-286-automoc
-  INCLUDE(${QT_USE_FILE})
-  #INCLUDE(${QT_QT3SUPPORT_INCLUDE_DIR})
-  ADD_DEFINITIONS(${QT_DEFINITIONS})
-  ADD_DEFINITIONS( "-DNICE_USELIB_QT")
+OCV_OPTION(WITH_QT "Build with Qt" ON)
+if(WITH_QT)
+  FIND_PACKAGE(Qt4)# COMPONENTS Qt3Support QtOpenGl)
+  SET(QT_USE_QTOPENGL TRUE)
+  SET(QT_USE_QTXML TRUE)
+  SET(QT_USE_QT3SUPPORT TRUE)
+  if(QT_FOUND)
+  #  ADD_DEFINITIONS("-DQT3_SUPPORT")
+    message(STATUS "QTfound ${QT_QT3SUPPORT_INCLUDE_DIR}")
+    set(CMAKE_AUTOMOC TRUE) #see doc: http://blogs.kde.org/2011/11/01/cool-new-stuff-cmake-286-automoc
+    INCLUDE(${QT_USE_FILE})
+    #INCLUDE(${QT_QT3SUPPORT_INCLUDE_DIR})
+    ADD_DEFINITIONS(${QT_DEFINITIONS})
+    ADD_DEFINITIONS( "-DNICE_USELIB_QT")
+  endif()
 endif()
-find_package(OpenGL)
-if(OPENGL_FOUND)
-  message(STATUS "OPENGL found")
-  include_directories( ${OPENGL_INCLUDE_DIRS} )
-  ADD_DEFINITIONS( "-DNICE_USELIB_OPENGL")
+
+OCV_OPTION(WITH_OPENGL "Build with OpenGL" ON)
+if(WITH_OPENGL)
+  find_package(OpenGL)
+  if(OPENGL_FOUND)
+    message(STATUS "OPENGL found")
+    include_directories( ${OPENGL_INCLUDE_DIRS} )
+    ADD_DEFINITIONS( "-DNICE_USELIB_OPENGL")
+  endif()
 endif()
 
 if(WIN32)
@@ -133,25 +154,21 @@ if(MSVC)
   ADD_DEFINITIONS("-DNOMINMAX")
 endif()
 
-set(BUILD_CORE_VECTOR ON)
-set(BUILD_CORE_BASICS ON)
-#set(BUILD_CORE_ALGEBRA ON)
-#set(BUILD_CORE_OPTIMIZATION ON)
-#set(BUILD_CORE_IMAGE ON)
-#set(BUILD_CORE_MATLABACCESS ON)
-if(CPPUNIT_FOUND)
-	set(BUILD_CORE_TESTS ON)
-else()
-	set(BUILD_CORE_TESTS OFF)
-endif()
-	
-set(BUILD_CORE_PROGS ON)
-
-if( BUILD_CORE_TESTS)
+OCV_OPTION(BUILD_UNITTESTS "Build all unit tests" OFF IF CPPUNIT_FOUND)
+#if(CPPUNIT_FOUND)
+#	set(BUILD_UNITTESTS ON)
+#else()
+#	set(BUILD_UNITTESTS OFF)
+#endif()
+if( BUILD_UNITTESTS)
 	enable_testing()
 	include(CTest)
 endif()
 
+OCV_OPTION(BUILD_PROGRAMS "Build all programs" ON)
+
+
+
 set(OPENCV_LIB_INSTALL_PATH lib)
 
 INCLUDE_DIRECTORIES(".")
@@ -162,12 +179,23 @@ set(the_module "nice")
 
 set(NICE_CURR_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
 SUBDIRLIST(__listSubDirs "${NICE_CURR_DIR}")
+set(__listSubLibs "")
 foreach(_curSubdir ${__listSubDirs})
 	nice_get_real_path(__modpath "${NICE_CURR_DIR}/${_curSubdir}/")
 	if(EXISTS "${__modpath}/CMakeLists.txt")
-		ADD_SUBDIRECTORY(${__modpath})
+		#ADD_SUBDIRECTORY(${__modpath})
+	    LIST(APPEND __listSubLibs ${_curSubdir})
+	  OCV_OPTION(BUILD_LIB_${_curSubdir} "Build library ${_curSubdir}" ON)
 	endif()
 endforeach()
+
+foreach(_curSublib ${__listSubLibs})
+  if(BUILD_LIB_${_curSublib})
+    nice_get_real_path(__modpath "${NICE_CURR_DIR}/${_curSublib}/")
+    ADD_SUBDIRECTORY(${__modpath})
+  endif()
+endforeach()
+
 #ADD_SUBDIRECTORY(core)
 #ADD_SUBDIRECTORY(vislearning)
   

+ 26 - 0
cmake/FindMATIO.cmake

@@ -0,0 +1,26 @@
+# Find the MATIO headers and library.
+#
+#  MATIO_INCLUDE_DIRS - where to find matio.h, etc.
+#  MATIO_LIBRARIES    - List of libraries.
+#  MATIO_FOUND        - True if matio found.
+
+# Look for the header file.
+FIND_PATH(MATIO_INCLUDE_DIR NAMES matio.h)
+MARK_AS_ADVANCED(MATIO_INCLUDE_DIR)
+
+# Look for the library.
+FIND_LIBRARY(MATIO_LIBRARY NAMES matio)
+MARK_AS_ADVANCED(MATIO_LIBRARY)
+
+# handle the QUIETLY and REQUIRED arguments and set MATIO_FOUND to TRUE if 
+# all listed variables are TRUE
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(MATIO DEFAULT_MSG MATIO_LIBRARY MATIO_INCLUDE_DIR)
+
+IF(MATIO_FOUND)
+  SET(MATIO_LIBRARIES ${MATIO_LIBRARY} ${HDF5_LIBRARIES})
+  SET(MATIO_INCLUDE_DIRS ${MATIO_INCLUDE_DIR} ${HDF5_INCLUDE_DIR})
+ELSE(MATIO_FOUND)
+  SET(MATIO_LIBRARIES)
+  SET(MATIO_INCLUDE_DIRS)
+ENDIF(MATIO_FOUND)

+ 2 - 2
cmake/NiceModules.cmake

@@ -32,7 +32,7 @@ endmacro()
 #and subvariables ${nice_${the_library}_PROGFILES_SRC}
 macro(nice_add_progs)
 
-  if(BUILD_CORE_PROGS)
+  if(BUILD_PROGRAMS)
     message(STATUS "building progs:")
     
     foreach(__progcpp ${nice_${the_library}_PROGFILES_SRC})
@@ -57,7 +57,7 @@ endmacro()
 #and subvariables ${nice_${the_library}_TESTFILES_SRC}
 macro(nice_add_unittests)
 
-  if(BUILD_CORE_TESTS)
+  if(BUILD_UNITTESTS)
     INCLUDE_DIRECTORIES(${CPPUNIT_INCLUDE_DIR})
     message(STATUS "building tests:")
     foreach(__testcpp ${nice_${the_library}_TESTFILES_SRC})