• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2018, 2019 Peter Dimov
2# Distributed under the Boost Software License, Version 1.0.
3# See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
4
5cmake_minimum_required(VERSION 3.5...3.16)
6
7project(boost_mp11 VERSION 1.74.0 LANGUAGES CXX)
8
9add_library(boost_mp11 INTERFACE)
10add_library(Boost::mp11 ALIAS boost_mp11)
11
12target_include_directories(boost_mp11 INTERFACE include)
13target_compile_features(boost_mp11 INTERFACE cxx_alias_templates cxx_variadic_templates cxx_decltype)
14
15if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
16
17  # Fetch support files
18
19  message(STATUS "Fetching BoostFetch.cmake")
20
21  file(DOWNLOAD
22    "https://raw.githubusercontent.com/boostorg/cmake/develop/include/BoostFetch.cmake"
23    "${CMAKE_BINARY_DIR}/fetch_and_include/BoostFetch.cmake"
24  )
25
26  include("${CMAKE_BINARY_DIR}/fetch_and_include/BoostFetch.cmake")
27
28  boost_fetch(boostorg/cmake TAG develop NO_ADD_SUBDIR)
29
30  FetchContent_GetProperties(boostorg_cmake)
31
32  list(APPEND CMAKE_MODULE_PATH ${boostorg_cmake_SOURCE_DIR}/include)
33
34  # Enable testing
35
36  include(CTest)
37  add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
38
39  if(BUILD_TESTING)
40
41    set(BUILD_TESTING OFF) # hide cache variable
42
43    boost_fetch(boostorg/assert TAG develop EXCLUDE_FROM_ALL)
44    boost_fetch(boostorg/config TAG develop EXCLUDE_FROM_ALL)
45    boost_fetch(boostorg/core TAG develop EXCLUDE_FROM_ALL)
46
47    unset(BUILD_TESTING)
48
49  endif()
50
51  # Do not use the default BoostInstall versioned layout on Windows when standalone
52  set(BOOST_INSTALL_LAYOUT "system" CACHE STRING "Installation layout (versioned, tagged, or system)")
53
54endif()
55
56include(BoostInstall OPTIONAL RESULT_VARIABLE HAVE_BOOST_INSTALL)
57
58if(HAVE_BOOST_INSTALL)
59
60  boost_install(TARGETS boost_mp11 HEADER_DIRECTORY include/)
61
62endif()
63
64if(BUILD_TESTING)
65
66  add_subdirectory(test)
67
68endif()
69