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/Acts
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         )
0037         if(Backtrace_FOUND)
0038             # check if we need to link against bracktrace or not
0039             set(backtrace_include "")
0040 
0041             file(
0042                 WRITE
0043                 "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0044                 "
0045         #include <boost/stacktrace.hpp>
0046         int main() {}
0047         "
0048             )
0049 
0050             message(CHECK_START "Does backtrace work with the default include")
0051 
0052             try_compile(
0053                 _backtrace_default_header
0054                 "${CMAKE_BINARY_DIR}"
0055                 "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0056                 LINK_LIBRARIES ${dl_LIBRARY}
0057                 CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${boost_stacktrace_include}"
0058                 COMPILE_DEFINITIONS -DBOOST_STACKTRACE_USE_BACKTRACE
0059                 OUTPUT_VARIABLE __OUTPUT
0060             )
0061 
0062             if(_backtrace_default_header)
0063                 message(CHECK_PASS "yes")
0064             else()
0065                 message(CHECK_FAIL "no")
0066 
0067                 file(GLOB hints "/usr/lib/gcc/*/*/include")
0068                 find_file(backtrace_header NAMES "backtrace.h" HINTS ${hints})
0069 
0070                 if(${backtrace_header} STREQUAL "backtrace_header-NOTFOUND")
0071                     message(STATUS "Could not find backtrace header file")
0072                 else()
0073                     set(backtrace_include
0074                         "-DBOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE=\"${backtrace_header}\""
0075                     )
0076 
0077                     file(
0078                         WRITE
0079                         "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0080                         "
0081             #include <boost/stacktrace.hpp>
0082             int main() {}
0083             "
0084                     )
0085 
0086                     message(
0087                         CHECK_START
0088                         "Does backtrace work with explicit include"
0089                     )
0090 
0091                     try_compile(
0092                         _backtrace_explicit_header
0093                         "${CMAKE_BINARY_DIR}"
0094                         "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0095                         LINK_LIBRARIES ${dl_LIBRARY}
0096                         CMAKE_FLAGS
0097                             "-DINCLUDE_DIRECTORIES=${boost_stacktrace_include}"
0098                         COMPILE_DEFINITIONS
0099                             -DBOOST_STACKTRACE_USE_BACKTRACE
0100                             ${backtrace_include}
0101                         OUTPUT_VARIABLE __OUTPUT
0102                     )
0103 
0104                     if(_backtrace_explicit_header)
0105                         message(CHECK_PASS "yes")
0106                         list(APPEND _fpe_options "${backtrace_include}")
0107                     else()
0108                         message(CHECK_FAIL "no")
0109                     endif()
0110                 endif()
0111             endif()
0112 
0113             file(
0114                 WRITE
0115                 "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0116                 "#include <boost/stacktrace.hpp>\n"
0117                 "#include <iostream>\n"
0118                 "int main() { std::cout << boost::stacktrace::stacktrace(); }\n"
0119             )
0120 
0121             message(CHECK_START "Does backtrace work without linker flag")
0122             try_compile(
0123                 _backtrace_nolink
0124                 "${CMAKE_BINARY_DIR}"
0125                 "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0126                 LINK_LIBRARIES ${dl_LIBRARY}
0127                 CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${boost_stacktrace_include}"
0128                 COMPILE_DEFINITIONS
0129                     -DBOOST_STACKTRACE_USE_BACKTRACE
0130                     ${backtrace_include}
0131                 OUTPUT_VARIABLE __OUTPUT
0132             )
0133 
0134             if(_backtrace_nolink)
0135                 message(CHECK_PASS "yes")
0136                 set(_backtrace_setup_complete TRUE)
0137             else()
0138                 message(CHECK_FAIL "no")
0139 
0140                 file(
0141                     WRITE
0142                     "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0143                     "#include <boost/stacktrace.hpp>\n"
0144                     "#include <iostream>\n"
0145                     "int main() { std::cout << boost::stacktrace::stacktrace(); }\n"
0146                 )
0147 
0148                 message(CHECK_START "Does backtrace work with linker flag")
0149                 try_compile(
0150                     _backtrace_link
0151                     "${CMAKE_BINARY_DIR}"
0152                     "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0153                     LINK_LIBRARIES backtrace ${dl_LIBRARY}
0154                     CMAKE_FLAGS
0155                         "-DINCLUDE_DIRECTORIES=${boost_stacktrace_include}"
0156                     COMPILE_DEFINITIONS
0157                         -DBOOST_STACKTRACE_USE_BACKTRACE
0158                         ${backtrace_include}
0159                     OUTPUT_VARIABLE __OUTPUT
0160                 )
0161 
0162                 if(_backtrace_link)
0163                     message(CHECK_PASS "yes")
0164                     list(APPEND _fpe_options -DBOOST_STACKTRACE_USE_BACKTRACE)
0165                     target_link_libraries(
0166                         ActsPluginFpeMonitoring
0167                         PUBLIC backtrace
0168                     )
0169 
0170                     set(_backtrace_setup_complete TRUE)
0171                 else()
0172                     message(CHECK_FAIL "no")
0173                 endif()
0174             endif()
0175         endif()
0176 
0177         if(NOT _backtrace_setup_complete)
0178             message(STATUS "Unable to set up stacktrace setup: use noop")
0179             list(APPEND _fpe_options -BOOST_STACKTRACE_USE_NOOP)
0180         endif()
0181     endif()
0182 endif()
0183 
0184 target_compile_options(ActsPluginFpeMonitoring PUBLIC "${_fpe_options}")