Back to home page

EIC code displayed by LXR

 
 

    


Warning, /acts/Plugins/FpeMonitoring/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 acts_add_library(
0002     PluginFpeMonitoring
0003     SHARED
0004     src/FpeMonitor.cpp
0005     ACTS_INCLUDE_FOLDER include/ActsPlugins
0006 )
0007 target_include_directories(
0008     ActsPluginFpeMonitoring
0009     PUBLIC
0010         $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/>
0011         $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
0012 )
0013 
0014 target_link_libraries(ActsPluginFpeMonitoring PUBLIC Acts::Core)
0015 
0016 # Fpe flags
0017 set(_fpe_options "")
0018 
0019 include(CheckCXXSourceCompiles)
0020 
0021 find_library(dl_LIBRARY dl)
0022 find_package(Backtrace)
0023 find_program(addr2line_EXECUTABLE addr2line)
0024 if(APPLE)
0025     list(APPEND _fpe_options -D_GNU_SOURCE)
0026 else()
0027     if(dl_LIBRARY)
0028         target_link_libraries(ActsPluginFpeMonitoring PUBLIC ${dl_LIBRARY})
0029 
0030         set(_backtrace_setup_complete FALSE)
0031 
0032         find_path(
0033             boost_stacktrace_include
0034             NAMES "boost/stacktrace.hpp"
0035             REQUIRED
0036             PATHS ${Boost_INCLUDE_DIRS}
0037         )
0038         if(Backtrace_FOUND)
0039             # check if we need to link against bracktrace or not
0040             set(backtrace_include "")
0041 
0042             file(
0043                 WRITE
0044                 "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0045                 "
0046         #include <boost/stacktrace.hpp>
0047         int main() {}
0048         "
0049             )
0050 
0051             message(CHECK_START "Does backtrace work with the default include")
0052 
0053             try_compile(
0054                 _backtrace_default_header
0055                 "${CMAKE_BINARY_DIR}"
0056                 "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0057                 LINK_LIBRARIES ${dl_LIBRARY}
0058                 CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${boost_stacktrace_include}"
0059                 COMPILE_DEFINITIONS -DBOOST_STACKTRACE_USE_BACKTRACE
0060                 OUTPUT_VARIABLE __OUTPUT
0061             )
0062 
0063             if(_backtrace_default_header)
0064                 message(CHECK_PASS "yes")
0065             else()
0066                 message(CHECK_FAIL "no")
0067 
0068                 file(GLOB hints "/usr/lib/gcc/*/*/include")
0069                 find_file(backtrace_header NAMES "backtrace.h" HINTS ${hints})
0070 
0071                 if(${backtrace_header} STREQUAL "backtrace_header-NOTFOUND")
0072                     message(STATUS "Could not find backtrace header file")
0073                 else()
0074                     set(backtrace_include
0075                         "-DBOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE=\"${backtrace_header}\""
0076                     )
0077 
0078                     file(
0079                         WRITE
0080                         "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0081                         "
0082             #include <boost/stacktrace.hpp>
0083             int main() {}
0084             "
0085                     )
0086 
0087                     message(
0088                         CHECK_START
0089                         "Does backtrace work with explicit include"
0090                     )
0091 
0092                     try_compile(
0093                         _backtrace_explicit_header
0094                         "${CMAKE_BINARY_DIR}"
0095                         "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0096                         LINK_LIBRARIES ${dl_LIBRARY}
0097                         CMAKE_FLAGS
0098                             "-DINCLUDE_DIRECTORIES=${boost_stacktrace_include}"
0099                         COMPILE_DEFINITIONS
0100                             -DBOOST_STACKTRACE_USE_BACKTRACE
0101                             ${backtrace_include}
0102                         OUTPUT_VARIABLE __OUTPUT
0103                     )
0104 
0105                     if(_backtrace_explicit_header)
0106                         message(CHECK_PASS "yes")
0107                         list(APPEND _fpe_options "${backtrace_include}")
0108                     else()
0109                         message(CHECK_FAIL "no")
0110                     endif()
0111                 endif()
0112             endif()
0113 
0114             file(
0115                 WRITE
0116                 "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0117                 "#include <boost/stacktrace.hpp>\n"
0118                 "#include <iostream>\n"
0119                 "int main() { std::cout << boost::stacktrace::stacktrace(); }\n"
0120             )
0121 
0122             message(CHECK_START "Does backtrace work without linker flag")
0123             try_compile(
0124                 _backtrace_nolink
0125                 "${CMAKE_BINARY_DIR}"
0126                 "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0127                 LINK_LIBRARIES ${dl_LIBRARY}
0128                 CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${boost_stacktrace_include}"
0129                 COMPILE_DEFINITIONS
0130                     -DBOOST_STACKTRACE_USE_BACKTRACE
0131                     ${backtrace_include}
0132                 OUTPUT_VARIABLE __OUTPUT
0133             )
0134 
0135             if(_backtrace_nolink)
0136                 message(CHECK_PASS "yes")
0137                 set(_backtrace_setup_complete TRUE)
0138             else()
0139                 message(CHECK_FAIL "no")
0140 
0141                 file(
0142                     WRITE
0143                     "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0144                     "#include <boost/stacktrace.hpp>\n"
0145                     "#include <iostream>\n"
0146                     "int main() { std::cout << boost::stacktrace::stacktrace(); }\n"
0147                 )
0148 
0149                 message(CHECK_START "Does backtrace work with linker flag")
0150                 try_compile(
0151                     _backtrace_link
0152                     "${CMAKE_BINARY_DIR}"
0153                     "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0154                     LINK_LIBRARIES backtrace ${dl_LIBRARY}
0155                     CMAKE_FLAGS
0156                         "-DINCLUDE_DIRECTORIES=${boost_stacktrace_include}"
0157                     COMPILE_DEFINITIONS
0158                         -DBOOST_STACKTRACE_USE_BACKTRACE
0159                         ${backtrace_include}
0160                     OUTPUT_VARIABLE __OUTPUT
0161                 )
0162 
0163                 if(_backtrace_link)
0164                     message(CHECK_PASS "yes")
0165                     list(APPEND _fpe_options -DBOOST_STACKTRACE_USE_BACKTRACE)
0166                     target_link_libraries(
0167                         ActsPluginFpeMonitoring
0168                         PUBLIC backtrace
0169                     )
0170 
0171                     set(_backtrace_setup_complete TRUE)
0172                 else()
0173                     message(CHECK_FAIL "no")
0174                 endif()
0175             endif()
0176         endif()
0177 
0178         if(NOT _backtrace_setup_complete)
0179             message(STATUS "Unable to set up stacktrace setup: use noop")
0180             list(APPEND _fpe_options -BOOST_STACKTRACE_USE_NOOP)
0181         endif()
0182     endif()
0183 endif()
0184 
0185 target_compile_options(ActsPluginFpeMonitoring PUBLIC "${_fpe_options}")