[xbuild] GetReferenceAssemblyPaths - add missing license header.
[mono.git] / man / xbuild.1
index c419e9acbf4ad4748a3461d551299f1ee2b81ddb..7e69a2d0484423ab0fc1950b9d23474dea5690b9 100644 (file)
@@ -23,6 +23,15 @@ Set or override project properties
 .B \//logger:<logger>
 Custom logger to log build events
 .TP
+.B \//toolsversion:version , /tv:version
+Specify the toolset version to use.
+
+Eg. /tv:4.0
+    This would cause 4.0 version of the Microsoft.Common.targets (among others) to be used. This overrides
+    the value specified in a project file.
+
+Valid values: 2.0, 3.0, 3.5 and 4.0
+.TP
 .B \//verbosity:<level>
 Logger verbosity level : quiet, minimal, normal, detailed, diagnostic
 .TP
@@ -65,14 +74,43 @@ to $prefix/lib/mono/xbuild . When used in Import, like:
 xbuild tries various values for the msbuild property $(MSBuildExtensionsPath), in order:
 
   1. Paths specified in the environment variable $MSBuildExtensionsPath.
-  2. $XDG_CONFIG_HOME/xbuild/tasks (or Environment.SpecialFolder.ApplicationData)
-  3. $prefix/lib/mono/xbuild (default location)
+  2. /Library/Frameworks/Mono.framework/External/xbuild on Mac OSX.
+  3. $XDG_CONFIG_HOME/xbuild/tasks (or Environment.SpecialFolder.ApplicationData)
+  4. $prefix/lib/mono/xbuild (default location)
 
 Anywhere else in the project files, $(MSBuildExtensionsPath) will always resolve to the default
 location. This is a xbuild-only feature.
 This is also applicable for the properties $(MSBuildExtensionsPath32) and $(MSBuildExtensionsPath64),
 and the environment variables have the corresponding names - MSBuildExtensionsPath32/64 .
 .TP
+.I "XBUILD_FRAMEWORK_FOLDERS_PATH"
+With ToolsVersion 4.0, projects can target arbitrary frameworks referenced by TargetFrameworkMoniker,
+which is of the format:
+
+  Identifier,Version=<version>[,Profile=<profile>]
+
+Eg. ".NETFramework,Version=v4.0"
+
+The 3 parts of the moniker are given by the msbuild properties:
+
+  $(TargetFrameworkIdentifier), $(TargetFrameworkVersion) and $(TargetFrameworkProfile)
+
+This moniker maps to a framework description file on disk:
+
+  <framework_root>/Identifier/Version/[Profile]/RedistList/FrameworkList.xml
+
+Framework root here is configurable and is resolved in the following order:
+
+.nf
+  1. Paths specified in the environment variable $XBUILD_FRAMEWORK_FOLDERS_PATH
+  2. /Library/Frameworks/Mono.framework/External/xbuild-frameworks on Mac OSX.
+  3. MSBuild property $(TargetFrameworkRoot)
+  4. $prefix/lib/mono/xbuild-frameworks (default location)
+.fi
+
+XBuild tries the paths given above, in order, till it finds a FrameworkList.xml for the moniker.
+Running with /v:detailed or higher verbosity will show the various paths that it tries.
+.TP
 .I "XBUILD_COLORS"
 If this variable is set, it contains a string of the form
 "type=foreground,type=.." that specifies which color to use to display
@@ -102,6 +140,10 @@ For example, you could set this variable from your shell:
 You can disable the built-in color scheme by setting this variable to
 "disable".
 
+.SH NOTES
+On Mac OSX, for locating pkg-config (.pc) files, xbuild additionally
+looks in "/Library/Frameworks/Mono.framework/External/pkgconfig" .
+
 .SH SEE ALSO
 .BR mono(1), mcs(1)
 .SH COPYRIGHT