69a921f2d6
- new file "docs/build-system.md" to document the integration of Catch with popular build systems. - document how to configure Catch as a CMake external project.
1.1 KiB
1.1 KiB
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_minimum_required(VERSION 2.8.8)
project(catch_builder CXX)
include(ExternalProject)
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:
# Includes Catch in the project:
add_subdirectory(${EXT_PROJECTS_DIR}/catch)
include_directories(${CATCH_INCLUDE_DIR} ${COMMON_INCLUDES})
enable_testing(true) # Enables unit-testing.