Pārlūkot izejas kodu

added cmake support for cppunit for linux

Johannes Ruehle 12 gadi atpakaļ
vecāks
revīzija
f2af2a6398
4 mainītis faili ar 149 papildinājumiem un 75 dzēšanām
  1. 13 1
      CMakeLists.txt
  2. 47 0
      cmake/FindCppUnit.cmake
  3. 17 2
      core/CMakeLists.txt
  4. 72 72
      core/testfiles.cmake

+ 13 - 1
CMakeLists.txt

@@ -3,6 +3,8 @@ project (NICELibrary)
 
 include(CheckSymbolExists)
 
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
+
 #include(cmake/OpenCVUtils.cmake REQUIRED)
 #include(cmake/OpenCVDetectCXXCompiler.cmake REQUIRED)
 #include(cmake/NiceModules.cmake REQUIRED)
@@ -28,6 +30,16 @@ IF (Boost_FOUND)
     ADD_DEFINITIONS( "-DNICE_BOOST_FOUND" )
 ENDIF()
 
+FIND_PACKAGE(CppUnit)
+IF (CPPUNIT_FOUND)
+	message(STATUS "CppUnit-dir: ${CPPUNIT_INCLUDE_DIR}")
+    INCLUDE_DIRECTORIES(${CPPUNIT_INCLUDE_DIR})
+    ADD_DEFINITIONS( "-DNICE_USELIB_CPPUNIT" )
+else()
+  set(CPPUNIT_INCLUDE_DIR "/usr/include/") #can be found in  /usr/include/cppunit
+  ADD_DEFINITIONS( "-DNICE_USELIB_CPPUNIT" )
+  message(STATUS "CppUnit not found, but : ${CPPUNIT_INCLUDE_DIR}")
+ENDIF()
 
 find_package(OpenMP)
 if (OPENMP_FOUND)
@@ -81,7 +93,7 @@ set(BUILD_CORE_BASICS ON)
 #set(BUILD_CORE_OPTIMIZATION ON)
 #set(BUILD_CORE_IMAGE ON)
 #set(BUILD_CORE_MATLABACCESS ON)
-
+set(BUILD_CORE_TESTS ON)
 set(BUILD_CORE_PROGS ON)
 
 

+ 47 - 0
cmake/FindCppUnit.cmake

@@ -0,0 +1,47 @@
+#
+# Find the CppUnit includes and library
+#
+# This module defines
+# CPPUNIT_INCLUDE_DIR, where to find tiff.h, etc.
+# CPPUNIT_LIBRARIES, the libraries to link against to use CppUnit.
+# CPPUNIT_FOUND, If false, do not try to use CppUnit.
+
+# also defined, but not for general use are
+# CPPUNIT_LIBRARY, where to find the CppUnit library.
+# CPPUNIT_DEBUG_LIBRARY, where to find the CppUnit library in debug mode.
+
+FIND_PATH(CPPUNIT_INCLUDE_DIR cppunit/TestCase.h
+  /usr/local/include
+  /usr/include
+)
+
+# With Win32, important to have both
+IF(WIN32)
+  FIND_LIBRARY(CPPUNIT_LIBRARY cppunit
+               ${CPPUNIT_INCLUDE_DIR}/../lib
+               /usr/local/lib
+               /usr/lib)
+  FIND_LIBRARY(CPPUNIT_DEBUG_LIBRARY cppunitd
+               ${CPPUNIT_INCLUDE_DIR}/../lib
+               /usr/local/lib
+               /usr/lib)
+ELSE(WIN32)
+  # On unix system, debug and release have the same name
+  FIND_LIBRARY(CPPUNIT_LIBRARY cppunit
+               ${CPPUNIT_INCLUDE_DIR}/../lib
+               /usr/local/lib
+               /usr/lib)
+  FIND_LIBRARY(CPPUNIT_DEBUG_LIBRARY cppunit
+               ${CPPUNIT_INCLUDE_DIR}/../lib
+               /usr/local/lib
+               /usr/lib)
+ENDIF(WIN32)
+
+IF(CPPUNIT_INCLUDE_DIR)
+  IF(CPPUNIT_LIBRARY)
+    SET(CPPUNIT_FOUND "YES")
+    SET(CPPUNIT_LIBRARIES ${CPPUNIT_LIBRARY} ${CMAKE_DL_LIBS})
+    SET(CPPUNIT_DEBUG_LIBRARIES ${CPPUNIT_DEBUG_LIBRARY}
+${CMAKE_DL_LIBS})
+  ENDIF(CPPUNIT_LIBRARY)
+ENDIF(CPPUNIT_INCLUDE_DIR)

