this repo has no description
at fixPythonPipStalling 50 lines 2.3 kB view raw
1 2function(dsym target) 3 cmake_parse_arguments(DSYM "EXCLUDE_FROM_ALL" "" "" ${ARGN}) 4 string(TOLOWER "${CMAKE_BUILD_TYPE}" build_type) 5 6 if (DSYM_EXCLUDE_FROM_ALL) 7 set(EXCLUDE_FROM_ALL_ARG "EXCLUDE_FROM_ALL") 8 else() 9 set(EXCLUDE_FROM_ALL_ARG "") 10 endif() 11 12 if (DSYMUTIL_EXE AND build_type MATCHES debug) 13 14 add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${target}.dSYM" DEPENDS "${target}" COMMAND ${CMAKE_COMMAND} -E env 15 "PATH='${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc:$ENV{PATH}'" 16 "${DSYMUTIL_EXE}" "-flat" "-o" "${target}.dSYM" "$<TARGET_FILE:${target}>") 17 18 add_custom_target("${target}-dSYM" ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${target}.dSYM" getuuid lipo) 19 20 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${target}.dSYM" DESTINATION "${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Caches/dsym/files" ${EXCLUDE_FROM_ALL_ARG}) 21 install(DIRECTORY DESTINATION "${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Caches/dsym/uuid" ${EXCLUDE_FROM_ALL_ARG}) 22 23 install(CODE "execute_process(COMMAND \"${CMAKE_BINARY_DIR}/src/buildtools/getuuid\" \"${CMAKE_CURRENT_BINARY_DIR}/${target}.dSYM\" RESULT_VARIABLE getuuid_result OUTPUT_VARIABLE macho_uuid) 24 25 if (NOT \${getuuid_result} EQUAL 0) 26 message(WARNING \"Cannot determine UUID of ${target}\") 27 else() 28 # message(STATUS \"Installing dsym for ${target}\") 29 foreach (uuid \${macho_uuid}) 30 # message(STATUS \" UUID \${uuid}\") 31 32 execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink 33 \"../files/${target}.dSYM\" 34 \$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Caches/dsym/uuid/\${uuid}.dSYM) 35 endforeach (uuid) 36 endif() 37 " ${EXCLUDE_FROM_ALL_ARG}) 38 endif () 39 40endfunction(dsym) 41 42function(FindDsymutil) 43 # llvm-dsymutil-4.0 is not listed, because it's very buggy 44 find_program(DSYMUTIL_EXE NAMES "llvm-dsymutil" "dsymutil" "dsymutil-7" "llvm-dsymutil-7.0" "llvm-dsymutil-6.0" "llvm-dsymutil-5.0" "llvm-dsymutil-3.9" "llvm-dsymutil-3.8" "llvm-dsymutil-3.7" "dsymutil-10 dsymutil-11 dsymutil-12 dsymutil-13 dsymutil-14 dsymutil-15 dsymutil-16") 45 if (DSYMUTIL_EXE) 46 message(STATUS "Found dsymutil: ${DSYMUTIL_EXE}") 47 else (DSYMUTIL_EXE) 48 message(WARNING "Cannot find llvm-dsymutil, will not produce debug information") 49 endif (DSYMUTIL_EXE) 50endfunction(FindDsymutil)