• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1function(changerpath target_so target_name link_sos)
2    set(depend_so "")
3    foreach(link_so ${link_sos})
4        set(some-file "${CMAKE_SOURCE_DIR}/build/${target_name}_${link_so}.txt")
5        set(some-file1 "${CMAKE_SOURCE_DIR}/build/${target_name}_${link_so}1.txt")
6        set(some-file2 "${CMAKE_SOURCE_DIR}/build/${target_name}_${link_so}2.txt")
7        add_custom_command(
8                OUTPUT
9                ${some-file}
10                COMMAND
11                otool -L ${target_so} | tail -n +2 | grep ${link_so} | head -n1 > ${some-file}
12                WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/build"
13                VERBATIM
14        )
15        add_custom_command(
16                OUTPUT
17                ${some-file1}
18                COMMAND
19                cat ${some-file} | cut -d " " -f 1 | sed -E "s/^.//g" > ${some-file1}
20                DEPENDS
21                ${some-file}
22                WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/build"
23                VERBATIM
24        )
25        add_custom_command(
26                OUTPUT
27                ${some-file2}
28                COMMAND
29                awk -F "/"  "{print $NF}"  ${some-file1} > ${some-file2}
30                DEPENDS
31                ${some-file1}
32                WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/build"
33                VERBATIM
34        )
35        add_custom_target(
36                link_${target_name}_${link_so} ALL
37                COMMAND install_name_tool -change `cat ${some-file1}` @rpath/`cat ${some-file2}` ${target_so}
38                WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/build"
39                DEPENDS ${target_so} ${some-file1} ${some-file2}
40                COMMENT "install tool name"
41        )
42        add_custom_command(
43                TARGET link_${target_name}_${link_so}
44                POST_BUILD
45                COMMAND rm ${some-file} ${some-file1} ${some-file2}
46                WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/build"
47                VERBATIM
48        )
49        if(depend_so)
50            add_dependencies(link_${target_name}_${link_so} link_${target_name}_${depend_so})
51        endif()
52        set(depend_so ${link_so})
53    endforeach()
54endfunction()
55