+ 17 - 2
core/CMakeLists.txt

@@ -1,6 +1,6 @@
 include( corefiles.cmake)
 include( progfiles.cmake)
-#include( testfiles.cmake)
+include( testfiles.cmake)
 
 #message(STATUS "nice_core_hdr:${NICE_CORE_HDR}")
 
@@ -13,13 +13,28 @@ if(BUILD_CORE_PROGS)
   foreach(__progcpp ${NICE_PROGFILES_SRC})
     #message(STATUS "progcpp: ${__progcpp}")
     get_filename_component(__progname ${__progcpp} NAME_WE )
-    message(STATUS "progname: ${__progname}")
+    #message(STATUS "progname: ${__progname}")
     ADD_EXECUTABLE( ${__progname} ${__progcpp})
     TARGET_LINK_LIBRARIES(${__progname} nice_core)
     INSTALL(TARGETS ${__progname} DESTINATION bin)
   endforeach()
 endif()
 
+if(BUILD_CORE_TESTS)
+  INCLUDE_DIRECTORIES(${CPPUNIT_INCLUDE_DIR})
+  message(STATUS "building tests:")
+  foreach(__testcpp ${NICE_TESTFILES_SRC})
+    message(STATUS "progcpp: ${__testcpp}")
+    get_filename_component(__testname ${__testcpp} NAME_WE )
+    message(STATUS "progname: ${__testname}")
+    
+    ADD_EXECUTABLE( ${__testname} ../templates/cppUnitTestRunner.cpp ${__testcpp})
+    TARGET_LINK_LIBRARIES(${__testname} nice_core ${CPPUNIT_LIBRARIES} )
+
+    INSTALL(TARGETS ${__testname} DESTINATION bin)
+  endforeach()
+endif()
+
 #####
  set(the_module "nice_core")
  if(ENABLE_SOLUTION_FOLDERS)

+ 72 - 72
core/testfiles.cmake

