summaryrefslogtreecommitdiffstats
path: root/project/cmake/scripts/linux/macros.cmake
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2016-11-24 21:27:41 +0100
committermanuel <manuel@mausz.at>2016-11-24 21:27:41 +0100
commit8cdf8dec703d882b46ca50a769fabb95ffc48e2c (patch)
treef7fe8233508f79d3dc94f8f445ce6342e7dfbdbb /project/cmake/scripts/linux/macros.cmake
parent5823b05feb29a59510c32a9c28ca18b50b9b6399 (diff)
downloadkodi-pvr-build-8cdf8dec703d882b46ca50a769fabb95ffc48e2c.tar.gz
kodi-pvr-build-8cdf8dec703d882b46ca50a769fabb95ffc48e2c.tar.bz2
kodi-pvr-build-8cdf8dec703d882b46ca50a769fabb95ffc48e2c.zip
sync with upstream
Diffstat (limited to 'project/cmake/scripts/linux/macros.cmake')
-rw-r--r--project/cmake/scripts/linux/macros.cmake79
1 files changed, 0 insertions, 79 deletions
diff --git a/project/cmake/scripts/linux/macros.cmake b/project/cmake/scripts/linux/macros.cmake
deleted file mode 100644
index 7453a1c..0000000
--- a/project/cmake/scripts/linux/macros.cmake
+++ /dev/null
@@ -1,79 +0,0 @@
1function(core_link_library lib wraplib)
2 set(export -Wl,--unresolved-symbols=ignore-all
3 `cat ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cores/dll-loader/exports/wrapper.def`
4 ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cores/dll-loader/exports/CMakeFiles/wrapper.dir/wrapper.c.o)
5 set(check_arg "")
6 if(TARGET ${lib})
7 set(target ${lib})
8 set(link_lib ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/${lib}/${lib}.a)
9 set(check_arg ${ARGV2})
10 set(data_arg ${ARGV3})
11 else()
12 set(target ${ARGV2})
13 set(link_lib ${lib})
14 set(check_arg ${ARGV3})
15 set(data_arg ${ARGV4})
16 endif()
17 if(check_arg STREQUAL export)
18 set(export ${export}
19 -Wl,--version-script=${ARGV3})
20 elseif(check_arg STREQUAL nowrap)
21 set(export ${data_arg})
22 elseif(check_arg STREQUAL extras)
23 foreach(arg ${data_arg})
24 list(APPEND export ${arg})
25 endforeach()
26 endif()
27 get_filename_component(dir ${wraplib} PATH)
28 add_custom_command(OUTPUT ${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX}
29 COMMAND cmake -E make_directory ${dir}
30 COMMAND ${CMAKE_C_COMPILER}
31 ARGS -Wl,--whole-archive
32 ${link_lib}
33 -Wl,--no-whole-archive -lm
34 -shared -o ${CMAKE_BINARY_DIR}/${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX}
35 ${export}
36 DEPENDS ${target} wrapper.def wrapper)
37 list(APPEND WRAP_FILES ${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX})
38 set(WRAP_FILES ${WRAP_FILES} PARENT_SCOPE)
39endfunction()
40
41function(find_soname lib)
42 cmake_parse_arguments(arg "REQUIRED" "" "" ${ARGN})
43
44 string(TOLOWER ${lib} liblow)
45 if(${lib}_LDFLAGS)
46 set(link_lib "${${lib}_LDFLAGS}")
47 else()
48 if(IS_ABSOLUTE "${${lib}_LIBRARIES}")
49 set(link_lib "${${lib}_LIBRARIES}")
50 else()
51 set(link_lib -l${${lib}_LIBRARIES})
52 endif()
53 endif()
54 execute_process(COMMAND ${CMAKE_C_COMPILER} -nostdlib -o /dev/null -Wl,-M ${link_lib}
55 COMMAND grep LOAD.*${liblow}
56 ERROR_QUIET
57 OUTPUT_VARIABLE ${lib}_FILENAME)
58 string(REPLACE "LOAD " "" ${lib}_FILENAME "${${lib}_FILENAME}")
59 string(STRIP "${${lib}_FILENAME}" ${lib}_FILENAME)
60 if(NOT ${lib}_FILENAME)
61 execute_process(COMMAND ${CMAKE_C_COMPILER} -nostdlib -o /dev/null -Wl,-t ${link_lib}
62 OUTPUT_QUIET
63 ERROR_VARIABLE _TMP_FILENAME)
64 string(REGEX MATCH ".*lib${liblow}.so" ${lib}_FILENAME ${_TMP_FILENAME})
65 endif()
66 if(${lib}_FILENAME)
67 execute_process(COMMAND objdump -p ${${lib}_FILENAME}
68 COMMAND grep SONAME.*${liblow}
69 ERROR_QUIET
70 OUTPUT_VARIABLE ${lib}_SONAME)
71 string(REPLACE "SONAME " "" ${lib}_SONAME ${${lib}_SONAME})
72 string(STRIP ${${lib}_SONAME} ${lib}_SONAME)
73 message(STATUS "${lib} soname: ${${lib}_SONAME}")
74 set(${lib}_SONAME ${${lib}_SONAME} PARENT_SCOPE)
75 endif()
76 if(arg_REQUIRED AND NOT ${lib}_SONAME)
77 message(FATAL_ERROR "Could not find dynamically loadable library ${lib}")
78 endif()
79endfunction()