X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fboost%2Flibs%2Fhana%2Fbenchmark%2FCMakeLists.txt;h=212454563153f75086bde4bf6ad5a24423be286e;hb=b32b81446b3b05102be0267e79203f59329c1d97;hp=ffc531bbde53a827021a17fcc01192eafdc9b05c;hpb=215dd7151453fae88e6f968c975b6ce309d42dcf;p=ceph.git diff --git a/ceph/src/boost/libs/hana/benchmark/CMakeLists.txt b/ceph/src/boost/libs/hana/benchmark/CMakeLists.txt index ffc531bbd..212454563 100644 --- a/ceph/src/boost/libs/hana/benchmark/CMakeLists.txt +++ b/ceph/src/boost/libs/hana/benchmark/CMakeLists.txt @@ -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}" )