-
Notifications
You must be signed in to change notification settings - Fork 47
/
install-helpers.cmake
49 lines (47 loc) · 1.43 KB
/
install-helpers.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
48
49
# Copyright (C) 2024 INRIA.
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU Lesser General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) any
# later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
# details.
#
# You should have received a copy of the GNU Lesser General Public License along
# with this program. If not, see <https://www.gnu.org/licenses/>.
# .rst:
# ~~~
# .. command:: ADD_INSTALL_TARGET (
# NAME <name>
# COMPONENT <component>)
# ~~~
#
# This function add a custom target named install-<name> that will run cmake
# install for a specific <component>.
#
# :param name: Target name suffix (install-<name>).
#
# :param component: component to install.
function(ADD_INSTALL_TARGET)
set(options)
set(oneValueArgs NAME COMPONENT)
set(multiValueArgs)
cmake_parse_arguments(
ARGS
"${options}"
"${oneValueArgs}"
"${multiValueArgs}"
${ARGN}
)
set(target_name install-${ARGS_NAME})
set(component ${ARGS_COMPONENT})
add_custom_target(
${target_name}
COMMAND
${CMAKE_COMMAND} -DCOMPONENT=${component} -P
${PROJECT_BINARY_DIR}/cmake_install.cmake
)
endfunction()