3 * Copyright 2001-2004 The Ant-Contrib project
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 package net
.sf
.antcontrib
.cpptasks
.compiler
;
19 import net
.sf
.antcontrib
.cpptasks
.types
.LibraryTypeEnum
;
21 * A linker for executables, and static and dynamic libraries.
23 * @author Adam Murdoch
25 public interface Linker
extends Processor
{
27 * Extracts the significant part of a library name to ensure there aren't
30 String
getLibraryKey(File libname
);
32 * returns the library path for the linker
34 File
[] getLibraryPath();
36 * Returns a set of filename patterns corresponding to library names.
38 * For example, "advapi32" would be expanded to "advapi32.dll" by
39 * DevStudioLinker and to "libadvapi32.a" and "libadvapi32.so" by
43 * array of library names
45 String
[] getLibraryPatterns(String
[] libnames
, LibraryTypeEnum libraryType
);
47 * Gets the linker for the specified link type.
49 * @return appropriate linker or null, will return this if this linker can
50 * handle the specified link type
52 Linker
getLinker(LinkType linkType
);
54 * Returns true if the linker is case-sensitive
56 boolean isCaseSensitive();