闲人草堂

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

早就听闻CppUnit是个好东西,奈何一直没有仔细研读,现在开始一步步来学习。

网上找了个例子,想先跑跑看看效果,卡在了cmake这一步。

原来cmake v2.8里还没有FindCppUnit这个模块,所幸已经有网友写出了一个可用的版本,先拿来借鉴一下.

#
#
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)

在自己的CMakeLists.txt中加上

set(MY_MODULE_PATH "/home/XXX/usr/share/cmake/Modules")
#这个是你放FindCppUnit.cmae的路径

LIST(APPEND CMAKE_MODULE_PATH ${MY_MODULE_PATH})

这样就可以使用find_package(CppUnit)了。

posted on 2011-06-08 16:44  闲人草堂  阅读(1000)  评论(0编辑  收藏  举报