UWP: build scripts
GitOrigin-RevId: 8bbfa1f455a6521f1d823147ddff97768db21da2
This commit is contained in:
parent
f5388f69f9
commit
110f2c5b7b
@ -209,6 +209,9 @@ add_subdirectory(td/generate)
|
|||||||
|
|
||||||
if (NOT CMAKE_CROSSCOMPILING)
|
if (NOT CMAKE_CROSSCOMPILING)
|
||||||
add_custom_target(prepare_cross_compiling DEPENDS tl_generate_common tdmime_auto)
|
add_custom_target(prepare_cross_compiling DEPENDS tl_generate_common tdmime_auto)
|
||||||
|
if (TD_ENABLE_DOTNET)
|
||||||
|
add_dependencies(prepare_cross_compiling generate_dotnet_api)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT OPENSSL_FOUND)
|
if (NOT OPENSSL_FOUND)
|
||||||
|
12
example/uwp/SDKManifest.xml
Normal file
12
example/uwp/SDKManifest.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<FileList
|
||||||
|
DisplayName="TDLib for Universal Windows Platfrom"
|
||||||
|
ProductFamilyName="TDLib.UWP"
|
||||||
|
MoreInfo="https://core.telegram.org/tdlib"
|
||||||
|
MinVSVersion="14.0"
|
||||||
|
AppliesTo="WindowsAppContainer"
|
||||||
|
DependsOn="Microsoft.VCLibs, version=14.0"
|
||||||
|
SupportsMultipleVersions="Error"
|
||||||
|
SupportedArchitectures="x86;x64;ARM">
|
||||||
|
<File Reference="tddotnet.winmd" Implementation="tddotnet.dll" />
|
||||||
|
</FileList>
|
14
example/uwp/[Content_Types].xml
Normal file
14
example/uwp/[Content_Types].xml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
|
||||||
|
<Default Extension="winmd" ContentType="application/octet-stream" />
|
||||||
|
<Default Extension="pri" ContentType="application/octet-stream" />
|
||||||
|
<Default Extension="dll" ContentType="application/octet-stream" />
|
||||||
|
<Default Extension="h" ContentType="application/octet-stream" />
|
||||||
|
<Default Extension="lib" ContentType="application/octet-stream" />
|
||||||
|
<Default Extension="pdb" ContentType="application/octet-stream" />
|
||||||
|
<Default Extension="png" ContentType="application/octet-stream" />
|
||||||
|
<Default Extension="props" ContentType="application/octet-stream" />
|
||||||
|
<Default Extension="txt" ContentType="text/plain" />
|
||||||
|
<Default Extension="vsixmanifest" ContentType="text/xml" />
|
||||||
|
<Default Extension="xml" ContentType="text/xml" />
|
||||||
|
</Types>
|
135
example/uwp/build.ps1
Normal file
135
example/uwp/build.ps1
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
param (
|
||||||
|
[string]$vcpkg_root = $(throw "-vcpkg_root=<path to vcpkg> is required"),
|
||||||
|
[string]$arch = "",
|
||||||
|
[string]$mode = "all"
|
||||||
|
)
|
||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
|
||||||
|
$vcpkg_root = Resolve-Path $vcpkg_root
|
||||||
|
|
||||||
|
$vcpkg_cmake="${vcpkg_root}\scripts\buildsystems\vcpkg.cmake"
|
||||||
|
$arch_list = @( "x86", "x64", "arm" )
|
||||||
|
if ($arch) {
|
||||||
|
$arch_list = @(, $arch)
|
||||||
|
}
|
||||||
|
|
||||||
|
$td_root = Resolve-Path "../.."
|
||||||
|
|
||||||
|
function CheckLastExitCode {
|
||||||
|
if ($LastExitCode -ne 0) {
|
||||||
|
$msg = @"
|
||||||
|
EXE RETURNED EXIT CODE $LastExitCode
|
||||||
|
CALLSTACK:$(Get-PSCallStack | Out-String)
|
||||||
|
"@
|
||||||
|
throw $msg
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean {
|
||||||
|
Remove-Item build-* -Force -Recurse -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
|
||||||
|
function prepare {
|
||||||
|
New-Item -ItemType Directory -Force -Path build-native
|
||||||
|
|
||||||
|
cd build-native
|
||||||
|
|
||||||
|
cmake $td_root -DCMAKE_TOOLCHAIN_FILE="$vcpkg_cmake" -DTD_ENABLE_DOTNET=1
|
||||||
|
CheckLastExitCode
|
||||||
|
cmake --build . --target prepare_cross_compiling
|
||||||
|
CheckLastExitCode
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
}
|
||||||
|
|
||||||
|
function config {
|
||||||
|
New-Item -ItemType Directory -Force -Path build-uwp
|
||||||
|
cd build-uwp
|
||||||
|
|
||||||
|
ForEach($arch in $arch_list) {
|
||||||
|
echo "Config Arch = [$arch]"
|
||||||
|
Remove-Item $arch -Force -Recurse -ErrorAction SilentlyContinue
|
||||||
|
New-Item -ItemType Directory -Force -Path $arch
|
||||||
|
cd $arch
|
||||||
|
echo "${td_root}"
|
||||||
|
$fixed_arch = $arch
|
||||||
|
if ($arch -eq "x86") {
|
||||||
|
$fixed_arch = "win32"
|
||||||
|
}
|
||||||
|
cmake "$td_root" -A $fixed_arch -DCMAKE_SYSTEM_VERSION="10.0" -DCMAKE_SYSTEM_NAME="WindowsStore" -DCMAKE_TOOLCHAIN_FILE="$vcpkg_cmake" -DTD_ENABLE_DOTNET=1
|
||||||
|
CheckLastExitCode
|
||||||
|
cd ..
|
||||||
|
}
|
||||||
|
echo "done"
|
||||||
|
cd ..
|
||||||
|
}
|
||||||
|
|
||||||
|
function build {
|
||||||
|
cd build-uwp
|
||||||
|
ForEach($arch in $arch_list) {
|
||||||
|
echo "Build Arch = [$arch]"
|
||||||
|
cd $arch
|
||||||
|
cmake --build . --config Release --target tddotnet
|
||||||
|
cmake --build . --config Debug --target tddotnet
|
||||||
|
cd ..
|
||||||
|
}
|
||||||
|
cd ..
|
||||||
|
}
|
||||||
|
|
||||||
|
function export {
|
||||||
|
cd build-uwp
|
||||||
|
Remove-Item vsix -Force -Recurse -ErrorAction SilentlyContinue
|
||||||
|
mkdir vsix
|
||||||
|
cp ../SDKManifest.xml vsix
|
||||||
|
cp ../extension.vsixmanifest vsix
|
||||||
|
cp '../`[Content_Types`].xml' vsix
|
||||||
|
|
||||||
|
ForEach($arch in $arch_list) {
|
||||||
|
New-Item -ItemType Directory -Force -Path vsix/DesignTime/Debug/${arch}
|
||||||
|
New-Item -ItemType Directory -Force -Path vsix/DesignTime/Retail/${arch}
|
||||||
|
New-Item -ItemType Directory -Force -Path vsix/Redist/Debug/${arch}
|
||||||
|
New-Item -ItemType Directory -Force -Path vsix/Redist/Retail/${arch}
|
||||||
|
New-Item -ItemType Directory -Force -Path vsix/References/CommonConfiguration/${arch}
|
||||||
|
|
||||||
|
cp ${arch}/Debug/* -filter "tddotnet.*" -include "*.lib" vsix/DesignTime/Debug/${arch}/
|
||||||
|
cp ${arch}/Release/* -filter "tddotnet.*" -include "*.lib" vsix/DesignTime/Retail/${arch}/
|
||||||
|
|
||||||
|
cp ${arch}/Debug/* -filter "tddotnet.*" -include "*.pdb","*.dll" vsix/Redist/Debug/${arch}/
|
||||||
|
cp ${arch}/Release/* -filter "tddotnet.*" -include "*.pdb","*.dll" vsix/Redist/Retail/${arch}/
|
||||||
|
|
||||||
|
cp ${arch}/Release/* -filter "tddotnet.*" -include "*.pri","*.winmd" vsix/References/CommonConfiguration/${arch}/
|
||||||
|
}
|
||||||
|
|
||||||
|
cd vsix
|
||||||
|
|
||||||
|
7z.exe a -tzip -r tdlib.vsix *
|
||||||
|
#zip -r tdlib.vsix *
|
||||||
|
#WinRAR.exe a -afzip -r -ep1 tdlib.vsix *
|
||||||
|
cd ..
|
||||||
|
}
|
||||||
|
|
||||||
|
function run {
|
||||||
|
Push-Location
|
||||||
|
Try {
|
||||||
|
if (($mode -eq "clean") -or ($mode -eq "all")) {
|
||||||
|
clean
|
||||||
|
}
|
||||||
|
if (($mode -eq "prepare") -or ($mode -eq "all")) {
|
||||||
|
prepare
|
||||||
|
}
|
||||||
|
if (($mode -eq "config") -or ( $mode -eq "all")) {
|
||||||
|
config
|
||||||
|
}
|
||||||
|
if (($mode -eq "build") -or ($mode -eq "all")) {
|
||||||
|
build
|
||||||
|
}
|
||||||
|
if (($mode -eq "export") -or ($mode -eq "all")) {
|
||||||
|
export
|
||||||
|
}
|
||||||
|
} Finally {
|
||||||
|
Pop-Location
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
run
|
||||||
|
|
15
example/uwp/extension.vsixmanifest
Normal file
15
example/uwp/extension.vsixmanifest
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011">
|
||||||
|
<Metadata>
|
||||||
|
<Identity Id="TDLib.UWP" Version="1.1.3" Language="en-US" Publisher="Telegram team" />
|
||||||
|
<DisplayName>TDLib for Universal Windows Platform</DisplayName>
|
||||||
|
<Description>TDLib is a library for building Telegram clients</Description>
|
||||||
|
<MoreInfo>https://core.telegram.org/tdlib</MoreInfo>
|
||||||
|
<Tags>Telegram, TDLib</Tags>
|
||||||
|
</Metadata>
|
||||||
|
<Installation AllUsers="true" Scope="Global">
|
||||||
|
<InstallationTarget Id="Microsoft.ExtensionSDK" TargetPlatformIdentifier="UAP" TargetPlatformVersion="v0.8.0.0" SdkName="TDLib.UWP" SdkVersion="1.0" />
|
||||||
|
</Installation>
|
||||||
|
<Assets>
|
||||||
|
<Asset Type="Microsoft.ExtensionSDK" Path="SDKManifest.xml" />
|
||||||
|
</Assets>
|
||||||
|
</PackageManifest>
|
@ -288,8 +288,8 @@ Result<CpuStat> cpu_stat() {
|
|||||||
return Status::Error("Not supported");
|
return Status::Error("Not supported");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if TD_PORT_WINDOWS
|
#if TD_PORT_WINDOWS
|
||||||
namespace td {
|
namespace td {
|
||||||
|
Loading…
Reference in New Issue
Block a user