Merge remote-tracking branch 'github/master' into tizen
[platform/core/csapi/tizenfx.git] / build.sh
1 #!/bin/bash
2
3 SCRIPT_FILE=$(readlink -f $0)
4 SCRIPT_DIR=$(dirname $SCRIPT_FILE)
5
6 OUTDIR=$SCRIPT_DIR/Artifacts
7
8 RUN_BUILD="dotnet msbuild $SCRIPT_DIR/build/build.proj /nologo"
9
10 VERSION_PREFIX=6.0.0
11
12 usage() {
13   echo "Usage: $0 [command] [args]"
14   echo "Commands:"
15   echo "    build [module]     Build a specific module"
16   echo "    full               Build all modules in src/ directory"
17   echo "    dummy              Generate dummy assemblies of all modules"
18   echo "    pack [version]     Make a NuGet package with build artifacts"
19   echo "    clean              Clean all artifacts"
20 }
21
22 cmd_build() {
23   if [ -z "$1" ]; then
24     echo "No module specified."
25     exit 1
26   fi
27   if [ -d /nuget ]; then
28     NUGET_SOURCE_OPT="/p:RestoreSources=/nuget"
29   fi
30   PROJECT=$1; shift
31   $RUN_BUILD /t:restore /p:Project=$PROJECT $NUGET_SOURCE_OPT $@
32   $RUN_BUILD /t:build /p:Project=$PROJECT $@
33 }
34
35 cmd_full_build() {
36   if [ -d /nuget ]; then
37     NUGET_SOURCE_OPT="/p:RestoreSources=/nuget"
38   fi
39   $RUN_BUILD /t:clean
40   $RUN_BUILD /t:restore $NUGET_SOURCE_OPT $@
41   $RUN_BUILD /t:build $@
42 }
43
44 cmd_dummy_build() {
45   if [ -d /nuget ]; then
46     NUGET_SOURCE_OPT="/p:RestoreSources=/nuget"
47   fi
48   $RUN_BUILD /t:restore $NUGET_SOURCE_OPT
49   $RUN_BUILD /t:dummy $NUGET_SOURCE_OPT
50 }
51
52 cmd_pack() {
53   VERSION=$1
54   if [ -z "$VERSION" ]; then
55     VERSION=$VERSION_PREFIX.$((10000+$(git rev-list --count HEAD)))
56   fi
57
58   $RUN_BUILD /t:pack /p:Version=$VERSION
59 }
60
61 cmd_clean() {
62   $RUN_BUILD /t:clean
63 }
64
65 cmd=$1; shift;
66 case "$cmd" in
67   build|--build|-b) cmd_build $@ ;;
68   full |--full |-f) cmd_full_build $@ ;;
69   dummy|--dummy|-d) cmd_dummy_build $@ ;;
70   pack |--pack |-p) cmd_pack $@ ;;
71   clean|--clean|-c) cmd_clean $@ ;;
72   *) usage ;;
73 esac