From 08d47b402565e5f3728eafd4923163095c1ef073 Mon Sep 17 00:00:00 2001 From: Wonyoung Choi Date: Mon, 23 Oct 2017 14:49:23 +0900 Subject: [PATCH] Add build.cmd for windows environment Change-Id: I004cbfefff019ca62742db7f0ff72b008e5b22f6 --- build.cmd | 51 ++++++++++++++++++++++++++++++++++++ build.sh | 78 ++++++++++++++++++------------------------------------- build/build.proj | 2 +- tools/NuGet.exe | Bin 4 files changed, 77 insertions(+), 54 deletions(-) create mode 100644 build.cmd mode change 100644 => 100755 tools/NuGet.exe diff --git a/build.cmd b/build.cmd new file mode 100644 index 0000000..2862a21 --- /dev/null +++ b/build.cmd @@ -0,0 +1,51 @@ +@if not defined _echo @echo off +setlocal + +if /I [%1] == [] goto Usage +if /I [%1] == [build] goto ModuleBuild +if /I [%1] == [full] goto FullBuild +if /I [%1] == [dummy] goto DummyBuild +if /I [%1] == [pack] goto Pack +if /I [%1] == [clean] goto Clean + +goto :EOF + +:Usage +echo Usage: %0 [command] [args] +echo Commands: +echo build [module] Build a specific module +echo full Build all modules in src/ directory +echo dummy Generate dummy assemblies of all modules +echo pack [version] Make a NuGet package with build artifacts +echo clean Clean all artifacts +echo. +goto :EOF + +:ModuleBuild +if /I [%2] == [] ( + echo No module specified. + exit /b !ERRORLEVEL! +) +call dotnet msbuild %~dp0build\build.proj /t:build /p:Project=%2 +goto :EOF + +:FullBuild +call dotnet msbuild %~dp0build\build.proj /t:build +goto :EOF + +:DummyBuild +call dotnet build %~dp0build\build.dummy.csproj +goto :EOF + +:Pack +set NUGET_VERSION_OPT= +if /I not [%2] == [] set NUGET_VERSION_OPT=-Version %2 +set OUTDIR=%~dp0Artifacts +set NUGET_CMD=%~dp0tools\NuGet.exe +%NUGET_CMD% pack %~dp0pkg\Tizen.NET.Private.nuspec -Symbols -NoPackageAnalysis %NUGET_VERSION_OPT% -BasePath %~dp0 -OutputDirectory %OUTDIR% +%NUGET_CMD% pack %~dp0pkg\Tizen.NET.nuspec -Symbols -NoPackageAnalysis %NUGET_VERSION_OPT% -BasePath %~dp0 -OutputDirectory %OUTDIR% +goto :EOF + +:Clean +call dotnet msbuild %~dp0build\build.proj /t:clean +goto :EOF diff --git a/build.sh b/build.sh index 66ecec2..27d8a49 100755 --- a/build.sh +++ b/build.sh @@ -3,33 +3,24 @@ SCRIPT_FILE=$(readlink -f $0) SCRIPT_DIR=$(dirname $SCRIPT_FILE) -# Properties OUTDIR=$SCRIPT_DIR/Artifacts NUGET_CMD="mono $SCRIPT_DIR/tools/NuGet.exe" - RETRY_CMD="$SCRIPT_DIR/tools/retry.sh" TIMEOUT_CMD="$SCRIPT_DIR/tools/timeout.sh" - DOTNET_CMD="$RETRY_CMD $TIMEOUT_CMD 600 dotnet" RUN_BUILD="$DOTNET_CMD msbuild $SCRIPT_DIR/build/build.proj" RUN_BUILD_DUMMY="$DOTNET_CMD build $SCRIPT_DIR/build/build.dummy.csproj" - usage() { - echo "Usage: $0 [options] [args]" - echo " Options:" - echo " -h, --help Show this usages message" - echo " -b, --build [module] Build a module" - echo " -f, --full Build all modules in src/ directory" - echo " -d, --dummy Build dummy modules" - echo " -p, --pack [version] Make nuget packages" - echo " -c, --clean Clean all artifacts" -} - -cmd_clean() { - $RUN_BUILD /t:clean + echo "Usage: %0 [command] [args]" + echo "Commands:" + echo " build [module] Build a specific module" + echo " full Build all modules in src/ directory" + echo " dummy Generate dummy assemblies of all modules" + echo " pack [version] Make a NuGet package with build artifacts" + echo " clean Clean all artifacts" } cmd_build() { @@ -50,6 +41,13 @@ cmd_full_build() { $RUN_BUILD /t:build $NUGET_SOURCE_OPT } +cmd_dummy_build() { + if [ -d /nuget ]; then + NUGET_SOURCE_OPT="/p:RestoreSources=/nuget" + fi + $RUN_BUILD_DUMMY $NUGET_SOURCE_OPT +} + cmd_pack() { if [ -n "$1" ]; then NUGET_VERSION_OPT="-Version $1" @@ -59,42 +57,16 @@ cmd_pack() { $NUGET_CMD pack $SCRIPT_DIR/pkg/Tizen.NET.nuspec -Symbols -NoPackageAnalysis $NUGET_VERSION_OPT -BasePath $SCRIPT_DIR -OutputDirectory $OUTDIR } -cmd_dummy_build() { - if [ -d /nuget ]; then - NUGET_SOURCE_OPT="/p:RestoreSources=/nuget" - fi - $RUN_BUILD_DUMMY $NUGET_SOURCE_OPT +cmd_clean() { + $RUN_BUILD /t:clean } -OPTS=`getopt -o hcbfpd --long help,clean,build,full,pack,dummy -n 'build' -- "$@"` -if [ $? != 0 ] ; then echo "Failed parsing options." >&2 ; usage; exit 1 ; fi -eval set -- "$OPTS" - -FLAG_HELP=false -FLAG_FULL=false -FLAG_BUILD=false -FLAG_CLEAN=false -FLAG_DUMMY=false -FLAG_PACK=false - -while true; do - case "$1" in - -h|--help) FLAG_HELP=true; shift ;; - -b|--build) FLAG_BUILD=true; shift ;; - -f|--full) FLAG_FULL=true; shift ;; - -d|--dummy) FLAG_DUMMY=true; shift ;; - -p|--pack) FLAG_PACK=true; shift ;; - -c|--clean) FLAG_CLEAN=true; shift ;; - --) shift; break ;; - *) break ;; - esac -done - -if $FLAG_HELP; then usage; exit 0; fi -if $FLAG_CLEAN; then cmd_clean; exit 0; fi -if $FLAG_FULL; then cmd_full_build; exit 0; fi -if $FLAG_BUILD; then cmd_build $@; exit 0; fi -if $FLAG_PACK; then cmd_pack $@; exit 0; fi -if $FLAG_DUMMY; then cmd_dummy_build; exit 0; fi - -usage; +cmd=$1; shift; +case "$cmd" in + build|--build|-b) cmd_build $@ ;; + full |--full |-f) cmd_full_build $@ ;; + dummy|--dummy|-d) cmd_dummy_build $@ ;; + pack |--pack |-p) cmd_pack $@ ;; + clean|--clean|-c) cmd_clean $@ ;; + *) usage ;; +esac diff --git a/build/build.proj b/build/build.proj index 58e76f8..fec1d82 100644 --- a/build/build.proj +++ b/build/build.proj @@ -24,7 +24,7 @@ Delete all artifacts, including the Artifacts/ directory and the obj/ directories for all projects. --> - + diff --git a/tools/NuGet.exe b/tools/NuGet.exe old mode 100644 new mode 100755 -- 2.7.4