doAtomicSymLinks
Function parameters
Parameters
- step:*Step
- output_path:[]const u8
- filename_major_only:[]const u8
- filename_name_only:[]const u8
Type definitions in this namespace
Types
Functions in this namespace
Functions
- installHeader
- Marks the specified header for installation alongside this artifact.
- installHeadersDirectory
- Marks headers from the specified directory for installation alongside this artifact.
- installConfigHeader
- Marks the specified config header for installation alongside this artifact.
- installLibraryHeaders
- Forwards all headers marked for installation from `lib` to this artifact.
- dependsOnSystemLibrary
- Returns whether the library, executable, or object depends on a particular system library.
- linkLibC
- Deprecated; use `compile.root_module.link_libc = true` instead.
- linkLibCpp
- Deprecated; use `compile.root_module.link_libcpp = true` instead.
- linkSystemLibrary
- Deprecated; use `compile.root_module.linkSystemLibrary(name, .{})` instead.
- linkSystemLibrary2
- Deprecated; use `compile.root_module.linkSystemLibrary(name, options)` instead.
- linkFramework
- Deprecated; use `c.root_module.linkFramework(name, .{})` instead.
- addCSourceFiles
- Deprecated; use `compile.root_module.addCSourceFiles(options)` instead.
- addCSourceFile
- Deprecated; use `compile.root_module.addCSourceFile(source)` instead.
- addWin32ResourceFile
- Deprecated; use `compile.root_module.addWin32ResourceFile(source)` instead.
- getEmittedBinDirectory
- Returns the path to the directory that contains the emitted binary file.
- getEmittedBin
- Returns the path to the generated executable, library or object file.
- getEmittedImplib
- Returns the path to the generated import library.
- getEmittedH
- Returns the path to the generated header file.
- getEmittedPdb
- Returns the generated PDB file.
- getEmittedDocs
- Returns the path to the generated documentation directory.
- getEmittedAsm
- Returns the path to the generated assembly code.
- getEmittedLlvmIr
- Returns the path to the generated LLVM IR.
- getEmittedLlvmBc
- Returns the path to the generated LLVM BC.
- addAssemblyFile
- Deprecated; use `compile.root_module.addAssemblyFile(source)` instead.
- addObjectFile
- Deprecated; use `compile.root_module.addObjectFile(source)` instead.
- addObject
- Deprecated; use `compile.root_module.addObject(object)` instead.
- linkLibrary
- Deprecated; use `compile.root_module.linkLibrary(library)` instead.
- addAfterIncludePath
- Deprecated; use `compile.root_module.addAfterIncludePath(lazy_path)` instead.
- addSystemIncludePath
- Deprecated; use `compile.root_module.addSystemIncludePath(lazy_path)` instead.
- addIncludePath
- Deprecated; use `compile.root_module.addIncludePath(lazy_path)` instead.
- addConfigHeader
- Deprecated; use `compile.root_module.addConfigHeader(config_header)` instead.
- addEmbedPath
- Deprecated; use `compile.root_module.addEmbedPath(lazy_path)` instead.
- addLibraryPath
- Deprecated; use `compile.root_module.addLibraryPath(directory_path)` instead.
- addRPath
- Deprecated; use `compile.root_module.addRPath(directory_path)` instead.
- addSystemFrameworkPath
- Deprecated; use `compile.root_module.addSystemFrameworkPath(directory_path)` instead.
- addFrameworkPath
- Deprecated; use `compile.root_module.addFrameworkPath(directory_path)` instead.
- getCompileDependencies
- Return the full set of `Step.Compile` which `start` depends on, recursively.
= .compile
Values
- base_id
- = .compile
Source
Implementation
pub fn doAtomicSymLinks(
step: *Step,
output_path: []const u8,
filename_major_only: []const u8,
filename_name_only: []const u8,
) !void {
const b = step.owner;
const out_dir = fs.path.dirname(output_path) orelse ".";
const out_basename = fs.path.basename(output_path);
// sym link for libfoo.so.1 to libfoo.so.1.2.3
const major_only_path = b.pathJoin(&.{ out_dir, filename_major_only });
fs.cwd().atomicSymLink(out_basename, major_only_path, .{}) catch |err| {
return step.fail("unable to symlink {s} -> {s}: {s}", .{
major_only_path, out_basename, @errorName(err),
});
};
// sym link for libfoo.so to libfoo.so.1
const name_only_path = b.pathJoin(&.{ out_dir, filename_name_only });
fs.cwd().atomicSymLink(filename_major_only, name_only_path, .{}) catch |err| {
return step.fail("Unable to symlink {s} -> {s}: {s}", .{
name_only_path, filename_major_only, @errorName(err),
});
};
}