[Build] Install files of each module with profile variation (#1902)
authorWonYoung Choi <wy80.choi@samsung.com>
Mon, 10 Aug 2020 00:37:26 +0000 (09:37 +0900)
committerGitHub <noreply@github.com>
Mon, 10 Aug 2020 00:37:26 +0000 (09:37 +0900)
- Add SupportedProfiles property
- Add TizenProfile metadata to None item group
- Remove PlatformFileList.txt : all profile filelist will be auto-generated
- Move preload files to each module
- Remove unused profile packages : common, mobile-emul
- Remove unused dummy package

58 files changed:
build.sh
build/build.proj [deleted file]
build/common.props
build/common.targets
build/directories.props [deleted file]
build/pack.csproj
build/profiles.targets [new file with mode: 0644]
internals/src/Directory.Build.props
packaging/PlatformFileList.txt [deleted file]
packaging/csapi-tizenfx.spec
packaging/csapi-tizenfx.spec.in
packaging/makerid.py
packaging/makespec.sh
pkg/Tizen.NET.API8/design/Tizen.NUI.Design.dll
src/Directory.Build.props
src/ElmSharp.Wearable/ElmSharp.Wearable.csproj
src/ElmSharp.Wearable/ElmSharp.Wearable.preload [moved from packaging/preload/30.ElmSharp.Wearable.preload with 100% similarity]
src/ElmSharp/ElmSharp.csproj
src/ElmSharp/ElmSharp.preload [moved from packaging/preload/30.ElmSharp.preload with 100% similarity]
src/Tizen.Account.FidoClient/Tizen.Account.FidoClient.csproj
src/Tizen.Account.OAuth2/Tizen.Account.OAuth2.csproj
src/Tizen.Account.SyncManager/Tizen.Account.SyncManager.csproj
src/Tizen.Applications.AttachPanel/Tizen.Applications.AttachPanel.csproj
src/Tizen.Applications.Badge/Tizen.Applications.Badge.csproj
src/Tizen.Applications.Common/Tizen.Applications.Common.csproj
src/Tizen.Applications.Common/Tizen.Applications.Common.preload [moved from packaging/preload/30.Tizen.Applications.Common.preload with 100% similarity]
src/Tizen.Applications.Shortcut/Tizen.Applications.Shortcut.csproj
src/Tizen.Applications.UI/Tizen.Applications.UI.csproj
src/Tizen.Applications.UI/Tizen.Applications.UI.preload [moved from packaging/preload/30.Tizen.Applications.UI.preload with 100% similarity]
src/Tizen.Applications.WatchApplication/Tizen.Applications.WatchApplication.csproj
src/Tizen.Applications.WatchfaceComplication/Tizen.Applications.WatchfaceComplication.csproj
src/Tizen.Context/Tizen.Context.csproj
src/Tizen.Location.Geofence/Tizen.Location.Geofence.csproj
src/Tizen.Log/Tizen.Log.csproj
src/Tizen.Log/Tizen.Log.preload [moved from packaging/preload/30.Tizen.Log.preload with 100% similarity]
src/Tizen.Messaging/Tizen.Messaging.csproj
src/Tizen.Multimedia.MediaCodec/Tizen.Multimedia.MediaCodec.csproj
src/Tizen.Multimedia.Radio/Tizen.Multimedia.Radio.csproj
src/Tizen.NUI.Components/Tizen.NUI.Components.csproj
src/Tizen.NUI.Design/Tizen.NUI.Design.csproj
src/Tizen.NUI.Wearable/Tizen.NUI.Wearable.csproj
src/Tizen.NUI.WindowSystem/Tizen.NUI.WindowSystem.csproj
src/Tizen.NUI/Tizen.NUI.csproj
src/Tizen.NUI/Tizen.NUI.preload [moved from packaging/preload/30.Tizen.NUI.preload with 100% similarity]
src/Tizen.Network.Nfc/Tizen.Network.Nfc.csproj
src/Tizen.Network.Smartcard/Tizen.Network.Smartcard.csproj
src/Tizen.Network.WiFiDirect/Tizen.Network.WiFiDirect.csproj
src/Tizen.Nlp/Tizen.Nlp.csproj
src/Tizen.PhonenumberUtils/Tizen.PhonenumberUtils.csproj
src/Tizen.Pims.Contacts/Tizen.Pims.Contacts.csproj
src/Tizen.Security.DevicePolicyManager/Tizen.Security.DevicePolicyManager.csproj
src/Tizen.System.Information/Tizen.System.Information.csproj
src/Tizen.System.Information/Tizen.System.Information.preload [moved from packaging/preload/30.Tizen.System.Information.preload with 100% similarity]
src/Tizen.System.PowerUsage/Tizen.System.PowerUsage.csproj
src/Tizen.System.Usb/Tizen.System.Usb.csproj
src/Tizen.Telephony/Tizen.Telephony.csproj
src/Tizen/Tizen.csproj
src/Tizen/Tizen.preload [moved from packaging/preload/20.Tizen.preload with 100% similarity]

index 81b4b3f..372889f 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -1,13 +1,18 @@
 #!/bin/bash -e
 
-SCRIPT_FILE=$(readlink -f $0)
-SCRIPT_DIR=$(dirname $SCRIPT_FILE)
+SCRIPT_DIR=$(dirname $(readlink -f $0))
 
+CONFIGURATION=Release
+SLN_NAME=_Build
+SLN_FILE=$SCRIPT_DIR/$SLN_NAME.sln
 OUTDIR=$SCRIPT_DIR/Artifacts
 
-RUN_BUILD="dotnet msbuild $SCRIPT_DIR/build/build.proj /nologo"
+PROFILES=(mobile tv wearable)
+TARGET_ASSEMBLY_DIR=/usr/share/dotnet.tizen/framework
+TARGET_PRELOAD_DIR=/usr/share/dotnet.tizen/preload
 
-VERSION_PREFIX=8.0.0
+source $SCRIPT_DIR/packaging/version.txt
+VERSION_PREFIX=$(expr $NUGET_VERSION : '\([0-9]\+\.[0-9]\+\.[0-9]\+\)')
 
 usage() {
   echo "Usage: $0 [command] [args]"
@@ -20,43 +25,135 @@ usage() {
   echo "    clean              Clean all artifacts"
 }
 
+prepare_solution() {
+  target=$1; [ -z "$target" ] && target="full"
+
+  dotnet new sln -n $SLN_NAME -o $SCRIPT_DIR --force
+  if [ "$target" == "public" -o "$target" == "full" ]; then
+    dotnet sln $SLN_FILE add $SCRIPT_DIR/src/*/*.csproj
+  fi
+  if [ "$target" == "internal" -o "$target" == "full" ]; then
+    dotnet sln $SLN_FILE add $SCRIPT_DIR/internals/src/*/*.csproj
+  fi
+  if [ "$target" == "design" ]; then
+    dotnet sln $SLN_FILE add $SCRIPT_DIR/src/*/*.Design.csproj
+  else
+    dotnet sln $SLN_FILE remove $SCRIPT_DIR/src/*/*.Design.csproj
+  fi
+}
+
+cleanup_solution() {
+  rm -f $SLN_FILE
+}
+
+remove_intermediates() {
+  find $1 -type d \
+    \( -name obj -o -name bin \) -print0 | xargs -0 -I {} rm -fr "{}"
+}
+
 clean() {
-  $RUN_BUILD /t:clean
+  remove_intermediates $SCRIPT_DIR/build/
+  remove_intermediates $SCRIPT_DIR/src/
+  remove_intermediates $SCRIPT_DIR/internals/src/
+  rm -fr $OUTDIR
   rm -f msbuild.log
+  cleanup_solution
 }
 
-build() {
+restore() {
   if [ -d /nuget ]; then
-    NUGET_SOURCE_OPT="/p:RestoreSources=/nuget"
+    dotnet restore -s /nuget $1
+  else
+    dotnet restore $1
   fi
-  $RUN_BUILD /t:restore $NUGET_SOURCE_OPT $@
-  $RUN_BUILD /t:build /fl $@
 }
 
-cmd_build() {
+build() {
+  dotnet build --no-restore -c $CONFIGURATION /fl $@
+}
+
+copy_artifacts() {
+  mkdir -p $2
+  for proj in $(ls -d1 $1/*/); do
+    if [ -d $proj/bin/$CONFIGURATION ]; then
+      cp -fr $proj/bin/$CONFIGURATION/*/* $2
+    fi
+  done
+}
+
+build_artifacts() {
+  copy_artifacts $SCRIPT_DIR/src $OUTDIR/bin/public
+  copy_artifacts $SCRIPT_DIR/internals/src $OUTDIR/bin/internal
+
+  # move preload
+  mkdir -p $OUTDIR/preload
+  mv $OUTDIR/bin/public/*.preload $OUTDIR/preload 2>/dev/null || :
+  mv $OUTDIR/bin/internal/*.preload $OUTDIR/preload 2>/dev/null || :
+
+  # merge filelist
+  for profile in ${PROFILES[@]}; do
+    list=$(cat $OUTDIR/bin/public/*.$profile.filelist \
+               $OUTDIR/bin/internal/*.$profile.filelist \
+               | sort | uniq)
+    rm -f $OUTDIR/$profile.filelist
+    for item in $list; do
+      if [[ "$item" == *.preload ]]; then
+        echo $TARGET_PRELOAD_DIR/$item >> $OUTDIR/$profile.filelist
+      else
+        echo $TARGET_ASSEMBLY_DIR/$item >> $OUTDIR/$profile.filelist
+      fi
+    done
+  done
+}
+
+cmd_module_build() {
   if [ -z "$1" ]; then
     echo "No module specified."
     exit 1
   fi
-  PROJECT=$1; shift
-  build /p:Project=$PROJECT $@
+  module=$1; shift;
+  sources=(src internals/src)
+  for src in $sources; do
+    project=$SCRIPT_DIR/$src/$module/$module.csproj
+    echo $project
+    if [ -f "$project" ]; then
+      restore $project
+      build $project $@
+    fi
+  done
 }
 
 cmd_full_build() {
   clean
-  build $@
-  cmd_dummy_build $@
+  prepare_solution full
+  restore $SLN_FILE
+  build $SLN_FILE $@
+  cleanup_solution
+  build_artifacts
+  cmd_dummy_build
 }
 
 cmd_design_build() {
-  build /p:BuildDesignAssembly=True $@
-  if [ -d "$OUTDIR"/bin/design ]; then
-    cp -f "$OUTDIR"/bin/design/*.Design.dll "$SCRIPT_DIR"/pkg/Tizen.NET.API*/design/
-  fi
+  prepare_solution design
+  restore $SLN_FILE
+  build $SLN_FILE $@
+  projects=$(dirname $(ls -1 $SCRIPT_DIR/src/*/*.Design.csproj))
+  for proj in $projects; do
+    if [ -d $proj/bin/$CONFIGURATION ]; then
+      cp -f $proj/bin/$CONFIGURATION/*/*.Design.dll $SCRIPT_DIR/pkg/Tizen.NET.API*/design/
+    fi
+  done
+  cleanup_solution
 }
 
 cmd_dummy_build() {
-  $RUN_BUILD /t:dummy $@
+  if [ ! -d $OUTDIR/bin/public/ref  ]; then
+    echo "No assemblies to read. Build TizenFX first."
+    exit 1
+  fi
+  mkdir -p $OUTDIR/bin/dummy
+  dotnet $SCRIPT_DIR/tools/bin/APITool.dll \
+         dummy $OUTDIR/bin/public/ref $OUTDIR/bin/dummy
 }
 
 cmd_pack() {
@@ -67,16 +164,23 @@ cmd_pack() {
     popd > /dev/null
   fi
 
-  $RUN_BUILD /t:pack /p:Version=$VERSION
+  restore $SCRIPT_DIR/build/pack.csproj
+  nuspecs=$(find $SCRIPT_DIR/pkg/ -name "*.nuspec")
+  for nuspec in $nuspecs; do
+    dotnet pack --no-restore --no-build --nologo -o $OUTDIR \
+           $SCRIPT_DIR/build/pack.csproj \
+           /p:Version=$VERSION \
+           /p:NuspecFile=$(readlink -f $nuspec)
+  done
 }
 
 cmd_install() {
   DEVICE_ID=$1
 
   RUNTIME_ASSEMBLIES="$OUTDIR/bin/public/*.dll $OUTDIR/bin/internal/*.dll"
-  TARGET_ASSEMBLY_PATH="/usr/share/dotnet.tizen/framework"
 
   device_cnt=$(sdb devices | grep -v "List" | wc -l)
+
   if [ $device_cnt -eq 0 ]; then
     echo "No connected devices"
     exit 1
@@ -95,30 +199,26 @@ cmd_install() {
 
   sdb $SDB_OPTIONS root on
   sdb $SDB_OPTIONS shell mount -o remount,rw /
-  sdb $SDB_OPTIONS push $RUNTIME_ASSEMBLIES $TARGET_ASSEMBLY_PATH
+  sdb $SDB_OPTIONS push $RUNTIME_ASSEMBLIES $TARGET_ASSEMBLY_DIR
 
-  nifile_cnt=$(sdb $SDB_OPTIONS shell find $TARGET_ASSEMBLY_PATH -name '*.ni.dll' | wc -l)
+  nifile_cnt=$(sdb $SDB_OPTIONS shell find $TARGET_ASSEMBLY_DIR -name '*.ni.dll' | wc -l)
   if [ $nifile_cnt -gt 0 ]; then
-    sdb $SDB_OPTIONS shell "rm -f $TARGET_ASSEMBLY_PATH/*.ni.dll"
+    sdb $SDB_OPTIONS shell "rm -f $TARGET_ASSEMBLY_DIR/*.ni.dll"
     sdb $SDB_OPTIONS shell nitool --system
     sdb $SDB_OPTIONS shell nitool --regen-all-app
   fi
 
-  sdb $SDB_OPTIONS shell chsmack -a '_' $TARGET_ASSEMBLY_PATH/*
-}
-
-cmd_clean() {
-  $RUN_BUILD /t:clean
+  sdb $SDB_OPTIONS shell chsmack -a '_' $TARGET_ASSEMBLY_DIR/*
 }
 
-cmd=$1; shift;
+cmd=$1; [ $# -gt 0 ] && shift;
 case "$cmd" in
-  build|--build|-b) cmd_build $@ ;;
+  build|--build|-b) cmd_module_build $@ ;;
   full |--full |-f) cmd_full_build $@ ;;
-  dummy|--dummy|-d) cmd_dummy_build $@ ;;
   design|--design)  cmd_design_build $@ ;;
+  dummy|--dummy|-d) cmd_dummy_build $@ ;;
   pack |--pack |-p) cmd_pack $@ ;;
   install |--install |-i) cmd_install $@ ;;
-  clean|--clean|-c) cmd_clean $@ ;;
+  clean|--clean|-c) clean ;;
   *) usage ;;
 esac
diff --git a/build/build.proj b/build/build.proj
deleted file mode 100644 (file)
index b6bf505..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-<Project DefaultTargets="Build">
-
-  <Import Project="$(MSBuildThisFileDirectory)directories.props" />
-
-  <!-- Build Properties -->
-  <PropertyGroup>
-    <Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
-    <BuildWithAnalyzer Condition="'$(BuildWithAnalyzer)' == ''">False</BuildWithAnalyzer>
-    <BuildDesignAssembly Condition="'$(BuildDesignAssembly)' == ''">False</BuildDesignAssembly>
-    <BuildPublicOnly Condition="'$(BuildPublicOnly)' == ''">False</BuildPublicOnly>
-  </PropertyGroup>
-
-  <!-- Projects to build -->
-  <ItemGroup>
-    <DesignProject Include="$(ProjectSrcDir)**\*.Design.csproj" />
-    <DesignProject Include="$(InternalProjectSrcDir)**\*.Design.csproj" />
-
-    <PublicProject Include="$(ProjectSrcDir)**\*.csproj" Condition="'$(Project)' == ''" />
-    <PublicProject Include="$(ProjectSrcDir)\$(Project)\$(Project).csproj"
-                   Condition="'$(Project)' != '' And Exists('$(ProjectSrcDir)\$(Project)\$(Project).csproj') " />
-    <PublicProject Remove="@(DesignProject)" />
-
-    <InternalProject Include="$(InternalProjectSrcDir)**\*.csproj" Condition="'$(Project)' == '' " />
-    <InternalProject Include="$(InternalProjectSrcDir)\$(Project)\$(Project).csproj"
-                     Condition="'$(Project)' != ''  And Exists('$(InternalProjectSrcDir)\$(Project)\$(Project).csproj')  " />
-    <InternalProject Remove="@(DesignProject)" />
-
-    <ProjectToBuild Include="@(DesignProject)" Condition="'$(BuildDesignAssembly)' == 'True' " />
-    <ProjectToBuild Include="@(PublicProject)" Condition="'$(BuildDesignAssembly)' != 'True' " />
-    <ProjectToBuild Include="@(InternalProject)" Condition="'$(BuildDesignAssembly)' != 'True' And '$(BuildPublicOnly)' != 'True'" />
-  </ItemGroup>
-
-  <!-- Nuspec files to pack -->
-  <ItemGroup>
-    <NuspecFiles Include="$(ProjectRootDir)pkg\**\*.nuspec" />
-  </ItemGroup>
-
-  <!--
-    Target : Clean
-    ==============
-    Delete all artifacts,
-    including the Artifacts/ directory and the obj and bin directories of all projects.
-  -->
-  <Target Name="Clean">
-
-    <ItemGroup>
-      <ProjectIntermediateAllFiles Include="$(ProjectSrcDir)**\obj\**" />
-      <ProjectIntermediateAllFiles Include="$(ProjectSrcDir)**\bin\**" />
-      <ProjectIntermediateAllFiles Include="$(InternalProjectSrcDir)**\obj\**" />
-      <ProjectIntermediateAllFiles Include="$(InternalProjectSrcDir)**\bin\**" />
-      <ProjectIntermediateDir Include="@(ProjectIntermediateAllFiles->'%(RootDir)%(Directory)'->Distinct())" />
-    </ItemGroup>
-
-    <ItemGroup>
-      <DirToRemove Include="$(OutputBaseDir)" />
-      <DirToRemove Include="@(ProjectIntermediateDir)" />
-    </ItemGroup>
-
-    <RemoveDir Directories="@(DirToRemove)" />
-
-  </Target>
-
-  <!--
-    Target : Restore
-    ==============
-    Restore all projects.
-  -->
-  <Target Name="Restore">
-
-    <MSBuild Projects="@(ProjectToBuild)"
-             Properties="Configuration=$(Configuration);RestoreSources=$(RestoreSources);BuildWithAnalyzer=$(BuildWithAnalyzer)"
-             BuildInParallel="false"
-             Targets="Restore" />
-
-  </Target>
-
-  <!--
-    Target : Build
-    ==============
-    Build all projects.
-  -->
-  <Target Name="Build">
-
-    <MSBuild Projects="@(ProjectToBuild)"
-             Properties="Configuration=$(Configuration);BuildWithAnalyzer=$(BuildWithAnalyzer);BuildProfile=$(BuildProfile)"
-             BuildInParallel="true"
-             UseResultsCache="true"
-             Targets="Rebuild" />
-
-    <MSBuild Projects="@(ProjectToBuild)"
-             Properties="Configuration=$(Configuration)"
-             BuildInParallel="false"
-             Targets="CopyToArtifactsDirectory" />
-
-  </Target>
-
-  <!--
-    Target : Pack
-    ==============
-    Generate nuget packages.
-  -->
-  <Target Name="Pack">
-
-    <MSBuild Projects="$(MSBuildThisFileDirectory)pack.csproj"
-             Properties="NoBuild=True"
-             Targets="Restore" />
-
-    <MSBuild Projects="$(MSBuildThisFileDirectory)pack.csproj"
-             Properties="NoBuild=True;Version=$(Version);NuspecFile=%(NuspecFiles.Identity)"
-             Targets="Pack" />
-
-  </Target>
-
-  <!--
-    Target : Dummy
-    ==============
-    Generate dummy assemblies of all projects.
-  -->
-  <Target Name="Dummy">
-
-    <PropertyGroup>
-      <APIToolPath>$(MSBuildThisFileDirectory)..\tools\bin\APITool.dll</APIToolPath>
-    </PropertyGroup>
-
-    <MakeDir Directories="$(OutputDummyDir)" />
-    <Exec Command="dotnet $([System.IO.Path]::GetFullPath('$(APIToolPath)')) dummy $(OutputPublicDir)ref $(OutputDummyDir) " />
-
-  </Target>
-
-</Project>
index 11d3f8a..be93302 100644 (file)
@@ -9,6 +9,15 @@
   </PropertyGroup>
 
   <PropertyGroup>
+    <ProjectRootDir>$(MSBuildThisFileDirectory)..\</ProjectRootDir>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <AllTizenProfiles>mobile;tv;wearable</AllTizenProfiles>
+    <SupportedProfiles Condition="'$(SupportedProfiles)' == ''">$(AllTizenProfiles)</SupportedProfiles>
+  </PropertyGroup>
+
+  <PropertyGroup>
     <DefineConstants Condition="'$(BuildProfile)' == 'tv'">$(DefineConstants);PROFILE_TV</DefineConstants>
     <DefineConstants Condition="'$(BuildProfile)' == 'wearable'">$(DefineConstants);PROFILE_WEARABLE</DefineConstants>
     <DefineConstants Condition="'$(BuildProfile)' == 'mobile'">$(DefineConstants);PROFILE_MOBILE</DefineConstants>
@@ -21,7 +30,7 @@
   </PropertyGroup>
 
   <Import Project="$(MSBuildThisFileDirectory)version.props" />
-
-  <Import Project="$(MSBuildThisFileDirectory)analyzers.props" Condition="'$(BuildWithAnalyzer)' == 'True' Or '$(BuildingInsideVisualStudio)' == 'True'" />
+  <Import Project="$(MSBuildThisFileDirectory)analyzers.props"
+          Condition="'$(BuildWithAnalyzer)' == 'True' Or '$(BuildingInsideVisualStudio)' == 'True'" />
 
 </Project>
index a1e52d0..b2842d7 100644 (file)
@@ -1,13 +1,24 @@
 <Project>
 
-  <Target Name="CopyToArtifactsDirectory"
-          Condition="'$(ArtifactsDirectory)' != ''"
-          DependsOnTargets="GetCopyToOutputDirectoryItems">
-    <ItemGroup>
-      <OutputFilesToCopy Include="$(OutDir)**" />
-    </ItemGroup>
-    <Copy SourceFiles="@(OutputFilesToCopy)"
-          DestinationFiles="$(ArtifactsDirectory)%(RecursiveDir)%(Filename)%(Extension)" />
+  <Import Project="$(MSBuildThisFileDirectory)profiles.targets" />
+
+  <PropertyGroup>
+    <__PostBuildDependsOn>
+      _CopyPreloadFilesToOutDir;
+      GenerateProfileFileList;
+    </__PostBuildDependsOn>
+  </PropertyGroup>
+
+  <Target Name="__PostBuild"
+          AfterTargets="Build"
+          DependsOnTargets="$(__PostBuildDependsOn)">
+  </Target>
+
+  <Target Name="_CopyPreloadFilesToOutDir">
+
+    <Copy SourceFiles="@(TizenPreloadFile)"
+          DestinationFiles="$(OutDir)%(Sequence).%(Filename)%(Extension)" />
+
   </Target>
 
 </Project>
diff --git a/build/directories.props b/build/directories.props
deleted file mode 100644 (file)
index d2c2a4f..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<Project>
-
-  <PropertyGroup>
-
-    <ProjectRootDir>$(MSBuildThisFileDirectory)..\</ProjectRootDir>
-
-    <ProjectSrcDir>$(ProjectRootDir)src\</ProjectSrcDir>
-    <InternalProjectSrcDir>$(ProjectRootDir)internals\src\</InternalProjectSrcDir>
-
-    <OutputBaseDir>$(ProjectRootDir)Artifacts\</OutputBaseDir>
-    <OutputPublicDir>$(OutputBaseDir)bin\public\</OutputPublicDir>
-    <OutputInternalDir>$(OutputBaseDir)bin\internal\</OutputInternalDir>
-    <OutputExternalDir>$(OutputBaseDir)bin\external\</OutputExternalDir>
-    <OutputDummyDir>$(OutputBaseDir)bin\dummy\</OutputDummyDir>
-
-    <ExternalLibraryDir>$(ProjectRootDir)externals\libs\</ExternalLibraryDir>
-
-  </PropertyGroup>
-
-</Project>
index c84d6c9..e92abff 100644 (file)
@@ -1,7 +1,5 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <Import Project="$(MSBuildThisFileDirectory)directories.props" />
-
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
@@ -13,9 +11,8 @@
   <PropertyGroup>
     <IncludeBuildOutput>false</IncludeBuildOutput>
     <NoPackageAnalysis>true</NoPackageAnalysis>
-    <NuspecBasePath>$(ProjectRootDir)</NuspecBasePath>
+    <NuspecBasePath>$(MSBuildThisFileDirectory)..\</NuspecBasePath>
     <NuspecProperties>$(NuspecProperties);fxversion=$(Version)</NuspecProperties>
-    <PackageOutputPath>$(OutputBaseDir)</PackageOutputPath>
   </PropertyGroup>
 
 </Project>
diff --git a/build/profiles.targets b/build/profiles.targets
new file mode 100644 (file)
index 0000000..88c8e18
--- /dev/null
@@ -0,0 +1,89 @@
+<Project>
+
+  <ItemDefinitionGroup>
+    <_ResourceItemsWithTargetPath>
+      <TizenProfile>$(AllTizenProfiles)</TizenProfile>
+      <CopyToOutputDirectory>Never</CopyToOutputDirectory>
+    </_ResourceItemsWithTargetPath>
+  </ItemDefinitionGroup>
+
+  <ItemGroup>
+    <AllTizenProfilesItems Include="$(AllTizenProfiles.Split(';'))" />
+    <SupportedProfilesItems Include="$(SupportedProfiles.Split(';'))" Condition="'$(SupportedProfiles)' != ''" />
+  </ItemGroup>
+
+  <Target Name="GenerateProfileFileList" Outputs="%(AllTizenProfilesItems.Identity)">
+
+    <PropertyGroup>
+      <_TargetProfile>%(AllTizenProfilesItems.Identity)</_TargetProfile>
+      <_IsProfileMatch>false</_IsProfileMatch>
+      <_IsProfileMatch Condition="'%(SupportedProfilesItems.Identity)' == '$(_TargetProfile)'">true</_IsProfileMatch>
+    </PropertyGroup>
+
+    <AssignTargetPath Files="@(None)" RootFolder="$(MSBuildProjectDirectory)">
+      <Output TaskParameter="AssignedFiles" ItemName="_ItemsWithTargetPath" />
+    </AssignTargetPath>
+
+    <ItemGroup>
+      <_ResourceItemsWithTargetPath Include="@(_ItemsWithTargetPath)"
+                                    Condition="$([System.String]::new('%(_ItemsWithTargetPath.TargetPath)').StartsWith('res/', System.StringComparison.OrdinalIgnoreCase))" />
+      <_ResourceItemsWithTargetPath Remove="@(_ResourceItemsWithTargetPath)"
+                                    Condition="'%(CopyToOutputDirectory)' == '' Or '%(CopyToOutputDirectory)' == 'Never'" />
+    </ItemGroup>
+
+    <GetProfileMatchedItems
+      Items="@(_ResourceItemsWithTargetPath)"
+      TargetProfile="$(_TargetProfile)">
+      <Output TaskParameter="MatchedItems" ItemName="_ProfileResourceItemsWithTargetPath" />
+    </GetProfileMatchedItems>
+
+    <ItemGroup>
+      <_ProfilePreloadItems Include="$(OutDir)*.preload" />
+    </ItemGroup>
+
+    <ItemGroup>
+      <_ProfileFiles Include="$(TargetFileName)" Condition="'$(_IsProfileMatch)' == 'true'" />
+      <_ProfileFiles Include="%(_ProfileResourceItemsWithTargetPath.TargetPath)" Condition="'$(_IsProfileMatch)' == 'true'" />
+      <_ProfileFiles Include="@(_ProfilePreloadItems->'%(Filename)%(Extension)')" Condition="'$(_IsProfileMatch)' == 'true'" />
+      <_ProfileFiles Include="ref/$(TargetFileName)" Condition="'$(_IsProfileMatch)' == 'false'" />
+    </ItemGroup>
+
+    <WriteLinesToFile File="$(OutDir)$(TargetName).$(_TargetProfile).filelist"
+                      Overwrite="true"
+                      Lines="@(_ProfileFiles)" />
+
+  </Target>
+
+  <UsingTask
+    TaskName="GetProfileMatchedItems"
+    TaskFactory="RoslynCodeTaskFactory"
+    AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">
+    <ParameterGroup>
+      <Items Required="true" ParameterType="Microsoft.Build.Framework.ITaskItem[]" />
+      <TargetProfile Required="true" />
+      <MatchedItems ParameterType="Microsoft.Build.Framework.ITaskItem[]" Output="true" />
+    </ParameterGroup>
+    <Task>
+      <Using Namespace="System" />
+      <Using Namespace="System.IO" />
+      <Using Namespace="System.Linq" />
+      <Using Namespace="System.Collections.Generic" />
+      <Code Type="Fragment" Language="cs">
+<![CDATA[
+  var _matchedItems = new List<ITaskItem>();
+  foreach (var item in Items) {
+    string tizenProfile = item.GetMetadata("TizenProfile");
+    if (!string.IsNullOrEmpty(tizenProfile)) {
+      string[] profiles = tizenProfile.Split(';');
+      if (profiles.Any(TargetProfile.Equals)) {
+        _matchedItems.Add(item);
+      }
+    }
+  }
+  MatchedItems = _matchedItems.ToArray();
+]]>
+      </Code>
+    </Task>
+  </UsingTask>
+
+</Project>
index 2abd25e..fe84e3a 100644 (file)
@@ -1,10 +1,5 @@
 <Project>
 
        <Import Project="$(MSBuildThisFileDirectory)..\..\build\common.props" />
-  <Import Project="$(MSBuildThisFileDirectory)..\..\build\directories.props" />
-
-  <PropertyGroup>
-    <ArtifactsDirectory>$(OutputInternalDir)</ArtifactsDirectory>
-  </PropertyGroup>
 
 </Project>
\ No newline at end of file
diff --git a/packaging/PlatformFileList.txt b/packaging/PlatformFileList.txt
deleted file mode 100755 (executable)
index 5395ce6..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-ElmSharp.dll                                       #common #mobile #mobile-emul #tv #wearable
-ElmSharp.Wearable.dll                              #wearable
-res/maps_marker_pin_48.png                         #mobile #mobile-emul #tv #wearable
-res/maps_marker_pin_72.png                         #mobile #mobile-emul #tv #wearable
-res/maps_marker_sticker_48.png                     #mobile #mobile-emul #tv #wearable
-res/maps_marker_sticker_72.png                     #mobile #mobile-emul #tv #wearable
-res/nui_component_default_checkbox_bg_n.png        #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_checkbox_bg_p.png        #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_checkbox_s.png           #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_switch_thumb_d.png       #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_switch_thumb_n.png       #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_switch_track_d.png       #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_switch_track_ds.png      #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_switch_track_n.png       #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_switch_track_s.png       #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_radiobutton_n.png        #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_radiobutton_p.png        #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_radiobutton_s.png        #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_popup_shadow.png         #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_slider_thumb_bg_p.png    #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_slider_thumb_n.png       #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_dropdown_button_icon.png #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_dropdown_list_bg.png     #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_pagination_focus_dot.png #common #mobile #mobile-emul #tv #wearable
-res/nui_component_default_pagination_normal_dot.png #common #mobile #mobile-emul #tv #wearable
-res/nui_wearable_checkbox_icon.json                #wearable
-res/nui_wearable_radiobutton_icon.json             #wearable
-res/nui_wearable_switch_icon.json                  #wearable
-res/nui_wearable_circular_pagination_center_normal_dot.png #wearable
-res/nui_wearable_circular_pagination_center_focus_dot.png  #wearable
-Tizen.Account.AccountManager.dll                   #mobile #mobile-emul #tv #wearable
-Tizen.Account.FidoClient.dll                       #mobile #mobile-emul #wearable
-Tizen.Account.OAuth2.dll                           #mobile #mobile-emul #wearable
-Tizen.Account.SyncManager.dll                      #mobile #mobile-emul #wearable
-Tizen.Applications.Alarm.dll                       #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.AttachPanel.dll                 #mobile #mobile-emul
-Tizen.Applications.Badge.dll                       #mobile #mobile-emul #wearable
-Tizen.Applications.Common.dll                      #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.ComponentBased.dll              #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.ComponentBased.ComponentManager.dll     #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.ComponentBased.Default.dll      #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.DataControl.dll                 #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.EventManager.dll                #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.MessagePort.dll                 #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.Notification.dll                #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.NotificationEventListener.dll   #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.PackageManager.dll              #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.Preference.dll                  #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.RemoteView.dll                  #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.Service.dll                     #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.Shortcut.dll                    #mobile #mobile-emul
-Tizen.Applications.ToastMessage.dll                #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.UI.dll                          #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.WatchApplication.dll            #wearable
-Tizen.Applications.WatchfaceComplication.dll       #wearable
-Tizen.Applications.WidgetApplication.dll           #common #mobile #mobile-emul #tv #wearable
-Tizen.Applications.WidgetControl.dll               #common #mobile #mobile-emul #tv #wearable
-Tizen.Content.Download.dll                         #common #mobile #mobile-emul #tv #wearable
-Tizen.Content.MediaContent.dll                     #common #mobile #mobile-emul #tv #wearable
-Tizen.Content.MimeType.dll                         #common #mobile #mobile-emul #tv #wearable
-Tizen.Context.dll                                  #mobile #mobile-emul #wearable
-Tizen.dll                                          #common #mobile #mobile-emul #tv #wearable
-Tizen.Location.dll                                 #mobile #mobile-emul #tv #wearable
-Tizen.Location.Geofence.dll                        #mobile #mobile-emul
-Tizen.Log.dll                                      #common #mobile #mobile-emul #tv #wearable
-Tizen.MachineLearning.Inference.dll                #common #mobile #mobile-emul #tv #wearable
-Tizen.Maps.dll                                     #mobile #mobile-emul #tv #wearable
-Tizen.Messaging.dll                                #mobile #mobile-emul #wearable
-Tizen.Messaging.Push.dll                           #common #mobile #mobile-emul #tv #wearable
-Tizen.Multimedia.AudioIO.dll                       #common #mobile #mobile-emul #tv #wearable
-Tizen.Multimedia.Camera.dll                        #common #mobile #mobile-emul #tv #wearable
-Tizen.Multimedia.dll                               #common #mobile #mobile-emul #tv #wearable
-Tizen.Multimedia.MediaCodec.dll                    #common #mobile #mobile-emul #wearable
-Tizen.Multimedia.MediaPlayer.dll                   #common #mobile #mobile-emul #tv #wearable
-Tizen.Multimedia.Metadata.dll                      #common #mobile #mobile-emul #tv #wearable
-Tizen.Multimedia.Radio.dll                         #common #mobile #mobile-emul #wearable
-Tizen.Multimedia.Recorder.dll                      #common #mobile #mobile-emul #tv #wearable
-Tizen.Multimedia.Remoting.dll                      #common #mobile #mobile-emul #tv #wearable
-Tizen.Multimedia.StreamRecorder.dll                #common #mobile #mobile-emul #tv #wearable
-Tizen.Multimedia.Util.dll                          #common #mobile #mobile-emul #tv #wearable
-Tizen.Multimedia.Vision.dll                        #common #mobile #mobile-emul #tv #wearable
-Tizen.Network.Bluetooth.dll                        #common #mobile #tv #wearable
-Tizen.Network.Connection.dll                       #common #mobile #mobile-emul #tv #wearable
-Tizen.Network.IoTConnectivity.dll                  #common #mobile #mobile-emul #tv #wearable
-Tizen.Network.Nfc.dll                              #mobile #mobile-emul #wearable
-Tizen.Network.Nsd.dll                              #common #mobile #mobile-emul #tv #wearable
-Tizen.Network.Smartcard.dll                        #mobile #mobile-emul #wearable
-Tizen.Network.Stc.dll                              #common #mobile #tv #wearable
-Tizen.Network.WiFi.dll                             #common #mobile #mobile-emul #tv #wearable
-Tizen.Network.WiFiDirect.dll                       #common #mobile #tv #ivi
-Tizen.Nlp.dll                                      #mobile #mobile-emul
-Tizen.NUI.dll                                      #common #mobile #mobile-emul #tv #wearable
-Tizen.NUI.Components.dll                           #common #mobile #mobile-emul #tv #wearable
-Tizen.NUI.Wearable.dll                             #wearable
-Tizen.NUI.WindowSystem.dll                         #common #mobile #mobile-emul #wearable
-Tizen.PhonenumberUtils.dll                         #mobile #mobile-emul #wearable
-Tizen.Pims.Calendar.dll                            #common #mobile #mobile-emul #tv #wearable
-Tizen.Pims.Contacts.dll                            #mobile #mobile-emul #wearable
-Tizen.Security.dll                                 #common #mobile #mobile-emul #tv #wearable
-Tizen.Security.DevicePolicyManager.dll             #mobile #mobile-emul #wearable
-Tizen.Security.PrivacyPrivilegeManager.dll         #common #mobile #mobile-emul #tv #wearable
-Tizen.Security.SecureRepository.dll                #common #mobile #mobile-emul #tv #wearable
-Tizen.Security.TEEC.dll                            #mobile #mobile-emul #tv #wearable
-Tizen.Sensor.dll                                   #common #mobile #mobile-emul #tv #wearable
-Tizen.System.dll                                   #common #mobile #mobile-emul #tv #wearable
-Tizen.System.Feedback.dll                          #common #mobile #mobile-emul #tv #wearable
-Tizen.System.Information.dll                       #common #mobile #mobile-emul #tv #wearable
-Tizen.System.MediaKey.dll                          #common #mobile #mobile-emul #tv #wearable
-Tizen.System.PlatformConfig.dll                    #common #mobile #mobile-emul #tv #wearable
-Tizen.System.PowerUsage.dll                        #wearable
-Tizen.System.Storage.dll                           #common #mobile #mobile-emul #tv #wearable
-Tizen.System.SystemSettings.dll                    #common #mobile #mobile-emul #tv #wearable
-Tizen.System.Usb.dll                               #common #mobile #mobile-emul
-Tizen.Telephony.dll                                #mobile #mobile-emul #wearable
-Tizen.Tracer.dll                                   #common #mobile #mobile-emul #tv #wearable
-Tizen.Uix.InputMethod.dll                          #common #mobile #mobile-emul #tv #wearable
-Tizen.Uix.InputMethodManager.dll                   #common #mobile #mobile-emul #tv #wearable
-Tizen.Uix.Stt.dll                                  #common #mobile #mobile-emul #tv #wearable
-Tizen.Uix.SttEngine.dll                            #common #mobile #mobile-emul #tv #wearable
-Tizen.Uix.Tts.dll                                  #common #mobile #mobile-emul #tv #wearable
-Tizen.Uix.TtsEngine.dll                            #common #mobile #mobile-emul #tv #wearable
-Tizen.Uix.VoiceControl.dll                         #common #mobile #mobile-emul #tv #wearable
-Tizen.Uix.VoiceControlWidget.dll                   #common #mobile #mobile-emul #tv #wearable
-Tizen.Uix.VoiceControlManager.dll                  #common #mobile #mobile-emul #tv #wearable
-Tizen.WebView.dll                                  #common #mobile #mobile-emul #tv #wearable
-30.ElmSharp.preload                                #common #mobile #mobile-emul #tv #wearable
-30.ElmSharp.Wearable.preload                       #wearable
-30.Tizen.Applications.Common.preload               #common #mobile #mobile-emul #tv #wearable
-30.Tizen.Applications.UI.preload                   #common #mobile #mobile-emul #tv #wearable
-30.Tizen.Log.preload                               #common #mobile #mobile-emul #tv #wearable
-20.Tizen.preload                                   #common #mobile #mobile-emul #tv #wearable
-30.Tizen.System.Information.preload                #common #mobile #mobile-emul #tv #wearable
-30.Tizen.NUI.preload                               #common #mobile #mobile-emul #tv #wearable
index 197cf31..95df2a2 100644 (file)
@@ -82,14 +82,6 @@ AutoReqProv: no
 %description tools
 Tools for TizenFX
 
-%package dummy
-Summary:   not used package
-Group:     Development/Libraries
-AutoReqProv: no
-
-%description dummy
-not used package
-
 %package full
 Summary:   All Tizen .NET assemblies
 Group:     Development/Libraries
@@ -107,15 +99,6 @@ AutoReqProv: no
 %description debug
 All .pdb files of Tizen .NET
 
-%package common
-Summary:   Tizen .NET assemblies for Common profile
-Group:     Development/Libraries
-Requires:  %{name} = %{version}-%{release}
-AutoReqProv: no
-
-%description common
-Tizen .NET assemblies for Common profile
-
 %package mobile
 Summary:   Tizen .NET assemblies for Mobile profile
 Group:     Development/Libraries
@@ -125,15 +108,6 @@ AutoReqProv: no
 %description mobile
 Tizen .NET assemblies for Mobile profile
 
-%package mobile-emul
-Summary:   Tizen .NET assemblies for Emulator of Mobile profile
-Group:     Development/Libraries
-Requires:  %{name} = %{version}-%{release}
-AutoReqProv: no
-
-%description mobile-emul
-Tizen .NET assemblies for Emulator of Mobile profile
-
 %package tv
 Summary:   Tizen .NET assemblies for TV profile
 Group:     Development/Libraries
@@ -157,23 +131,27 @@ Tizen .NET assemblies for Wearable profile
 cp %{SOURCE1} .
 
 %build
-%{?asan:export ASAN_OPTIONS=use_sigaltstack=false:allow_user_segv_handler=true:handle_sigfpe=false:`cat /ASAN_OPTIONS`}
 
-%define _tizenfx_bin_path Artifacts
+# configure for ASAN
+%{?asan:export ASAN_OPTIONS=use_sigaltstack=false:allow_user_segv_handler=true:handle_sigfpe=false:`cat /ASAN_OPTIONS`}
 
-rm -fr %{_tizenfx_bin_path}
+# prepare for build
 export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
-
 %define build_cmd ./tools/scripts/retry.sh ./tools/scripts/timeout.sh -t 600 ./build.sh
+
+# build full assemblies
 %if %{defined profile}
 %{build_cmd} --full /p:BuildProfile=%{profile}
 %else
 %{build_cmd} --full
 %endif
+
+# pack nuget package
 %{build_cmd} --pack %{TIZEN_NET_NUGET_VERSION}
 
+# check validation of struct size
 %if %{defined enable_struct_test}
-dotnet validate-struct %{_tizenfx_bin_path}/bin/public || echo "
+dotnet validate-struct Artifacts/bin/public || echo "
     #######################################################
     ##################### W A R N I N G ###################
     #######################################################
@@ -183,27 +161,6 @@ dotnet validate-struct %{_tizenfx_bin_path}/bin/public || echo "
 "
 %endif
 
-# Generate filelist for rpm packaging
-GetFileList() {
-  PROFILE=$1
-  cat packaging/PlatformFileList.txt | grep -v "\.preload" | grep -E "#$PROFILE[[:space:]]|#$PROFILE$" | cut -d# -f1 | sed "s#^#%{DOTNET_ASSEMBLY_PATH}/#"
-  for f in $(cat packaging/PlatformFileList.txt | grep -v -E "#$PROFILE[[:space:]]|#$PROFILE$|\.preload" | cut -d# -f1); do
-    if [ -f %{_tizenfx_bin_path}/bin/dummy/$f ]; then
-      echo "%{DOTNET_ASSEMBLY_PATH}/ref/$f"
-    fi
-  done
-  for f in $(cat packaging/PlatformFileList.txt | grep "\.preload" | grep -E "#$PROFILE[[:space:]]|#$PROFILE$" | cut -d# -f1); do
-    if [ -f packaging/preload/$f ]; then
-      echo "%{DOTNET_PRELOAD_PATH}/$f"
-    fi
-  done
-}
-
-GetFileList common > common.filelist
-GetFileList mobile > mobile.filelist
-GetFileList mobile-emul > mobile-emul.filelist
-GetFileList tv > tv.filelist
-GetFileList wearable > wearable.filelist
 
 %install
 mkdir -p %{buildroot}%{DOTNET_ASSEMBLY_PATH}
@@ -214,31 +171,32 @@ mkdir -p %{buildroot}%{DOTNET_TOOLS_PATH}
 mkdir -p %{buildroot}%{DOTNET_PRELOAD_PATH}
 
 # Install Runtime Assemblies
-install -p -m 644 %{_tizenfx_bin_path}/bin/public/*.dll %{buildroot}%{DOTNET_ASSEMBLY_PATH}
-install -p -m 644 %{_tizenfx_bin_path}/bin/internal/*.dll %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 Artifacts/bin/public/*.dll %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 Artifacts/bin/internal/*.dll %{buildroot}%{DOTNET_ASSEMBLY_PATH}
 
 # Install Debug Symbols
-install -p -m 644 %{_tizenfx_bin_path}/bin/public/*.pdb %{buildroot}%{DOTNET_ASSEMBLY_PATH}
-install -p -m 644 %{_tizenfx_bin_path}/bin/internal/*.pdb %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 Artifacts/bin/public/*.pdb %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 Artifacts/bin/internal/*.pdb %{buildroot}%{DOTNET_ASSEMBLY_PATH}
 
 # Install Resource files
-[ -d %{_tizenfx_bin_path}/bin/public/res ] \
-  && install -p -m 644 %{_tizenfx_bin_path}/bin/public/res/* %{buildroot}%{DOTNET_ASSEMBLY_RES_PATH}
-[ -d %{_tizenfx_bin_path}/bin/internal/res ] \
-  && install -p -m 644 %{_tizenfx_bin_path}/bin/internal/res/* %{buildroot}%{DOTNET_ASSEMBLY_RES_PATH}
+[ -d Artifacts/bin/public/res ] \
+  && cp -fr Artifacts/bin/public/res/* %{buildroot}%{DOTNET_ASSEMBLY_RES_PATH}
+[ -d Artifacts/bin/internal/res ] \
+  && cp -fr Artifacts/bin/internal/res/* %{buildroot}%{DOTNET_ASSEMBLY_RES_PATH}
 
 # Install Dummy Assemblies
-install -p -m 644 %{_tizenfx_bin_path}/bin/dummy/*.dll %{buildroot}%{DOTNET_ASSEMBLY_DUMMY_PATH}
+install -p -m 644 Artifacts/bin/dummy/*.dll %{buildroot}%{DOTNET_ASSEMBLY_DUMMY_PATH}
+
+# Install Preload
+install -p -m 644 Artifacts/preload/*.preload %{buildroot}%{DOTNET_PRELOAD_PATH}
 
 # Install NuGet Packages
-install -p -m 644 %{_tizenfx_bin_path}/*.nupkg %{buildroot}%{DOTNET_NUGET_SOURCE}
+install -p -m 644 Artifacts/*.nupkg %{buildroot}%{DOTNET_NUGET_SOURCE}
 install -p -m 644 packaging/*.nupkg %{buildroot}%{DOTNET_NUGET_SOURCE}
 
 # Install Tools
 install -p -m 644 tools/bin/* %{buildroot}%{DOTNET_TOOLS_PATH}
 
-# Install Preload
-install -p -m 644 packaging/preload/*.preload %{buildroot}%{DOTNET_PRELOAD_PATH}
 
 %post
 /usr/bin/vconftool set -t int db/dotnet/tizen_api_version %{TIZEN_NET_API_VERSION} -f
@@ -256,29 +214,22 @@ install -p -m 644 packaging/preload/*.preload %{buildroot}%{DOTNET_PRELOAD_PATH}
 %manifest %{name}.manifest
 %{DOTNET_TOOLS_PATH}/*
 
-%files dummy
-
 %files full
 %manifest %{name}.manifest
 %attr(644,root,root) %{DOTNET_ASSEMBLY_PATH}/*.dll
 %attr(644,root,root) %{DOTNET_ASSEMBLY_DUMMY_PATH}/*.dll
 %attr(644,root,root) %{DOTNET_ASSEMBLY_RES_PATH}/*
+%attr(644,root,root) %{DOTNET_PRELOAD_PATH}/*
 
 %files debug
 %manifest %{name}.manifest
 %attr(644,root,root) %{DOTNET_ASSEMBLY_PATH}/*.pdb
 
-%files common -f common.filelist
-%manifest %{name}.manifest
-
-%files mobile -f mobile.filelist
-%manifest %{name}.manifest
-
-%files mobile-emul -f mobile-emul.filelist
+%files mobile -f Artifacts/mobile.filelist
 %manifest %{name}.manifest
 
-%files tv -f tv.filelist
+%files tv -f Artifacts/tv.filelist
 %manifest %{name}.manifest
 
-%files wearable -f wearable.filelist
+%files wearable -f Artifacts/wearable.filelist
 %manifest %{name}.manifest
index 2f84e9e..702b0c8 100644 (file)
@@ -81,14 +81,6 @@ AutoReqProv: no
 %description tools
 Tools for TizenFX
 
-%package dummy
-Summary:   not used package
-Group:     Development/Libraries
-AutoReqProv: no
-
-%description dummy
-not used package
-
 %package full
 Summary:   All Tizen .NET assemblies
 Group:     Development/Libraries
@@ -106,15 +98,6 @@ AutoReqProv: no
 %description debug
 All .pdb files of Tizen .NET
 
-%package common
-Summary:   Tizen .NET assemblies for Common profile
-Group:     Development/Libraries
-Requires:  %{name} = %{version}-%{release}
-AutoReqProv: no
-
-%description common
-Tizen .NET assemblies for Common profile
-
 %package mobile
 Summary:   Tizen .NET assemblies for Mobile profile
 Group:     Development/Libraries
@@ -124,15 +107,6 @@ AutoReqProv: no
 %description mobile
 Tizen .NET assemblies for Mobile profile
 
-%package mobile-emul
-Summary:   Tizen .NET assemblies for Emulator of Mobile profile
-Group:     Development/Libraries
-Requires:  %{name} = %{version}-%{release}
-AutoReqProv: no
-
-%description mobile-emul
-Tizen .NET assemblies for Emulator of Mobile profile
-
 %package tv
 Summary:   Tizen .NET assemblies for TV profile
 Group:     Development/Libraries
@@ -156,23 +130,27 @@ Tizen .NET assemblies for Wearable profile
 cp %{SOURCE1} .
 
 %build
-%{?asan:export ASAN_OPTIONS=use_sigaltstack=false:allow_user_segv_handler=true:handle_sigfpe=false:`cat /ASAN_OPTIONS`}
 
-%define _tizenfx_bin_path Artifacts
+# configure for ASAN
+%{?asan:export ASAN_OPTIONS=use_sigaltstack=false:allow_user_segv_handler=true:handle_sigfpe=false:`cat /ASAN_OPTIONS`}
 
-rm -fr %{_tizenfx_bin_path}
+# prepare for build
 export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
-
 %define build_cmd ./tools/scripts/retry.sh ./tools/scripts/timeout.sh -t 600 ./build.sh
+
+# build full assemblies
 %if %{defined profile}
 %{build_cmd} --full /p:BuildProfile=%{profile}
 %else
 %{build_cmd} --full
 %endif
+
+# pack nuget package
 %{build_cmd} --pack %{TIZEN_NET_NUGET_VERSION}
 
+# check validation of struct size
 %if %{defined enable_struct_test}
-dotnet validate-struct %{_tizenfx_bin_path}/bin/public || echo "
+dotnet validate-struct Artifacts/bin/public || echo "
     #######################################################
     ##################### W A R N I N G ###################
     #######################################################
@@ -182,27 +160,6 @@ dotnet validate-struct %{_tizenfx_bin_path}/bin/public || echo "
 "
 %endif
 
-# Generate filelist for rpm packaging
-GetFileList() {
-  PROFILE=$1
-  cat packaging/PlatformFileList.txt | grep -v "\.preload" | grep -E "#$PROFILE[[:space:]]|#$PROFILE$" | cut -d# -f1 | sed "s#^#%{DOTNET_ASSEMBLY_PATH}/#"
-  for f in $(cat packaging/PlatformFileList.txt | grep -v -E "#$PROFILE[[:space:]]|#$PROFILE$|\.preload" | cut -d# -f1); do
-    if [ -f %{_tizenfx_bin_path}/bin/dummy/$f ]; then
-      echo "%{DOTNET_ASSEMBLY_PATH}/ref/$f"
-    fi
-  done
-  for f in $(cat packaging/PlatformFileList.txt | grep "\.preload" | grep -E "#$PROFILE[[:space:]]|#$PROFILE$" | cut -d# -f1); do
-    if [ -f packaging/preload/$f ]; then
-      echo "%{DOTNET_PRELOAD_PATH}/$f"
-    fi
-  done
-}
-
-GetFileList common > common.filelist
-GetFileList mobile > mobile.filelist
-GetFileList mobile-emul > mobile-emul.filelist
-GetFileList tv > tv.filelist
-GetFileList wearable > wearable.filelist
 
 %install
 mkdir -p %{buildroot}%{DOTNET_ASSEMBLY_PATH}
@@ -213,31 +170,32 @@ mkdir -p %{buildroot}%{DOTNET_TOOLS_PATH}
 mkdir -p %{buildroot}%{DOTNET_PRELOAD_PATH}
 
 # Install Runtime Assemblies
-install -p -m 644 %{_tizenfx_bin_path}/bin/public/*.dll %{buildroot}%{DOTNET_ASSEMBLY_PATH}
-install -p -m 644 %{_tizenfx_bin_path}/bin/internal/*.dll %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 Artifacts/bin/public/*.dll %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 Artifacts/bin/internal/*.dll %{buildroot}%{DOTNET_ASSEMBLY_PATH}
 
 # Install Debug Symbols
-install -p -m 644 %{_tizenfx_bin_path}/bin/public/*.pdb %{buildroot}%{DOTNET_ASSEMBLY_PATH}
-install -p -m 644 %{_tizenfx_bin_path}/bin/internal/*.pdb %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 Artifacts/bin/public/*.pdb %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 Artifacts/bin/internal/*.pdb %{buildroot}%{DOTNET_ASSEMBLY_PATH}
 
 # Install Resource files
-[ -d %{_tizenfx_bin_path}/bin/public/res ] \
-  && install -p -m 644 %{_tizenfx_bin_path}/bin/public/res/* %{buildroot}%{DOTNET_ASSEMBLY_RES_PATH}
-[ -d %{_tizenfx_bin_path}/bin/internal/res ] \
-  && install -p -m 644 %{_tizenfx_bin_path}/bin/internal/res/* %{buildroot}%{DOTNET_ASSEMBLY_RES_PATH}
+[ -d Artifacts/bin/public/res ] \
+  && cp -fr Artifacts/bin/public/res/* %{buildroot}%{DOTNET_ASSEMBLY_RES_PATH}
+[ -d Artifacts/bin/internal/res ] \
+  && cp -fr Artifacts/bin/internal/res/* %{buildroot}%{DOTNET_ASSEMBLY_RES_PATH}
 
 # Install Dummy Assemblies
-install -p -m 644 %{_tizenfx_bin_path}/bin/dummy/*.dll %{buildroot}%{DOTNET_ASSEMBLY_DUMMY_PATH}
+install -p -m 644 Artifacts/bin/dummy/*.dll %{buildroot}%{DOTNET_ASSEMBLY_DUMMY_PATH}
+
+# Install Preload
+install -p -m 644 Artifacts/preload/*.preload %{buildroot}%{DOTNET_PRELOAD_PATH}
 
 # Install NuGet Packages
-install -p -m 644 %{_tizenfx_bin_path}/*.nupkg %{buildroot}%{DOTNET_NUGET_SOURCE}
+install -p -m 644 Artifacts/*.nupkg %{buildroot}%{DOTNET_NUGET_SOURCE}
 install -p -m 644 packaging/*.nupkg %{buildroot}%{DOTNET_NUGET_SOURCE}
 
 # Install Tools
 install -p -m 644 tools/bin/* %{buildroot}%{DOTNET_TOOLS_PATH}
 
-# Install Preload
-install -p -m 644 packaging/preload/*.preload %{buildroot}%{DOTNET_PRELOAD_PATH}
 
 %post
 /usr/bin/vconftool set -t int db/dotnet/tizen_api_version %{TIZEN_NET_API_VERSION} -f
@@ -255,29 +213,22 @@ install -p -m 644 packaging/preload/*.preload %{buildroot}%{DOTNET_PRELOAD_PATH}
 %manifest %{name}.manifest
 %{DOTNET_TOOLS_PATH}/*
 
-%files dummy
-
 %files full
 %manifest %{name}.manifest
 %attr(644,root,root) %{DOTNET_ASSEMBLY_PATH}/*.dll
 %attr(644,root,root) %{DOTNET_ASSEMBLY_DUMMY_PATH}/*.dll
 %attr(644,root,root) %{DOTNET_ASSEMBLY_RES_PATH}/*
+%attr(644,root,root) %{DOTNET_PRELOAD_PATH}/*
 
 %files debug
 %manifest %{name}.manifest
 %attr(644,root,root) %{DOTNET_ASSEMBLY_PATH}/*.pdb
 
-%files common -f common.filelist
-%manifest %{name}.manifest
-
-%files mobile -f mobile.filelist
-%manifest %{name}.manifest
-
-%files mobile-emul -f mobile-emul.filelist
+%files mobile -f Artifacts/mobile.filelist
 %manifest %{name}.manifest
 
-%files tv -f tv.filelist
+%files tv -f Artifacts/tv.filelist
 %manifest %{name}.manifest
 
-%files wearable -f wearable.filelist
+%files wearable -f Artifacts/wearable.filelist
 %manifest %{name}.manifest
index da8ed84..c101198 100755 (executable)
@@ -1,5 +1,3 @@
-#!/usr/bin/python3
-
 import json
 import os
 
index 7afceda..bfce701 100755 (executable)
@@ -26,4 +26,4 @@ sed -i -e "s/@rpm_version@/$RPM_VERSION/g" $RPMSPEC
 sed -i -e "s/@nuget_version@/$NUGET_VERSION/g" $RPMSPEC
 
 # Update RID
-$SCRIPT_DIR/makerid.py
+python $SCRIPT_DIR/makerid.py
index 2c650fb..78a3a55 100644 (file)
Binary files a/pkg/Tizen.NET.API8/design/Tizen.NUI.Design.dll and b/pkg/Tizen.NET.API8/design/Tizen.NUI.Design.dll differ
index 095b8fb..1868252 100644 (file)
@@ -1,10 +1,5 @@
 <Project>
 
   <Import Project="$(MSBuildThisFileDirectory)..\build\common.props" />
-  <Import Project="$(MSBuildThisFileDirectory)..\build\directories.props" />
-
-  <PropertyGroup>
-    <ArtifactsDirectory>$(OutputPublicDir)</ArtifactsDirectory>
-  </PropertyGroup>
 
 </Project>
\ No newline at end of file
index da8d3f6..a34c236 100644 (file)
@@ -4,6 +4,14 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>wearable</SupportedProfiles>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <TizenPreloadFile Include="ElmSharp.Wearable.preload" Sequence="30" />
+  </ItemGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\ElmSharp\ElmSharp.csproj" />
   </ItemGroup>
index f42cd01..56fcd5c 100644 (file)
@@ -8,4 +8,8 @@
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
   </ItemGroup>
 
+  <ItemGroup>
+    <TizenPreloadFile Include="ElmSharp.preload" Sequence="30" />
+  </ItemGroup>
+
 </Project>
index 7f4584f..7a686e9 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile;wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
index 7f4584f..7a686e9 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile;wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
index af9c378..5c666e7 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile;wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Applications.Common\Tizen.Applications.Common.csproj" />
index f358b07..73fcf25 100755 (executable)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\ElmSharp\ElmSharp.csproj" />
     <ProjectReference Include="..\Tizen.Applications.Common\Tizen.Applications.Common.csproj" />
index 7f4584f..7a686e9 100755 (executable)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile;wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
index 7f4584f..53fd210 100755 (executable)
@@ -5,6 +5,10 @@
   </PropertyGroup>
 
   <ItemGroup>
+    <TizenPreloadFile Include="Tizen.Applications.Common.preload" Sequence="30" />
+  </ItemGroup>
+
+  <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
   </ItemGroup>
index 1407501..207eea4 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
index 020b2cb..ee7f3b8 100755 (executable)
@@ -5,6 +5,10 @@
   </PropertyGroup>
 
   <ItemGroup>
+    <TizenPreloadFile Include="Tizen.Applications.UI.preload" Sequence="30" />
+  </ItemGroup>
+
+  <ItemGroup>
     <ProjectReference Include="..\Tizen.Applications.Common\Tizen.Applications.Common.csproj" />
   </ItemGroup>
 
index d0d923b..0dbc62d 100755 (executable)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen.Applications.Common\Tizen.Applications.Common.csproj" />
     <ProjectReference Include="..\ElmSharp\ElmSharp.csproj" />
index 92acbe9..f834976 100755 (executable)
@@ -1,13 +1,17 @@
 <Project Sdk="Microsoft.NET.Sdk">
+
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
+
+  <PropertyGroup>
+    <SupportedProfiles>wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
          <ProjectReference Include="..\Tizen.Applications.Common\Tizen.Applications.Common.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <Folder Include="Tizen.Applications\Interop\" />
-  </ItemGroup>
+
 </Project>
index 7f4584f..7a686e9 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile;wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
index 7f4584f..0fd03c2 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
index dbdcea4..201ca30 100644 (file)
@@ -4,4 +4,8 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <ItemGroup>
+    <TizenPreloadFile Include="Tizen.Log.preload" Sequence="30" />
+  </ItemGroup>
+
 </Project>
index 7f4584f..7a686e9 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile;wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
index ec9bff7..f2d87db 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile;wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen.Multimedia\Tizen.Multimedia.csproj" />
   </ItemGroup>
index 8d4fb31..76f23ae 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile;wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen.Multimedia\Tizen.Multimedia.csproj" />
     <ProjectReference Include="..\Tizen.System.Information\Tizen.System.Information.csproj" />
index cde3690..616af37 100755 (executable)
@@ -1,17 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <!-- Property Group for Tizen Project -->
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
-    <TizenCreateTpkOnBuild>false</TizenCreateTpkOnBuild>
-  </PropertyGroup>
-
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugType>portable</DebugType>
-  </PropertyGroup>
-
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>None</DebugType>
   </PropertyGroup>
 
   <ItemGroup>
@@ -26,7 +16,4 @@
     </None>
   </ItemGroup>
 
-
-  <!-- Include Nuget Package for Tizen Project building -->
-
 </Project>
\ No newline at end of file
index ecf1b7f..2d7a167 100755 (executable)
@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
-    <ArtifactsDirectory>$(OutputBaseDir)bin\design\</ArtifactsDirectory>
+    <ExternalLibraryDir Condition="'$(ExternalLibraryDir)' == ''">$(ProjectRootDir)externals\libs\</ExternalLibraryDir>
   </PropertyGroup>
 
   <ItemGroup>
index 5e4c54a..02efe79 100755 (executable)
@@ -5,6 +5,10 @@
     <RootNamespace>Tizen.NUI</RootNamespace>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen.Applications.Common\Tizen.Applications.Common.csproj" />
     <ProjectReference Include="..\Tizen.NUI\Tizen.NUI.csproj" />
index bea1f4c..34ce2dd 100644 (file)
@@ -1,21 +1,17 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-       <PropertyGroup>
-               <TargetFramework>netstandard2.0</TargetFramework>
-               <TizenCreateTpkOnBuild>false</TizenCreateTpkOnBuild>
-       </PropertyGroup>
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <TizenCreateTpkOnBuild>false</TizenCreateTpkOnBuild>
+  </PropertyGroup>
 
-       <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-               <DebugType>portable</DebugType>
-       </PropertyGroup>
+  <PropertyGroup>
+    <SupportedProfiles>mobile;wearable</SupportedProfiles>
+  </PropertyGroup>
 
-       <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-               <DebugType>None</DebugType>
-       </PropertyGroup>
-
-       <ItemGroup>
-               <ProjectReference Include="..\Tizen.NUI\Tizen.NUI.csproj" />
-               <ProjectReference Include="..\Tizen.System.Information\Tizen.System.Information.csproj" />
-       </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Tizen.NUI\Tizen.NUI.csproj" />
+    <ProjectReference Include="..\Tizen.System.Information\Tizen.System.Information.csproj" />
+  </ItemGroup>
 
 </Project>
index e8f9886..c64bd04 100644 (file)
@@ -6,6 +6,10 @@
   </PropertyGroup>
 
   <ItemGroup>
+    <TizenPreloadFile Include="Tizen.NUI.preload" Sequence="30" />
+  </ItemGroup>
+
+  <ItemGroup>
     <PackageReference Include="Microsoft.CSharp" Version="4.3.0" />
     <PackageReference Include="System.Reflection" Version="4.3.0" />
     <PackageReference Include="System.Reflection.TypeExtensions" Version="4.3.0" />
index aeeef3f..a594125 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile;wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen.System.Information\Tizen.System.Information.csproj" />
   </ItemGroup>
index 7f4584f..7a686e9 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile;wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
index 4c51c41..2c28715 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile;tv</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
index 7a4c6ea..fccb16a 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Applications.Common\Tizen.Applications.Common.csproj" />
index 7f4584f..7a686e9 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile;wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
index 4c51c41..b783573 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile;wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
index 3b49fbd..025032a 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile;wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
        <ProjectReference Include="..\Tizen\Tizen.csproj" />
   </ItemGroup>
index 7f4584f..69865a1 100755 (executable)
@@ -5,6 +5,10 @@
   </PropertyGroup>
 
   <ItemGroup>
+    <TizenPreloadFile Include="Tizen.System.Information.preload" Sequence="30" />
+  </ItemGroup>
+
+  <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
   </ItemGroup>
index 2648db5..1160c1a 100644 (file)
@@ -4,10 +4,13 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
   </ItemGroup>
 
-
 </Project>
index 9ff6f14..c2cd32e 100755 (executable)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
index 4c51c41..b783573 100644 (file)
@@ -4,6 +4,10 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <PropertyGroup>
+    <SupportedProfiles>mobile;wearable</SupportedProfiles>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\Tizen\Tizen.csproj" />
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
index 8b42da5..a0621cd 100644 (file)
@@ -8,4 +8,8 @@
     <ProjectReference Include="..\Tizen.Log\Tizen.Log.csproj" />
   </ItemGroup>
 
+  <ItemGroup>
+    <TizenPreloadFile Include="Tizen.preload" Sequence="20" />
+  </ItemGroup>
+
 </Project>