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   $RUN_BUILD /t:dummy
46 }
47
48 cmd_pack() {
49   VERSION=$1
50   if [ -z "$VERSION" ]; then
51     VERSION=$VERSION_PREFIX.$((10000+$(git rev-list --count HEAD)))
52   fi
53
54   $RUN_BUILD /t:pack /p:Version=$VERSION
55 }
56
57 cmd_clean() {
58   $RUN_BUILD /t:clean
59 }
60
61 cmd=$1; shift;
62 case "$cmd" in
63   build|--build|-b) cmd_build $@ ;;
64   full |--full |-f) cmd_full_build $@ ;;
65   dummy|--dummy|-d) cmd_dummy_build $@ ;;
66   pack |--pack |-p) cmd_pack $@ ;;
67   clean|--clean|-c) cmd_clean $@ ;;
68   *) usage ;;
69 esac