blob: fc8b4036dfedb34986f1f2ab54b5fc3971fa48af (
plain)
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
50
51
52
53
54
55
56
57
58
59
60
61
|
# handle target platforms
function(check_target_platform dir target_platform build)
# param[in] dir path/directory of the addon/dependency
# param[in] target_platform target platform of the build
# param[out] build Result whether the addon/dependency should be built for the specified target platform
set(${build} FALSE)
# check if the given directory exists and contains a platforms.txt
if(EXISTS ${dir} AND EXISTS ${dir}/platforms.txt)
# get all the specified platforms
file(STRINGS ${dir}/platforms.txt platforms)
separate_arguments(platforms)
# check if the addon/dependency should be built for the current platform
foreach(platform ${platforms})
if(${platform} STREQUAL "all" OR ${platform} STREQUAL ${target_platform})
set(${build} TRUE)
else()
# check if the platform is defined as "!<platform>"
string(SUBSTRING ${platform} 0 1 platform_first)
if(${platform_first} STREQUAL "!")
# extract the platform
string(LENGTH ${platform} platform_length)
MATH(EXPR platform_length "${platform_length} - 1")
string(SUBSTRING ${platform} 1 ${platform_length} platform)
# check if the current platform does not match the extracted platform
if (NOT ${platform} STREQUAL ${target_platform})
set(${build} TRUE)
endif()
endif()
endif()
endforeach()
else()
set(${build} TRUE)
endif()
# make the ${build} variable available to the calling script
set(${build} "${${build}}" PARENT_SCOPE)
endfunction()
function(check_install_permissions install_dir have_perms)
# param[in] install_dir directory to check for write permissions
# param[out] have_perms wether we have permissions to install to install_dir
set(${have_perms} TRUE)
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${install_dir}/lib/kodi
COMMAND ${CMAKE_COMMAND} -E make_directory ${install_dir}/share/kodi
COMMAND ${CMAKE_COMMAND} -E touch ${install_dir}/lib/kodi/.cmake-inst-test ${install_dir}/share/kodi/.cmake-inst-test
RESULT_VARIABLE permtest)
if(${permtest} GREATER 0)
message(STATUS "check_install_permissions: ${permtest}")
set(${have_perms} FALSE)
endif()
set(${have_perms} "${${have_perms}}" PARENT_SCOPE)
if(EXISTS ${install_dir}/lib/kodi/.cmake-inst-test OR EXISTS ${install_dir}/share/kodi/.cmake-inst-test)
file(REMOVE ${install_dir}/lib/kodi/.cmake-inst-test ${install_dir}/share/kodi/.cmake-inst-test)
endif()
endfunction()
|