Get build and restore options from environment; provide set-quiet target

- see #123
- leaves default build unchanged
- run `build set-quiet default` for a much-quieter build
This commit is contained in:
Doug Bunting 2014-11-08 11:26:05 -08:00
parent ac129c71ac
commit dd5e65eb1d
3 changed files with 17 additions and 8 deletions

View File

@ -11,11 +11,12 @@ configuration=''
*/} */}
default configuration = 'debug' default configuration = 'debug'
default build_options='${E("K_build_options")}'
var projectFolder='${Path.GetDirectoryName(projectFile)}' var projectFolder='${Path.GetDirectoryName(projectFile)}'
var projectName='${Path.GetFileName(projectFolder)}' var projectName='${Path.GetFileName(projectFolder)}'
var projectBin='${Path.Combine(projectFolder, "bin", configuration)}' var projectBin='${Path.Combine(projectFolder, "bin", configuration)}'
directory delete="${projectBin}" directory delete="${projectBin}"
exec program='cmd' commandline='/C kpm build ${projectFolder} --configuration ${configuration}' if='!IsMono' exec program='cmd' commandline='/C kpm build${build_options} ${projectFolder} --configuration ${configuration}' if='!IsMono'
exec program='kpm' commandline='build ${projectFolder} --configuration ${configuration}' if='IsMono' exec program='kpm' commandline='build${build_options} ${projectFolder} --configuration ${configuration}' if='IsMono'
copy sourceDir='${projectBin}' outputDir='${Path.Combine(BUILD_DIR, projectName)}' copy sourceDir='${projectBin}' outputDir='${Path.Combine(BUILD_DIR, projectName)}'

View File

@ -4,5 +4,7 @@ k-restore
Restores nuget packages required for k projects. Downloads and executes k sdk tools. Restores nuget packages required for k projects. Downloads and executes k sdk tools.
*/} */}
exec program='cmd' commandline='/C kpm restore' if='!IsMono' default restore_options='${E("K_build_options")}'
exec program='kpm' commandline='restore' if='IsMono'
exec program='cmd' commandline='/C kpm restore${restore_options}' if='!IsMono'
exec program='kpm' commandline='restore${restore_options}' if='IsMono'

View File

@ -10,7 +10,7 @@ default TARGET_DIR='${Path.Combine(BASE_DIR, "artifacts")}'
default BUILD_DIR='${Path.Combine(TARGET_DIR, "build")}' default BUILD_DIR='${Path.Combine(TARGET_DIR, "build")}'
default TEST_DIR='${Path.Combine(TARGET_DIR, "test")}' default TEST_DIR='${Path.Combine(TARGET_DIR, "test")}'
default Configuration='${E("Configuration")}' default Configuration='${E("Configuration")}'
@{ @{
if (string.IsNullOrEmpty(E("K_BUILD_VERSION"))) if (string.IsNullOrEmpty(E("K_BUILD_VERSION")))
{ {
@ -39,7 +39,7 @@ default Configuration='${E("Configuration")}'
#build-compile target='compile' #build-compile target='compile'
k-build each='var projectFile in Files.Include("src/**/project.json")' configuration='${Configuration}' k-build each='var projectFile in Files.Include("src/**/project.json")' configuration='${Configuration}'
@{ @{
foreach (var nupkg in Files.Include(Path.Combine(BUILD_DIR, "*/*.nupkg"))) foreach (var nupkg in Files.Include(Path.Combine(BUILD_DIR, "*/*.nupkg")))
{ {
File.Copy(nupkg, Path.Combine(BUILD_DIR, Path.GetFileName(nupkg)), true); File.Copy(nupkg, Path.Combine(BUILD_DIR, Path.GetFileName(nupkg)), true);
} }
@ -112,12 +112,18 @@ default Configuration='${E("Configuration")}'
CallTarget("clean-npm-modules"); CallTarget("clean-npm-modules");
} }
} }
#clean-npm-modules if='!IsMono' #clean-npm-modules if='!IsMono'
-// Find all dirs that contain a package.json file -// Find all dirs that contain a package.json file
var npmDirs = '${GetDirectoriesContaining(Directory.GetCurrentDirectory(), "package.json").Select(d => Path.Combine(d, "node_modules"))}' var npmDirs = '${GetDirectoriesContaining(Directory.GetCurrentDirectory(), "package.json").Select(d => Path.Combine(d, "node_modules"))}'
robocopy-delete dir='${npmDir}' each='var npmDir in npmDirs' robocopy-delete dir='${npmDir}' each='var npmDir in npmDirs'
#set-quiet
@{
E("K_build_options"," --quiet");
E("K_restore_options"," --quiet");
}
#stylecop #stylecop
stylecop-setup stylecop-setup
stylecop-run each='var projectFile in Files.Include("src/**/project.json")' stylecop-run each='var projectFile in Files.Include("src/**/project.json")'