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 set(_fpe_platform_source src/FpeMonitorPlatformUnsupported.cpp)
0002 string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" _acts_fpe_arch)
0003 
0004 if(APPLE)
0005     if(_acts_fpe_arch MATCHES "^(x86_64|amd64)$")
0006         set(_fpe_platform_source src/FpeMonitorPlatformDarwinX86_64.cpp)
0007     elseif(_acts_fpe_arch MATCHES "^(arm64|aarch64)$")
0008         set(_fpe_platform_source src/FpeMonitorPlatformDarwinArm64.cpp)
0009     endif()
0010 elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
0011     if(_acts_fpe_arch MATCHES "^(x86_64|amd64)$")
0012         set(_fpe_platform_source src/FpeMonitorPlatformLinuxX86_64.cpp)
0013     endif()
0014 endif()
0015 
0016 acts_add_library(
0017     PluginFpeMonitoring
0018     src/FpeMonitor.cpp
0019     ${_fpe_platform_source}
0020     ACTS_INCLUDE_FOLDER include/ActsPlugins
0021 )
0022 
0023 target_include_directories(
0024     ActsPluginFpeMonitoring
0025     PUBLIC
0026         $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/>
0027         $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
0028 )
0029 
0030 target_link_libraries(ActsPluginFpeMonitoring PUBLIC Acts::Core)
0031 
0032 acts_compile_headers(PluginFpeMonitoring GLOB include/**/*.hpp)
0033 
0034 # Fpe flags
0035 set(_fpe_options "")
0036 
0037 # In case we're going to run clang-tidy, let's unconditionally turn off backtrace
0038 if(ACTS_RUN_CLANG_TIDY)
0039     list(APPEND _fpe_options "-DBOOST_STACKTRACE_USE_NOOP=1")
0040 else()
0041     include(CheckCXXSourceCompiles)
0042 
0043     find_library(dl_LIBRARY dl)
0044     find_package(Backtrace)
0045     find_program(addr2line_EXECUTABLE addr2line)
0046     if(APPLE)
0047         list(APPEND _fpe_options -D_GNU_SOURCE)
0048     else()
0049         if(dl_LIBRARY)
0050             target_link_libraries(ActsPluginFpeMonitoring PUBLIC ${dl_LIBRARY})
0051 
0052             set(_backtrace_setup_complete FALSE)
0053 
0054             find_path(
0055                 boost_stacktrace_include
0056                 NAMES "boost/stacktrace.hpp"
0057                 REQUIRED
0058                 PATHS ${Boost_INCLUDE_DIRS}
0059             )
0060             if(Backtrace_FOUND)
0061                 # check if we need to link against bracktrace or not
0062                 set(backtrace_include "")
0063 
0064                 file(
0065                     WRITE
0066                         "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0067                     "
0068         #include <boost/stacktrace.hpp>
0069         int main() {}
0070         "
0071                 )
0072 
0073                 message(
0074                     CHECK_START
0075                     "Does backtrace work with the default include"
0076                 )
0077 
0078                 try_compile(
0079                     _backtrace_default_header
0080                     "${CMAKE_BINARY_DIR}"
0081                     "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0082                     LINK_LIBRARIES ${dl_LIBRARY}
0083                     CMAKE_FLAGS
0084                         "-DINCLUDE_DIRECTORIES=${boost_stacktrace_include}"
0085                     COMPILE_DEFINITIONS -DBOOST_STACKTRACE_USE_BACKTRACE
0086                     OUTPUT_VARIABLE __OUTPUT
0087                 )
0088 
0089                 if(_backtrace_default_header)
0090                     message(CHECK_PASS "yes")
0091                 else()
0092                     message(CHECK_FAIL "no")
0093 
0094                     file(GLOB hints "/usr/lib/gcc/*/*/include")
0095                     find_file(
0096                         backtrace_header
0097                         NAMES "backtrace.h"
0098                         HINTS ${hints}
0099                     )
0100 
0101                     if(${backtrace_header} STREQUAL "backtrace_header-NOTFOUND")
0102                         message(STATUS "Could not find backtrace header file")
0103                     else()
0104                         set(backtrace_include
0105                             "-DBOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE=\"${backtrace_header}\""
0106                         )
0107 
0108                         file(
0109                             WRITE
0110                                 "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0111                             "
0112             #include <boost/stacktrace.hpp>
0113             int main() {}
0114             "
0115                         )
0116 
0117                         message(
0118                             CHECK_START
0119                             "Does backtrace work with explicit include"
0120                         )
0121 
0122                         try_compile(
0123                             _backtrace_explicit_header
0124                             "${CMAKE_BINARY_DIR}"
0125                             "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0126                             LINK_LIBRARIES ${dl_LIBRARY}
0127                             CMAKE_FLAGS
0128                                 "-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_explicit_header)
0136                             message(CHECK_PASS "yes")
0137                             list(APPEND _fpe_options "${backtrace_include}")
0138                         else()
0139                             message(CHECK_FAIL "no")
0140                         endif()
0141                     endif()
0142                 endif()
0143 
0144                 file(
0145                     WRITE
0146                         "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0147                     "#include <boost/stacktrace.hpp>\n"
0148                     "#include <iostream>\n"
0149                     "int main() { std::cout << boost::stacktrace::stacktrace(); }\n"
0150                 )
0151 
0152                 message(CHECK_START "Does backtrace work without linker flag")
0153                 try_compile(
0154                     _backtrace_nolink
0155                     "${CMAKE_BINARY_DIR}"
0156                     "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0157                     LINK_LIBRARIES ${dl_LIBRARY}
0158                     CMAKE_FLAGS
0159                         "-DINCLUDE_DIRECTORIES=${boost_stacktrace_include}"
0160                     COMPILE_DEFINITIONS
0161                         -DBOOST_STACKTRACE_USE_BACKTRACE
0162                         ${backtrace_include}
0163                     OUTPUT_VARIABLE __OUTPUT
0164                 )
0165 
0166                 if(_backtrace_nolink)
0167                     message(CHECK_PASS "yes")
0168                     set(_backtrace_setup_complete TRUE)
0169                 else()
0170                     message(CHECK_FAIL "no")
0171 
0172                     file(
0173                         WRITE
0174                             "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0175                         "#include <boost/stacktrace.hpp>\n"
0176                         "#include <iostream>\n"
0177                         "int main() { std::cout << boost::stacktrace::stacktrace(); }\n"
0178                     )
0179 
0180                     message(CHECK_START "Does backtrace work with linker flag")
0181                     try_compile(
0182                         _backtrace_link
0183                         "${CMAKE_BINARY_DIR}"
0184                         "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/backtrace.cpp"
0185                         LINK_LIBRARIES backtrace ${dl_LIBRARY}
0186                         CMAKE_FLAGS
0187                             "-DINCLUDE_DIRECTORIES=${boost_stacktrace_include}"
0188                         COMPILE_DEFINITIONS
0189                             -DBOOST_STACKTRACE_USE_BACKTRACE
0190                             ${backtrace_include}
0191                         OUTPUT_VARIABLE __OUTPUT
0192                     )
0193 
0194                     if(_backtrace_link)
0195                         message(CHECK_PASS "yes")
0196                         list(
0197                             APPEND _fpe_options
0198                             -DBOOST_STACKTRACE_USE_BACKTRACE
0199                         )
0200                         target_link_libraries(
0201                             ActsPluginFpeMonitoring
0202                             PUBLIC backtrace
0203                         )
0204 
0205                         set(_backtrace_setup_complete TRUE)
0206                     else()
0207                         message(CHECK_FAIL "no")
0208                     endif()
0209                 endif()
0210             endif()
0211         endif()
0212 
0213         if(NOT _backtrace_setup_complete)
0214             if(NOT ${dl_LIBRARY} STREQUAL "dl_LIBRARY-NOTFOUND")
0215                 message(STATUS "ld lib available: use boost basic fallback")
0216             else()
0217                 message(STATUS "Unable to set up stacktraces: use noop")
0218                 list(APPEND _fpe_options -DBOOST_STACKTRACE_USE_NOOP)
0219             endif()
0220         endif()
0221     endif()
0222 endif()
0223 
0224 target_compile_options(ActsPluginFpeMonitoring PUBLIC "${_fpe_options}")