I've noticed that UnitTest++ is going through a lot of trouble to maintain 
build scripts for each platform (a Makefile, two versions of MSVC project 
files, etc).

Have you considered CMake?  It's a makefile builder that abstracts the 
platform-specific parts of build systems (sort of like Autoconf, but more 
cross-platform).  It can build makefiles, nmake files, MSVC project files (v6 
thru v10), and even Eclipse and XCode project files.  In my own project it made 
a huge difference in the pain involved in supporting multiple platforms.

Anyway, I just started using UnitTest++ in my project (so far I think it's the 
best unit testing framework for C/C++!) and had to integrate it with our CMake 
build scripts.  Since I went through the trouble of getting UnitTest++ to work 
with CMake, I thought you might be able to make use of it.  

Below is CMakeLists.txt:

        cmake_minimum_required(VERSION 2.8.1)
        project(UnitTest++)

        # get the main sources
        file(GLOB SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp src/*.h)
        source_group("" FILES ${SRCS})

        # get platform specific sources
        if (WIN32)
            set(PLAT_DIR Win32)
        else()
            set(PLAT_DIR Posix)
        endif(WIN32)
        file(GLOB PLAT_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} 
src/${PLAT_DIR}/*.cpp src/${PLAT_DIR}/*.h)
        source_group(${PLAT_DIR} FILES ${PLAT_SRCS})

        # create the lib
        add_library(UnitTestPP STATIC ${SRCS} ${PLAT_SRCS})
        set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++)
        include_directories(src)

        # build the test runner
        file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} 
src/tests/*.cpp src/tests/*.h)
        source_group( "" FILES ${TEST_SRCS})
        add_executable(TestUnitTestPP ${TEST_SRCS})
        set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME 
TestUnitTest++)
        target_link_libraries(TestUnitTestPP UnitTestPP)

        # turn on testing
        enable_testing()
        add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -V)

        # add the test runner as a test
        add_test(NAME TestUnitTestPP COMMAND TestUnitTest++ ${CONFIG_PATH} 
${CONFIG_TASKS_PATH} ${SOUND_LOG_PATH})
        add_dependencies(check TestUnitTestPP)


------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
unittest-cpp-devel mailing list
unittest-cpp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unittest-cpp-devel

Reply via email to