You can not select more than 25 topics
Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- function(changerpath target_so target_name link_sos)
- set(depend_so "")
- foreach(link_so ${link_sos})
- set(some-file "${CMAKE_SOURCE_DIR}/build/${target_name}_${link_so}.txt")
- set(some-file1 "${CMAKE_SOURCE_DIR}/build/${target_name}_${link_so}1.txt")
- set(some-file2 "${CMAKE_SOURCE_DIR}/build/${target_name}_${link_so}2.txt")
- add_custom_command(
- OUTPUT
- ${some-file}
- COMMAND
- otool -L ${target_so} | tail -n +2 | grep ${link_so} | head -n1 > ${some-file}
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/build"
- VERBATIM
- )
- add_custom_command(
- OUTPUT
- ${some-file1}
- COMMAND
- cat ${some-file} | cut -d " " -f 1 | sed -E "s/^.//g" > ${some-file1}
- DEPENDS
- ${some-file}
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/build"
- VERBATIM
- )
- add_custom_command(
- OUTPUT
- ${some-file2}
- COMMAND
- awk -F "/" "{print $NF}" ${some-file1} > ${some-file2}
- DEPENDS
- ${some-file1}
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/build"
- VERBATIM
- )
- add_custom_target(
- link_${target_name}_${link_so} ALL
- COMMAND install_name_tool -change `cat ${some-file1}` @rpath/`cat ${some-file2}` ${target_so}
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/build"
- DEPENDS ${target_so} ${some-file1} ${some-file2}
- COMMENT "install tool name"
- )
- add_custom_command(
- TARGET link_${target_name}_${link_so}
- POST_BUILD
- COMMAND rm ${some-file} ${some-file1} ${some-file2}
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/build"
- VERBATIM
- )
- if(depend_so)
- add_dependencies(link_${target_name}_${link_so} link_${target_name}_${depend_so})
- endif()
- set(depend_so ${link_so})
- endforeach()
- endfunction()
|