• 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://boost.org/LICENSE_1_0.txt)
4
5cmake_minimum_required(VERSION 3.5)
6
7if(POLICY CMP0074)
8  cmake_policy(SET CMP0074 NEW)
9endif()
10
11project(CmakeConfigRegexTest LANGUAGES CXX)
12
13include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
14
15set(BOOST_HINTS)
16
17if(USE_STAGED_BOOST)
18  set(BOOST_HINTS HINTS ../../../../stage)
19endif()
20
21if(USE_BOOST_PACKAGE)
22
23  find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS regex ${BOOST_HINTS})
24
25  # Using `include_directories`, `link_directories`, `link_libraries`
26  # is bad practice, done here for testing purposes. The right, "modern
27  # CMake", thing to do is `target_link_libraries(main Boost::regex)`.
28
29  include_directories(${Boost_INCLUDE_DIRS})
30  link_directories(${Boost_LIBRARY_DIRS})
31  link_libraries(${Boost_LIBRARIES})
32
33else()
34
35  find_package(boost_regex ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
36
37endif()
38
39add_executable(main quick.cpp)
40
41if(NOT USE_BOOST_PACKAGE)
42
43  target_link_libraries(main Boost::regex)
44
45endif()
46
47enable_testing()
48add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
49
50add_test(main main)
51