X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/30082c0101bbc59ea6caffd8cf71bf65e1597b1d..b59417738c8cf11f1804269c65a4738bbf43c150:/tools/cmake/Modules/FindLibunwind.cmake diff --git a/tools/cmake/Modules/FindLibunwind.cmake b/tools/cmake/Modules/FindLibunwind.cmake index 8b6dbd3998..2feb903164 100644 --- a/tools/cmake/Modules/FindLibunwind.cmake +++ b/tools/cmake/Modules/FindLibunwind.cmake @@ -1,6 +1,6 @@ # Search for libunwind and components, both includes and libraries # -# Copyright (C) 2003-2018 The SimGrid Team. +# Copyright (C) 2003-2021 The SimGrid Team. # This is distributed under the LGPL licence but please contact us for # relicensing if you need. This is merely free software, no matter the licence. # @@ -14,7 +14,7 @@ # SimGrid needs unwind-ptrace on Linux and FreeBSD if("${CMAKE_SYSTEM}" MATCHES "Linux|FreeBSD") - set(LIBUNWIND_COMPONENTS ${LIBUNWIND_COMPONENTS} unwind-ptrace) + set(LIBUNWIND_COMPONENTS ${LIBUNWIND_COMPONENTS} unwind-ptrace unwind-generic) endif() # @@ -26,26 +26,16 @@ endif() # - Calls include_directories() on where libunwind.h lives # - Calls link_directories() on where the libs live -# Of course also need the core lib +# Of course also need the core lib set(LIBUNWIND_COMPONENTS ${LIBUNWIND_COMPONENTS} "unwind") -# For some reason, some archs have an arch-specific while other do not. -if (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm") - SET(LIBUNWIND_COMPONENTS ${LIBUNWIND_COMPONENTS} unwind-arm) -elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64") - SET(LIBUNWIND_COMPONENTS ${LIBUNWIND_COMPONENTS} unwind-x86_64) -elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$") - SET(LIBUNWIND_COMPONENTS ${LIBUNWIND_COMPONENTS} unwind-x86) -endif() - - message(STATUS "Looking for libunwind:") -# Let's assume we have it, and invalidate if parts are missing +# Let's assume we have it, and invalidate if parts are missing SET(HAVE_LIBUNWIND 1) # # Search for the header file -# +# find_path(PATH_LIBUNWIND_H "libunwind.h" HINTS @@ -56,7 +46,7 @@ find_path(PATH_LIBUNWIND_H "libunwind.h" if(PATH_LIBUNWIND_H) string(REGEX REPLACE "/libunwind.h" "" PATH_LIBUNWIND_H "${PATH_LIBUNWIND_H}") message(" Found libunwind.h in ${PATH_LIBUNWIND_H}") - include_directories(${PATH_LIBUNWIND_H}) + include_directories(${PATH_LIBUNWIND_H}) else() message(" NOT FOUND libunwind.h") SET(HAVE_LIBUNWIND 0) @@ -80,7 +70,7 @@ foreach(component ${LIBUNWIND_COMPONENTS}) string(REGEX REPLACE "/lib${component}.*[.]${LIB_EXE}$" "" PATH_LIBUNWIND_LIB_${component} "${PATH_LIBUNWIND_LIB_${component}}") message(" Found lib${component}.${LIB_EXE} in ${PATH_LIBUNWIND_LIB_${component}}") link_directories(${PATH_LIBUNWIND_LIB_${component}}) - + if(${component} STREQUAL "unwind" AND APPLE) # Apple forbids to link directly against its libunwind implementation # So let's comply to that stupid restriction and link against the System framework @@ -100,7 +90,7 @@ unset(LIBUNWIND_COMPONENTS) # # Conclude and cleanup -# +# if(HAVE_LIBUNWIND) message(STATUS "Dependencies induced by libunwind: ${LIBUNWIND_LIBRARIES}") else()