]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/hana/benchmark/CMakeLists.txt
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / hana / benchmark / CMakeLists.txt
index ffc531bbde53a827021a17fcc01192eafdc9b05c..212454563153f75086bde4bf6ad5a24423be286e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright Louis Dionne 2013-2016
+# Copyright Louis Dionne 2013-2017
 # Distributed under the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
 
@@ -23,20 +23,12 @@ if(${__BOOST_HANA_MISSING_GEMS})
     return()
 endif()
 
-# Check for the MPL11 library, which can be measured in some benchmarks
+# Some benchmarks depend on those libraries
 find_package(MPL11)
-if (MPL11_FOUND)
-    include_directories(${MPL11_INCLUDE_DIR})
-endif()
-
-# Check for the Meta library, which can be measured in some benchmarks
 find_package(Meta)
-if (Meta_FOUND)
-    include_directories(${Meta_INCLUDE_DIR})
-endif()
 
-boost_hana_append_flag(BOOST_HANA_HAS_FTEMPLATE_DEPTH -ftemplate-depth=-1)
-include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+include(CheckCXXCompilerFlag)
+check_cxx_compiler_flag(-ftemplate-depth=-1 BOOST_HANA_HAS_FTEMPLATE_DEPTH)
 
 ##############################################################################
 # Configure the measure.rb script
@@ -59,24 +51,37 @@ file(GLOB_RECURSE BOOST_HANA_BENCHMARKS *.erb.json)
 foreach(benchmark IN LISTS BOOST_HANA_BENCHMARKS)
     boost_hana_target_name_for(target ${benchmark} ".erb.json")
     get_filename_component(directory "${benchmark}" DIRECTORY)
-    file(GLOB cpp_files ${directory}/*.erb.cpp)
+    file(GLOB cpp_files "${directory}/*.erb.cpp")
     configure_file("${benchmark}" "${CMAKE_CURRENT_BINARY_DIR}/${target}.erb.json" @ONLY)
 
-    file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${target}.measure.cpp "")
-    add_executable(${target}.measure EXCLUDE_FROM_ALL ${CMAKE_CURRENT_BINARY_DIR}/${target}.measure.cpp)
-    target_link_libraries(${target}.measure hana)
+    file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${target}.measure.cpp" "")
+    add_executable(${target}.measure EXCLUDE_FROM_ALL "${CMAKE_CURRENT_BINARY_DIR}/${target}.measure.cpp")
+    target_include_directories(${target}.measure PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}")
+    if (MPL11_FOUND)
+        target_include_directories(${target}.measure PRIVATE "${MPL11_INCLUDE_DIR}")
+    endif()
+    if (Meta_FOUND)
+        target_include_directories(${target}.measure PRIVATE "${Meta_INCLUDE_DIR}")
+    endif()
+    if (Boost_FOUND)
+        target_link_libraries(${target}.measure PRIVATE Boost::boost)
+    endif()
+    boost_hana_set_test_properties(${target}.measure)
+    if (BOOST_HANA_HAS_FTEMPLATE_DEPTH)
+        target_compile_options(${target}.measure PRIVATE -ftemplate-depth=-1)
+    endif()
     set_target_properties(${target}.measure PROPERTIES RULE_LAUNCH_COMPILE "${CMAKE_CURRENT_BINARY_DIR}/measure.rb")
     set_property(TARGET ${target}.measure APPEND PROPERTY INCLUDE_DIRECTORIES "${directory}")
     add_custom_target(${target}.measure.run COMMAND ${target}.measure)
 
     add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${target}.json"
-        COMMAND ${RUBY_EXECUTABLE} -r tilt -r ${CMAKE_CURRENT_BINARY_DIR}/measure.rb
+        COMMAND ${RUBY_EXECUTABLE} -r tilt -r "${CMAKE_CURRENT_BINARY_DIR}/measure.rb"
             -e "MEASURE_FILE = '${CMAKE_CURRENT_BINARY_DIR}/${target}.measure.cpp'"
             -e "MEASURE_TARGET = '${target}.measure'"
             -e "json = Tilt::ERBTemplate.new('${CMAKE_CURRENT_BINARY_DIR}/${target}.erb.json').render"
             -e "File.open('${CMAKE_CURRENT_BINARY_DIR}/${target}.json', 'w') { |f| f.write(json) } "
         WORKING_DIRECTORY ${directory}
-        DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${target}.erb.json ${cpp_files}
+        DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${target}.erb.json" ${cpp_files}
         VERBATIM USES_TERMINAL
         COMMENT "Generating dataset for ${target}"
     )