https://github.com/philsquared/Catch
Revision 7619920f860645dbd1d71ec44c9f76893bdff2f1 authored by Phil Nash on 22 December 2014, 20:10:33 UTC, committed by Phil Nash on 22 December 2014, 20:10:33 UTC
- implemented by TeamCity reporter
1 parent 58dcb5e
Raw File
Tip revision: 7619920f860645dbd1d71ec44c9f76893bdff2f1 authored by Phil Nash on 22 December 2014, 20:10:33 UTC
Support for reporting skipped tests
Tip revision: 7619920
build-systems.md
# Integration with build systems

## CMake

You can use the following CMake script to automatically fetch Catch from github and configure it as an external project:

```CMake
cmake_minimum_required(VERSION 2.8.8)
project(catch_builder CXX)
include(ExternalProject)
find_package(Git REQUIRED)

ExternalProject_Add(
    catch
    PREFIX ${CMAKE_BINARY_DIR}/catch
    GIT_REPOSITORY https://github.com/philsquared/Catch.git
    TIMEOUT 10
    UPDATE_COMMAND ${GIT_EXECUTABLE} pull
    CONFIGURE_COMMAND ""
    BUILD_COMMAND ""
    INSTALL_COMMAND ""
    LOG_DOWNLOAD ON
   )

# Expose required variable (CATCH_INCLUDE_DIR) to parent scope
ExternalProject_Get_Property(catch source_dir)
set(CATCH_INCLUDE_DIR ${source_dir}/include CACHE INTERNAL "Path to include folder for Catch")
```

If you put it in, e.g., `${PROJECT_SRC_DIR}/${EXT_PROJECTS_DIR}/catch/`, you can use it in your project by adding the following to your root CMake file:

```CMake
# Includes Catch in the project:
add_subdirectory(${EXT_PROJECTS_DIR}/catch)
include_directories(${CATCH_INCLUDE_DIR} ${COMMON_INCLUDES})
enable_testing(true)  # Enables unit-testing.
```

---

[Home](Readme.md)
back to top