-
Notifications
You must be signed in to change notification settings - Fork 453
/
Copy pathO2DefineRPATH.cmake
47 lines (38 loc) · 1.58 KB
/
O2DefineRPATH.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Copyright 2019-2020 CERN and copyright holders of ALICE O2.
# See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
# All rights not expressly granted are reserved.
#
# This software is distributed under the terms of the GNU General Public
# License v3 (GPL Version 3), copied verbatim in the file "COPYING".
#
# In applying this license CERN does not waive the privileges and immunities
# granted to it by virtue of its status as an Intergovernmental Organization
# or submit itself to any jurisdiction.
include_guard()
include(GNUInstallDirs)
#
# o2_define_rpath defines our RPATH settings
#
function(o2_define_rpath)
if(APPLE)
set(basePoint @loader_path)
else()
set(basePoint $ORIGIN)
endif()
# use, i.e. do not skip, the full RPATH in the _build_ tree
set(CMAKE_SKIP_BUILD_RPATH FALSE PARENT_SCOPE)
# when building, do not use the install RPATH already (will only be used when
# actually installing), unless we are on a Mac (where the install is otherwise
# pretty slow)
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE PARENT_SCOPE)
if(APPLE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE PARENT_SCOPE)
endif()
# add to the install RPATH the (automatically determined) parts of the RPATH
# that point to directories outside the build tree
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE PARENT_SCOPE)
# specify libraries directory relative to binaries one.
file(RELATIVE_PATH relDir ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
set(CMAKE_INSTALL_RPATH ${basePoint} ${basePoint}/${relDir} PARENT_SCOPE)
endfunction()