{"size": 1415, "ext": "scrbl", "max_stars_repo_path": "pkgs/racket-doc/scribblings/raco/exe-dylib-path.scrbl", "max_stars_repo_name": "lkh01/racket", "max_stars_repo_stars_event_min_datetime": "2018-07-29T04:13:52.000Z", "max_stars_repo_stars_event_max_datetime": "2022-02-14T16:11:17.000Z", "max_issues_repo_path": "pkgs/racket-doc/scribblings/raco/exe-dylib-path.scrbl", "max_issues_repo_name": "lkh01/racket", "max_issues_repo_issues_event_min_datetime": "2017-08-25T20:26:37.000Z", "max_issues_repo_issues_event_max_datetime": "2022-02-26T17:48:40.000Z", "max_forks_repo_path": "pkgs/racket-doc/scribblings/raco/exe-dylib-path.scrbl", "max_forks_repo_name": "lkh01/racket", "max_forks_repo_forks_event_min_datetime": "2016-04-25T11:47:57.000Z", "max_forks_repo_forks_event_max_datetime": "2017-05-09T14:52:48.000Z"}
{"max_stars_count": 10, "max_issues_count": 15, "max_forks_count": 3, "avg_line_length": 38.2432432432, "max_line_length": 72, "alphanum_fraction": 0.6749116608}
#lang scribble/manual
@(require "common.rkt"
          (for-label racket/base
                     racket/contract
                     compiler/exe-dylib-path))

@title[#:tag "exe-dylib-path"]{Mac OS Dynamic Library Paths}

@defmodule[compiler/exe-dylib-path]{The
@racketmodname[compiler/exe-dylib-path] library provides functions for
reading and adjusting dynamic-library references in a Mac OS
executable.}

@history[#:added "6.3"]

@defproc[(find-matching-library-path [exe-path path-string?]
                                     [library-str string?])
         (or/c #f string?)]{

Searches dynamic-linking information in @racket[exe-path] for a
library reference whose name includes @racket[library-str] and returns
the executable's path to the library for the first match. If no match is
found, the result is @racket[#f].}

@defproc[(update-matching-library-path [exe-path path-string?]
                                       [library-str string?]
                                       [library-path-str string?])
         void?]{

Searches dynamic-linking information in @racket[exe-path] for each
library reference whose name includes @racket[library-str] and replaces
the executable's path to that library with @racket[library-path-str].

A single match is expected, and the update assumes enough space for
the new path, perhaps because the executable is linked with
@Flag{headerpad_max_install_names}.}