@@ -1,80 +1,80 @@
 #generated by find . -name "*.cpp" -ipath "*tests*" > testfiles.cmake.t 
 SET(NICE_TESTFILES_SRC 
-./image/tests/ImageTest.cpp
-./image/tests/TestImageFile.cpp
-./image/tests/TestRect.cpp
-./image/tests/TestImageFileList.cpp
-./image/tests/TestConvert.cpp
-./image/tests/TestImageOperators.cpp
-./image/tests/TestImageTools.cpp
-./image/tests/TestFilter.cpp
-./image/tests/TestConverter.cpp
-./image/tests/TestHistogram.cpp
-./image/tests/TestMorph.cpp
-./image/tests/TestDrawable.cpp
-./image/tests/TestColor.cpp
-./image/tests/MultiChannelImageTTest.cpp
-./image/tests/TestFourier.cpp
-./basics/tests/cppunitexTest.cpp
-./basics/tests/FileNameTest.cpp
-./basics/tests/Testcasts.cpp
-./basics/tests/TestObserver.cpp
-./basics/tests/numerictoolsTest.cpp
-./basics/tests/TimerTest.cpp
-./basics/tests/stringutilsTest.cpp
-./basics/tests/Testgzbinstream.cpp
-./basics/tests/Testbinstream.cpp
-./optimization/gradientBased/tests/TestTrustRegion.cpp
-./optimization/blackbox/tests/TestDownhillSimplex.cpp
-./algebra/tests/TestLUDecomposition.cpp
-./algebra/tests/TestLinearSolve.cpp
-./algebra/tests/TestDiagApprox.cpp
-./algebra/tests/TestEigenValue.cpp
-./vector/tests/TestSparseVector.cpp
-./vector/tests/TestEVector.cpp
+# ./image/tests/ImageTest.cpp
+# ./image/tests/TestImageFile.cpp
+# ./image/tests/TestRect.cpp
+# ./image/tests/TestImageFileList.cpp
+# ./image/tests/TestConvert.cpp
+# ./image/tests/TestImageOperators.cpp
+# ./image/tests/TestImageTools.cpp
+# ./image/tests/TestFilter.cpp
+# ./image/tests/TestConverter.cpp
+# ./image/tests/TestHistogram.cpp
+# ./image/tests/TestMorph.cpp
+# ./image/tests/TestDrawable.cpp
+# ./image/tests/TestColor.cpp
+# ./image/tests/MultiChannelImageTTest.cpp
+# ./image/tests/TestFourier.cpp
+# ./basics/tests/cppunitexTest.cpp
+# ./basics/tests/FileNameTest.cpp
+# ./basics/tests/Testcasts.cpp
+# ./basics/tests/TestObserver.cpp
+# ./basics/tests/numerictoolsTest.cpp
+# ./basics/tests/TimerTest.cpp
+# ./basics/tests/stringutilsTest.cpp
+# ./basics/tests/Testgzbinstream.cpp
+# ./basics/tests/Testbinstream.cpp
+# ./optimization/gradientBased/tests/TestTrustRegion.cpp
+# ./optimization/blackbox/tests/TestDownhillSimplex.cpp
+# ./algebra/tests/TestLUDecomposition.cpp
+# ./algebra/tests/TestLinearSolve.cpp
+# ./algebra/tests/TestDiagApprox.cpp
+# ./algebra/tests/TestEigenValue.cpp
+# ./vector/tests/TestSparseVector.cpp
+# ./vector/tests/TestEVector.cpp
 ./vector/tests/TestDistance.cpp
-./vector/tests/TestAlgorithms.cpp
-./vector/tests/TestStreamable.cpp
-./vector/tests/TestERowMatrix.cpp
-./vector/tests/TestEMatrix.cpp
+# ./vector/tests/TestAlgorithms.cpp
+# ./vector/tests/TestStreamable.cpp
+# ./vector/tests/TestERowMatrix.cpp
+# ./vector/tests/TestEMatrix.cpp
 )
 
 SET(NICE_TESTFILES_HDR
-./image/tests/TestRect.h
-./image/tests/ImageTest.h
-./image/tests/TestMorph.h
-./image/tests/TestImageTools.h
-./image/tests/TestConvert.h
-./image/tests/MultiChannelImageTTest.h
-./image/tests/TestFourier.h
-./image/tests/TestImageOperators.h
-./image/tests/TestColor.h
-./image/tests/TestHistogram.h
-./image/tests/TestDrawable.h
-./image/tests/TestConverter.h
-./image/tests/TestFilter.h
-./image/tests/TestImageFileList.h
-./image/tests/TestImageFile.h
-./basics/tests/TimerTest.h
-./basics/tests/Testcasts.h
-./basics/tests/numerictoolsTest.h
-./basics/tests/Testbinstream.h
-./basics/tests/cppunitexTest.h
-./basics/tests/Testgzbinstream.h
-./basics/tests/FileNameTest.h
-./basics/tests/stringutilsTest.h
-./basics/tests/TestObserver.h
-./optimization/gradientBased/tests/TestTrustRegion.h
-./optimization/blackbox/tests/TestDownhillSimplex.h
-./algebra/tests/TestDiagApprox.h
-./algebra/tests/TestLUDecomposition.h
-./algebra/tests/TestEigenValue.h
-./algebra/tests/TestLinearSolve.h
-./vector/tests/TestStreamable.h
-./vector/tests/TestERowMatrix.h
-./vector/tests/TestEMatrix.h
-./vector/tests/TestAlgorithms.h
-./vector/tests/TestEVector.h
+# ./image/tests/TestRect.h
+# ./image/tests/ImageTest.h
+# ./image/tests/TestMorph.h
+# ./image/tests/TestImageTools.h
+# ./image/tests/TestConvert.h
+# ./image/tests/MultiChannelImageTTest.h
+# ./image/tests/TestFourier.h
+# ./image/tests/TestImageOperators.h
+# ./image/tests/TestColor.h
+# ./image/tests/TestHistogram.h
+# ./image/tests/TestDrawable.h
+# ./image/tests/TestConverter.h
+# ./image/tests/TestFilter.h
+# ./image/tests/TestImageFileList.h
+# ./image/tests/TestImageFile.h
+# ./basics/tests/TimerTest.h
+# ./basics/tests/Testcasts.h
+# ./basics/tests/numerictoolsTest.h
+# ./basics/tests/Testbinstream.h
+# ./basics/tests/cppunitexTest.h
+# ./basics/tests/Testgzbinstream.h
+# ./basics/tests/FileNameTest.h
+# ./basics/tests/stringutilsTest.h
+# ./basics/tests/TestObserver.h
+# ./optimization/gradientBased/tests/TestTrustRegion.h
+# ./optimization/blackbox/tests/TestDownhillSimplex.h
+# ./algebra/tests/TestDiagApprox.h
+# ./algebra/tests/TestLUDecomposition.h
+# ./algebra/tests/TestEigenValue.h
+# ./algebra/tests/TestLinearSolve.h
+# ./vector/tests/TestStreamable.h
+# ./vector/tests/TestERowMatrix.h
+# ./vector/tests/TestEMatrix.h
+# ./vector/tests/TestAlgorithms.h
+# ./vector/tests/TestEVector.h
 ./vector/tests/TestDistance.h
-./vector/tests/TestSparseVector.h
+# ./vector/tests/TestSparseVector.h
 )