Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines for 2022.
[simgrid.git] / tools / cmake / Modules / FindLibunwind.cmake
index 8b6dbd3..f636430 100644 (file)
@@ -1,6 +1,6 @@
 # Search for libunwind and components, both includes and libraries
 #
-# Copyright (C) 2003-2018 The SimGrid Team.
+# Copyright (C) 2003-2022 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
@@ -88,7 +78,7 @@ foreach(component ${LIBUNWIND_COMPONENTS})
     else()
         SET(LIBUNWIND_LIBRARIES "${LIBUNWIND_LIBRARIES} -l${component}")
     endif()
-       
+
   else()
     message("   Looking for lib${component}.${LIB_EXE} - not found")
     SET(HAVE_LIBUNWIND 0)
@@ -100,7 +90,7 @@ unset(LIBUNWIND_COMPONENTS)
 
 #
 # Conclude and cleanup
-# 
+#
 if(HAVE_LIBUNWIND)
   message(STATUS "Dependencies induced by libunwind: ${LIBUNWIND_LIBRARIES}")
 else()