| ... | @@ -137,7 +137,18 @@ pub const IncludeDir = union(enum) { | ... | @@ -137,7 +137,18 @@ pub const IncludeDir = union(enum) { |
| 137 | }; | 137 | }; |
| 138 | | 138 | |
| 139 | pub const LinkFrameworkOptions = struct { | 139 | pub const LinkFrameworkOptions = struct { |
| | 140 | /// Causes dynamic libraries to be linked regardless of whether they are |
| | 141 | /// actually depended on. When false, dynamic libraries with no referenced |
| | 142 | /// symbols will be omitted by the linker. |
| 140 | needed: bool = false, | 143 | needed: bool = false, |
| | 144 | /// Marks all referenced symbols from this library as weak, meaning that if |
| | 145 | /// a same-named symbol is provided by another compilation unit, instead of |
| | 146 | /// emitting a "duplicate symbol" error, the linker will resolve all |
| | 147 | /// references to the symbol with the strong version. |
| | 148 | /// |
| | 149 | /// When the linker encounters two weak symbols, the chosen one is |
| | 150 | /// determined by the order compilation units are provided to the linker, |
| | 151 | /// priority given to later ones. |
| 141 | weak: bool = false, | 152 | weak: bool = false, |
| 142 | }; | 153 | }; |
| 143 | | 154 | |
| ... | @@ -414,7 +425,18 @@ pub fn iterateDependencies( | ... | @@ -414,7 +425,18 @@ pub fn iterateDependencies( |
| 414 | } | 425 | } |
| 415 | | 426 | |
| 416 | pub const LinkSystemLibraryOptions = struct { | 427 | pub const LinkSystemLibraryOptions = struct { |
| | 428 | /// Causes dynamic libraries to be linked regardless of whether they are |
| | 429 | /// actually depended on. When false, dynamic libraries with no referenced |
| | 430 | /// symbols will be omitted by the linker. |
| 417 | needed: bool = false, | 431 | needed: bool = false, |
| | 432 | /// Marks all referenced symbols from this library as weak, meaning that if |
| | 433 | /// a same-named symbol is provided by another compilation unit, instead of |
| | 434 | /// emitting a "duplicate symbol" error, the linker will resolve all |
| | 435 | /// references to the symbol with the strong version. |
| | 436 | /// |
| | 437 | /// When the linker encounters two weak symbols, the chosen one is |
| | 438 | /// determined by the order compilation units are provided to the linker, |
| | 439 | /// priority given to later ones. |
| 418 | weak: bool = false, | 440 | weak: bool = false, |
| 419 | use_pkg_config: SystemLib.UsePkgConfig = .yes, | 441 | use_pkg_config: SystemLib.UsePkgConfig = .yes, |
| 420 | preferred_link_mode: std.builtin.LinkMode = .dynamic, | 442 | preferred_link_mode: std.builtin.LinkMode = .dynamic, |