[Build] Set TFM supported by Tizen to vconf (#2026)
authorJongHeonChoi <j-h.choi@samsung.com>
Thu, 24 Sep 2020 08:14:36 +0000 (17:14 +0900)
committerGitHub <noreply@github.com>
Thu, 24 Sep 2020 08:14:36 +0000 (17:14 +0900)
* Added to update TFM with maketfm.py

Co-authored-by: Hyungju Lee <leee.lee@samsung.com>
packaging/csapi-tizenfx.spec
packaging/csapi-tizenfx.spec.in
packaging/makespec.sh [changed mode: 0755->0644]
packaging/maketfm.py [new file with mode: 0644]

index 76ac6dc..d1e5948 100644 (file)
@@ -12,6 +12,7 @@
 %define DOTNET_NUGET_SOURCE /nuget
 
 %define TIZEN_NET_RUNTIME_IDENTIFIERS 4.0.0:5.0.0:5.5.0:6.0.0
+%define TIZEN_NET_TARGET_FRAMEWORK_MONIKERS tizen80:tizen70:tizen60:tizen50:tizen40:netstandard2.0
 
 Name:       csapi-tizenfx
 Summary:    Assemblies of Tizen .NET
@@ -210,6 +211,7 @@ install -p -m 644 tools/bin/* %{buildroot}%{DOTNET_TOOLS_PATH}
 /usr/bin/vconftool set -t int db/dotnet/tizen_api_version %{TIZEN_NET_API_VERSION} -f
 /usr/bin/vconftool set -t string db/dotnet/tizen_api_path %{DOTNET_ASSEMBLY_PATH} -f
 /usr/bin/vconftool set -t string db/dotnet/tizen_rid_version %{TIZEN_NET_RUNTIME_IDENTIFIERS} -f
+/usr/bin/vconftool set -t string db/dotnet/tizen_tfm_support %{TIZEN_NET_TARGET_FRAMEWORK_MONIKERS} -f
 
 %files
 %license LICENSE
index 2a6c029..cc8ab0b 100644 (file)
@@ -11,6 +11,7 @@
 %define DOTNET_NUGET_SOURCE /nuget
 
 %define TIZEN_NET_RUNTIME_IDENTIFIERS @rid_version@
+%define TIZEN_NET_TARGET_FRAMEWORK_MONIKERS @tfm_support@
 
 Name:       csapi-tizenfx
 Summary:    Assemblies of Tizen .NET
@@ -209,6 +210,7 @@ install -p -m 644 tools/bin/* %{buildroot}%{DOTNET_TOOLS_PATH}
 /usr/bin/vconftool set -t int db/dotnet/tizen_api_version %{TIZEN_NET_API_VERSION} -f
 /usr/bin/vconftool set -t string db/dotnet/tizen_api_path %{DOTNET_ASSEMBLY_PATH} -f
 /usr/bin/vconftool set -t string db/dotnet/tizen_rid_version %{TIZEN_NET_RUNTIME_IDENTIFIERS} -f
+/usr/bin/vconftool set -t string db/dotnet/tizen_tfm_support %{TIZEN_NET_TARGET_FRAMEWORK_MONIKERS} -f
 
 %files
 %license LICENSE
old mode 100755 (executable)
new mode 100644 (file)
index bfce701..103b285
@@ -27,3 +27,6 @@ sed -i -e "s/@nuget_version@/$NUGET_VERSION/g" $RPMSPEC
 
 # Update RID
 python $SCRIPT_DIR/makerid.py
+
+# Update TFM
+python $SCRIPT_DIR/maketfm.py
diff --git a/packaging/maketfm.py b/packaging/maketfm.py
new file mode 100644 (file)
index 0000000..3641785
--- /dev/null
@@ -0,0 +1,32 @@
+import os
+import xml.etree.ElementTree as ET
+
+scrpit_dir = os.path.dirname(os.path.abspath(__file__))
+spec_dir = os.path.join(scrpit_dir, "csapi-tizenfx.spec")
+tree = ET.parse("../pkg/Tizen.NET/Tizen.NET.nuspec")
+root = tree.getroot()
+
+tfm_list = []
+for meta_child in root.iter():
+    if meta_child.tag == "{http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd}metadata":
+        for depen_child in meta_child:
+            if depen_child.tag == "{http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd}dependencies":
+                for group in depen_child:
+                    tfm = group.attrib["targetFramework"].lower()
+                    tfm = tfm.replace(".", "")
+                    tfm = tfm.replace("20", "2.0")
+                    if tfm.strip():
+                        tfm_list.append(tfm)
+
+tfm_list = list(set(tfm_list))
+tfm_list.sort(reverse=True)
+
+f = open(spec_dir,'r')
+origin_data = f.read()
+f.close()
+
+new_data = origin_data.replace("@tfm_support@", ':'.join(tfm_list))
+
+f = open(spec_dir, 'w')
+f.write(new_data)
+f.close()