1a765ffcef39dc37bd6d7e597286fd76fbeb1b9faChandler Carruth# Build for the runtime interception helper library.
2a765ffcef39dc37bd6d7e597286fd76fbeb1b9faChandler Carruth
3a765ffcef39dc37bd6d7e597286fd76fbeb1b9faChandler Carruthset(INTERCEPTION_SOURCES
4a765ffcef39dc37bd6d7e597286fd76fbeb1b9faChandler Carruth  interception_linux.cc
5a765ffcef39dc37bd6d7e597286fd76fbeb1b9faChandler Carruth  interception_mac.cc
6a765ffcef39dc37bd6d7e597286fd76fbeb1b9faChandler Carruth  interception_win.cc
765e5090c3ca13ebf1061a7043449d1b3561daa6aEvgeniy Stepanov  interception_type_test.cc
8a765ffcef39dc37bd6d7e597286fd76fbeb1b9faChandler Carruth  )
9a765ffcef39dc37bd6d7e597286fd76fbeb1b9faChandler Carruth
10216719b23134b9719bbf3e1de4a7d5d351c21fa8Alexey Samsonovinclude_directories(..)
11216719b23134b9719bbf3e1de4a7d5d351c21fa8Alexey Samsonov
120f7d4a4ad69ad20053d8b78c611853e778bd465aAlexey Samsonovset(INTERCEPTION_CFLAGS ${SANITIZER_COMMON_CFLAGS})
132d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesappend_no_rtti_flag(INTERCEPTION_CFLAGS)
14a765ffcef39dc37bd6d7e597286fd76fbeb1b9faChandler Carruth
15fe51abb4949ad9976168bf53edb52c20016b9a0dAlexey Samsonovif(APPLE)
16fe51abb4949ad9976168bf53edb52c20016b9a0dAlexey Samsonov  # Build universal binary on APPLE.
1749496747758bf44163768ce3e07e40c8f95ccba9Alexander Potapenko  foreach(os ${SANITIZER_COMMON_SUPPORTED_DARWIN_OS})
1849496747758bf44163768ce3e07e40c8f95ccba9Alexander Potapenko    add_compiler_rt_darwin_object_library(RTInterception ${os}
1949496747758bf44163768ce3e07e40c8f95ccba9Alexander Potapenko      ARCH ${SANITIZER_COMMON_SUPPORTED_ARCH}
2049496747758bf44163768ce3e07e40c8f95ccba9Alexander Potapenko      SOURCES ${INTERCEPTION_SOURCES}
2149496747758bf44163768ce3e07e40c8f95ccba9Alexander Potapenko      CFLAGS ${INTERCEPTION_CFLAGS})
2249496747758bf44163768ce3e07e40c8f95ccba9Alexander Potapenko  endforeach()
23392c50d4a56557a51a353509c665188aef115f74Alexey Samsonovelseif(ANDROID)
24392c50d4a56557a51a353509c665188aef115f74Alexey Samsonov  add_library(RTInterception.arm.android OBJECT ${INTERCEPTION_SOURCES})
25392c50d4a56557a51a353509c665188aef115f74Alexey Samsonov  set_target_compile_flags(RTInterception.arm.android
26392c50d4a56557a51a353509c665188aef115f74Alexey Samsonov    ${INTERCEPTION_CFLAGS})
27fe51abb4949ad9976168bf53edb52c20016b9a0dAlexey Samsonovelse()
28fe51abb4949ad9976168bf53edb52c20016b9a0dAlexey Samsonov  # Otherwise, build separate libraries for each target.
2943b4b9c18a7a588a60b9d976391ad8e2f5f9a309Alexey Samsonov  foreach(arch ${SANITIZER_COMMON_SUPPORTED_ARCH})
3043b4b9c18a7a588a60b9d976391ad8e2f5f9a309Alexey Samsonov    add_compiler_rt_object_library(RTInterception ${arch}
31392c50d4a56557a51a353509c665188aef115f74Alexey Samsonov      SOURCES ${INTERCEPTION_SOURCES} CFLAGS ${INTERCEPTION_CFLAGS})
3243b4b9c18a7a588a60b9d976391ad8e2f5f9a309Alexey Samsonov  endforeach()
33a765ffcef39dc37bd6d7e597286fd76fbeb1b9faChandler Carruthendif()
34