...
 
Commits (176)
---
Language: Cpp
# BasedOnStyle: WebKit
AccessModifierOffset: -4
AlignAfterOpenBracket: DontAlign
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Right
AlignOperands: false
AlignTrailingComments: false
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: false
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: All
BreakBeforeBraces: WebKit
BreakBeforeInheritanceComma: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeComma
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 0
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: true
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: false
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IncludeCategories:
- Regex: '^"config\.h"'
Priority: -1
# The main header for a source file automatically gets category 0
- Regex: '.*'
Priority: 1
- Regex: '^<.*\.h>'
Priority: 2
IncludeIsMainRegex: '(Test)?$'
IndentCaseLabels: false
IndentWidth: 4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 4
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 8
UseTab: Never
...
...@@ -8,12 +8,12 @@ x86/ ...@@ -8,12 +8,12 @@ x86/
.qmake.stash .qmake.stash
debug/ debug/
release/ release/
beta/
qrencode-win32/ qrencode-win32/
*.dll *.dll
.gitignore
*.qm *.qm
build/ build/
nuget.exe nuget.exe
*.autosave
JamiInstaller/bin/ changelog.html
JamiInstaller/obj/ obj/
/obj
/bin
Components.wxs
This diff is collapsed.
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Include> <Include>
<?define Name="Jami"?> <?if $(var.Configuration) = Release ?>
<?define Manufacturer="Savoir-Faire Linux"?> <?define Name="Jami" ?>
<?else?>
<?define Name="Jami (BETA)" ?>
<?endif ?>
<?if $(var.Configuration) = Release ?>
<?define ReleaseDir="..\x64\Release"?> <?define ReleaseDir="..\x64\Release"?>
<?else?>
<?define ReleaseDir="..\x64\Beta"?>
<?endif ?>
<?define AppName="Jami" ?>
<?define Manufacturer="Savoir-Faire Linux"?>
<?define UcrtDir="C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x64"?> <?define UcrtDir="C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x64"?>
</Include> </Include>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi">
<xsl:output method="xml" indent="yes" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:key name="service-search" match="wix:Component[contains(wix:File/@Source, 'Jami.exe')]" use="@Id" />
<xsl:key name="vc-service-search" match="wix:Component[contains(wix:File/@Source, 'vcredist_x64.exe')]" use="@Id" />
<xsl:key name="pdb-search" match="wix:Component[contains(wix:File/@Source, '.pdb')]" use="@Id" />
<xsl:key name="lib-search" match="wix:Component[contains(wix:File/@Source, 'Jami.lib')]" use="@Id" />
<xsl:key name="exp-search" match="wix:Component[contains(wix:File/@Source, 'Jami.exp')]" use="@Id" />
<xsl:key name="qmake-search" match="wix:Component[contains(wix:File/@Source, 'qmake')]" use="@Id" />
<xsl:key name="obj-search" match="wix:Component[contains(wix:File/@Source, '.obj')]" use="@Id" />
<xsl:key name="tlog-search" match="wix:Component[contains(wix:File/@Source, '.tlog')]" use="@Id" />
<xsl:key name="log-search" match="wix:Component[contains(wix:File/@Source, '.log')]" use="@Id" />
<xsl:template match="wix:Component[key('service-search', @Id)]" />
<xsl:template match="wix:Component[key('vc-service-search', @Id)]" />
<xsl:template match="wix:Component[key('pdb-search', @Id)]" />
<xsl:template match="wix:Component[key('lib-search', @Id)]" />
<xsl:template match="wix:Component[key('exp-search', @Id)]" />
<xsl:template match="wix:Component[key('qmake-search', @Id)]" />
<xsl:template match="wix:Component[key('obj-search', @Id)]" />
<xsl:template match="wix:Component[key('tlog-search', @Id)]" />
<xsl:template match="wix:Component[key('log-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('service-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('vc-service-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('pdb-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('lib-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('exp-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('qmake-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('obj-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('tlog-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('log-search', @Id)]" />
</xsl:stylesheet>
\ No newline at end of file
...@@ -6,33 +6,41 @@ ...@@ -6,33 +6,41 @@
<ProductVersion>3.10</ProductVersion> <ProductVersion>3.10</ProductVersion>
<ProjectGuid>dbbfbc55-1c20-4d21-ae3b-6e8b14c4fe48</ProjectGuid> <ProjectGuid>dbbfbc55-1c20-4d21-ae3b-6e8b14c4fe48</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion> <SchemaVersion>2.0</SchemaVersion>
<OutputName>Jami</OutputName> <OutputName Condition="'$(Configuration)' == 'Release'">jami.release.$(Platform)</OutputName>
<OutputName Condition="'$(Configuration)' == 'Beta'">jami.beta.$(Platform)</OutputName>
<OutputType>Package</OutputType> <OutputType>Package</OutputType>
<Name>JamiInstaller</Name> <Name>JamiInstaller</Name>
<InstallerPlatform>x64</InstallerPlatform> <InstallerPlatform>x64</InstallerPlatform>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<OutputPath>bin\$(Configuration)\</OutputPath> <OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath> <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug</DefineConstants> <DefineConstants>HarvestPath=..\x64\Release</DefineConstants>
<SuppressPdbOutput>True</SuppressPdbOutput>
<CompilerAdditionalOptions>
</CompilerAdditionalOptions>
<WixVariables>
</WixVariables>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Beta|x64' ">
<OutputPath>bin\$(Configuration)\</OutputPath> <OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath> <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants> <DefineConstants>HarvestPath=..\x64\Beta</DefineConstants>
</DefineConstants>
<SuppressPdbOutput>True</SuppressPdbOutput> <SuppressPdbOutput>True</SuppressPdbOutput>
<CompilerAdditionalOptions> <CompilerAdditionalOptions>
</CompilerAdditionalOptions> </CompilerAdditionalOptions>
<WixVariables>
</WixVariables>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Components.wxs" />
<Compile Include="Product.wxs" /> <Compile Include="Product.wxs" />
<Compile Include="StandardComponents.wxs" />
<Compile Include="Components.wxs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="Config.wxi" /> <Content Include="Config.wxi" />
<Content Include="HarvestFilter.xslt" />
<Content Include="JamiInstaller.wax" /> <Content Include="JamiInstaller.wax" />
<Content Include="jamites.bmp" />
<Content Include="main-banner.bmp" /> <Content Include="main-banner.bmp" />
<Content Include="top-banner.bmp" /> <Content Include="top-banner.bmp" />
</ItemGroup> </ItemGroup>
...@@ -47,19 +55,16 @@ ...@@ -47,19 +55,16 @@
</WixExtension> </WixExtension>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="BuildinChang.wxl" /> <EmbeddedResource Include="Localization.wxl" />
</ItemGroup> </ItemGroup>
<Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' " /> <Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' " />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets" Condition=" '$(WixTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets') " /> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets" Condition=" '$(WixTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets') " />
<Target Name="EnsureWixToolsetInstalled" Condition=" '$(WixTargetsImported)' != 'true' "> <Target Name="EnsureWixToolsetInstalled" Condition=" '$(WixTargetsImported)' != 'true' ">
<Error Text="The WiX Toolset v3.11 (or newer) build tools must be installed to build this project. To download the WiX Toolset, see http://wixtoolset.org/releases/" /> <Error Text="The WiX Toolset v3.11 (or newer) build tools must be installed to build this project. To download the WiX Toolset, see http://wixtoolset.org/releases/" />
</Target> </Target>
<!-- <Target Name="BeforeBuild">
To modify your build process, add your task inside one of the targets below and uncomment it. <HeatDirectory Directory="..\x64\$(Configuration)" PreprocessorVariable="var.HarvestPath" OutputFile="Components.wxs" ComponentGroupName="HeatGenerated" DirectoryRefId="APPLICATIONFOLDER" AutogenerateGuids="true" ToolPath="$(WixToolPath)" SuppressFragments="true" SuppressRegistry="true" SuppressRootDirectory="true" Transforms="HarvestFilter.xslt" />
Other similar extension points exist, see Wix.targets. </Target>
<Target Name="BeforeBuild"> <Target Name="AfterBuild">
</Target> </Target>
<Target Name="AfterBuild">
</Target>
-->
</Project> </Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization"> <WixLocalization Culture="en-us"
<String Id="AdvancedWelcomeEulaDlgDescriptionPerMachine">By installing this software you agree to the terms in the license agreement</String> xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="AdvancedWelcomeEulaDlgDescriptionPerMachine">By installing this software you agree to the terms in the license agreement</String>
<UI Dialog="ExitDialog" Control="OptionalCheckBox" Width="10" Height="10" X="135" Y="110" /> <UI Dialog="ExitDialog" Control="OptionalCheckBox" Width="10" Height="10" X="135" Y="110" />
<UI Dialog="ExitDialog" Control="OptionalText" X="150" Y="110" /> <UI Dialog="ExitDialog" Control="OptionalText" X="150" Y="110" />
</WixLocalization> </WixLocalization>
This diff is collapsed.
<?xml version="1.0" encoding="utf-8"?>
<!--
Generated with WiX's heat tool using the command:
heat.exe dir x64\Release -ag -cg ProductComponents -dr APPLICATIONFOLDER -srd -var var.ReleaseDir -out JamiInstaller\Components.wxs
Includes:
- the api-ms-win dlls missing parts of vc merge module for windows 7 support
- Jami.exe with a named Id so we can reference it in Product.wxs to launch after install
We run heat in the prebuild step on x64\Release without Jami.exe (instead of an XSLT file), to harvest everything else.
-->
<?include Config.wxi?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<ComponentGroup Id="StandardComponents">
<Component Id="cmp9C61F84AF9761955FBF397AFAE21C11B" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil2089BEC9A7AB899CED5A5EE501789299" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-file-l1-2-0.dll" />
</Component>
<Component Id="cmp03BB2697EE10869C4A329E3EA987EFAA" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil44C27F2C97596734BB3BEB7C21F7B71C" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-file-l2-1-0.dll" />
</Component>
<Component Id="cmp6B6AA7AEA5A4D324A4EE7DAE1B1193E0" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil1D16BE23D323A1E37FC1FC7354A9305F" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-localization-l1-2-0.dll" />
</Component>
<Component Id="cmpB5454FB66442C9BFD2145AE30B32D7A9" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil031B78DF53F7A3AC109410907624FC3E" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-processthreads-l1-1-1.dll" />
</Component>
<Component Id="cmp9F6D22CD9B1739E4F75F92F3A07E4CA1" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filE9A3672FA504AA8E518DD72A02CD3E77" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-synch-l1-2-0.dll" />
</Component>
<Component Id="cmp9451422B7074D46F019614C3DE73BD17" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil3C902CA2889BB8855D285C3FBABB334F" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-timezone-l1-1-0.dll" />
</Component>
<Component Id="cmp349250459EC2D8C328EED5138B073E7A" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil2466F3D9FBA095A007D0909040D4D688" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-conio-l1-1-0.dll" />
</Component>
<Component Id="cmpCC880F2B054A87EF5FC68232652231BF" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil605A691486569535A1C3548F7DCE753C" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-convert-l1-1-0.dll" />
</Component>
<Component Id="cmpD6CB40D5A5AFF2161B7B4B4F06F03301" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil09AE032A32E2E542A232F7941AC77320" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-environment-l1-1-0.dll" />
</Component>
<Component Id="cmpC02538029646A27A9F786AD690EB3C8E" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil7DE9C3CADCA188356922B0CBD8E313E7" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-filesystem-l1-1-0.dll" />
</Component>
<Component Id="cmp8E50197B377636123F0F1F94FFB004E7" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil584F158D11B8A380C73F1EFE8BBA92B4" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-heap-l1-1-0.dll" />
</Component>
<Component Id="cmp7F729C94A363C73DC4D91B6F48E4F859" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil4BE19B924B98D56F3155B66496D574E5" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-locale-l1-1-0.dll" />
</Component>
<Component Id="cmp7C573E66B0904BA73880788F7057AF88" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filE8495C446FA1237E92562498D20261AA" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-math-l1-1-0.dll" />
</Component>
<Component Id="cmp7A91CED53D8F6E5F20F2049B3B5CD143" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil06951EB208628753677745AF15CC12A5" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-multibyte-l1-1-0.dll" />
</Component>
<Component Id="cmp1CE713C705A95306A1D246AC3AB9DE25" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil8D102BB81768F998470C34797459E306" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-private-l1-1-0.dll" />
</Component>
<Component Id="cmp35840DFBF4D6AE827AFC4EF2A17BB3EB" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filC6C457BD901F940DCB673D271728F9FE" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-process-l1-1-0.dll" />
</Component>
<Component Id="cmpEBB86BDA48FE3B9E2043C1A80D26ACD5" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filE1B2095225B01DEFA5DA9895B432FBCB" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-runtime-l1-1-0.dll" />
</Component>
<Component Id="cmp80C8534B553078EA8B86F100FF542776" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filDAFE58019AD70832B8304DCEA534B5EE" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-stdio-l1-1-0.dll" />
</Component>
<Component Id="cmpCFC348111B5343749A2273A62421C07C" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil1F1B38DB330CA413655F715578D4BE1A" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-string-l1-1-0.dll" />
</Component>
<Component Id="cmp7D5450E04EC419244107942A00DF7DDF" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filEB03BCF3155C5BAE2C2EDBF036EB659D" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-time-l1-1-0.dll" />
</Component>
<Component Id="cmp5456679BDCC818B2E9476B416F71AAA5" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil5B120DD384CABED37DFC2652C6462666" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-utility-l1-1-0.dll" />
</Component>
<Component Id="cmpF23755F862A15FFCBD109C85599B7F20" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filD6887AD9110E4A8D49143C9A8F0B5843" KeyPath="yes" Source="$(var.UcrtDir)\ucrtbase.dll" />
</Component>
<Component Id="cmp9CFEE34E3A162AB05264E8B756EC1DEC" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fileMain.exe" KeyPath="yes" Source="$(var.ReleaseDir)\Jami.exe" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
\ No newline at end of file
...@@ -11,58 +11,178 @@ For more information about the jami project, see the following: ...@@ -11,58 +11,178 @@ For more information about the jami project, see the following:
- Bug tracker: https://git.jami.net/ - Bug tracker: https://git.jami.net/
- Repositories: https://gerrit-ring.savoirfairelinux.com - Repositories: https://gerrit-ring.savoirfairelinux.com
## Requirements ## Building On Native Windows
---
- Jami client library and Jami daemon Only 64-bit MSVC build can be compiled.
- Mingw-w64 build environment
- Qt5 (we link against Qt5Core, Qt5Widgets, Qt5Gui) built with Mingw
- Qt5 Svg, Qt5 ImageFormats & Qt5 WinExtras built with Mingw
## Get the source code > Note: command ```./make-ring.py --init``` is not required on the Windows build <br>
- `git clone https://gerrit-ring.savoirfairelinux.com/ring-client-windows` **Setup Before Building:**
- Download [Qt (Open Source)](https://www.qt.io/download-open-source?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5)<br>
## Build instructions | | Prebuild | Module |
|---|---|---|
| Components: | msvc2017_64 | Qt WebEngine |
**NOTE: The build process is currently under a full refactorization. This section will be updated soon** - Download [Visual Studio](https://visualstudio.microsoft.com/) (version >= 2015) <br>
- Install Qt Vs Tools under extensions, and configure msvc2017_64 path under Qt Options <br>
## Windows | | Qt Version | SDK | Toolset |
|---|---|---|---|
| Minimum requirement: | 5.9.4 | 10.0.16299.0 | V141 |
TBD - Install [Python3](https://www.python.org/downloads/) for Windows
**Start Building**
- Using Command Prompt
```sh
git clone https://review.jami.net/ring-project
cd ring-project/
git submodule update --init daemon lrc client-windows
git submodule update --recursive --remote daemon lrc client-windows
```
- Using **Elevated Command Prompt**
```sh
python make-ring.py --dependencies
```
> Note:
> 1. This command will install **chocolatey** which may require you to restart the Command Prompt to be able to use it.
> 2. This command will install **msys2 (64 bit)** by using chocolatey command which may cause issues below: <br>
> a. Choco may require you to restart the Command Prompt after finishing installing msys2. <br>
> b. Only if you have already installed msys2 (64 bit) under the default installation folder, we will use the existing one.
> 3. This command will install **strawberry perl** by using chocolatey command which may fail if you have already installed it.
> 4. This command will install **cmake** by using chocolatey command which will not add cmake into PATH (environment variable). <br>
>
> The issue 1, 2(a), 3 can be solved by restarting the Command Prompt under Administrator right and re-run the command. <br>
> The issue 3 can be solved by uninstalling your current strawberry perl and re-run the command. <br>
> The issue 4 can be solved by adding the location of the cmake.exe into PATH. <br>
- Using a new **Non-Elevated Command Prompt**
```sh
python make-ring.py --install
```
- Then you should be able to use the Visual Studio Solution file in client-windows folder **(Configuration = Release, Platform = x64)**
> Note: <br>
> To control the toolset and the sdk version that are used by msbuild, you can use ```--toolset``` and ```--sdk``` options <br>
> To control which Qt version should be used (qmake, windeployqt), uou can use ```--qtver``` option <br>
> By default: ```toolset=v141```, ```sdk=10.0.16299.0```, ```qtver=5.9.4``` <br>
> For example:
```sh
python make-ring.py --install --toolset v142 --sdk 10.0.18362.0 --qtver 5.12.0
```
### Build Module individually
---
- Jami-qt also support building each module (daemon, lrc, jami-qt) seperately
**Daemon**
### Packaging - Make sure that dependencies is built by make-ring.py
- On MSVC folder (ring-project\daemon\MSVC):
```sh
cmake -DCMAKE_CONFIGURATION_TYPES="ReleaseLib_win32" -DCMAKE_VS_PLATFORM_NAME="x64" -G "Visual Studio 16 2019" -A x64 -T '$(DefaultPlatformToolset)' ..
python winmake.py -b daemon
```
- This will generate a ```.lib``` file in the path of ring-project\daemon\MSVC\x64\ReleaseLib_win32\bin
> Note: each dependencies contrib for daemon can also be updated individually <br>
> For example:
```bash
python winmake.py -b opendht
```
**Lrc**
* Nsis : Nullsoft Scriptable Install System :http://nsis.sourceforge.net/Main_Page. - Make sure that daemon is built first
```bash
cd lrc
python make-lrc.py -gb
``` ```
cd build/release
makensis ring.nsi **Jami-qt**
- Make sure that daemon, lrc are built first
```bash
cd client-windows
pandoc -f markdown -t html5 -o changelog.html changelog.md
python make-client.py -d
python make-client.py -b
powershell -ExecutionPolicy Unrestricted -File copy-runtime-files.ps1
``` ```
**Note**
- For all python scripts, both ```--toolset``` and ```--sdk``` options are available.
- For more available options, run scripts with ```-h``` option.
- ```--qtver``` option is available on ```make-lrc.py``` and ```make-client.py```.
## Packaging On Native Windows
---
- To be able to generate a msi package, first download and install [Wixtoolset](https://wixtoolset.org/releases/).
- In Visual Studio, download WiX Toolset Visual Studio Extension.
- Build client-windows project first, then the JamiInstaller project, msi package should be stored in ring-project\client-windows\JamiInstaller\bin\Release
## Linux ## Linux
---
> For now, this process is experimental.
- LibRing and LibRingClient
must be installed first. If you have not already done so, go to the
[\#How to Build LibRing (or
Daemon)](#How_to_Build_LibRing_(or_Daemon) "wikilink") and [\#How to
Build LibRingClient (or
LRC)](#How_to_Build_LibRingClient_(or_LRC) "wikilink") sections.
- Building the whole ring-project is recommended, however, lrc might need to be rebuilt with cmake option ```-DCMAKE_INSTALL_PREFIX=/usr```
#### Other Requirements
For now, this process is experimental. The best way to do that is: - Qt 5.9.4 (qt open source)
- libqt5svg*, qtwebengine5-dev, qtmultimedia5-dev, qtdeclarative5-dev, pandoc
#### Getting the Source Code
1. Compile the daemon and LRC as specified in these projects (see the respective repositories or https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Build-instructions).
2. Install needed dependencies (TBD):
+ For Fedora:
```bash ```bash
sudo dnf install qt5-qtsvg-devel qt5-qtwebengine-devel qt5-multimedia-devel git clone https://review.jami.net/ring-client-windows
``` ```
3. If you are not using the `ring-project` repository, you have to define the `LRC` environment variable to contains the install directory for `LRC`. Also, you will have to setup `LD_LIBRARY_PATH` if your install directory is a custom one.
4. Then, build the client:
#### Build Instructions
**Windows Client dependencies**
- For Debian based:
```bash
sudo apt install qtmultimedia5-dev libqt5svg5* qtwebengine5-dev qtdeclarative5-dev qtquickcontrols2-5-dev qml-module-qtquick* pandoc
```
- For Fedora:
```bash ```bash
mkdir build sudo dnf install qt5-qtsvg-devel qt5-qtwebengine-devel qt5-qtmultimedia-devel qt5-qtdeclarative-devel qt5-qtquickcontrols2-devel pandoc
cd build
qmake-qt5 ../jami-qt.pro
make -j 9
``` ```
5. Then, you are finally ready to launch `jami-qt` in your `build` directory. **Build Windows Client**
### Known issues ```bash
cd ring-client-windows
pandoc -f markdown -t html5 -o changelog.html changelog.md
mkdir build
cd build
qmake -qt=qt5 ../jami-qt.pro
make -j9
```
- Then, you are finally ready to launch jami-qt in your build directory.
#### Debugging
Compile the client with `BUILD=Debug` and compile LibRingClient with
`-DCMAKE_BUILD_TYPE=Debug`
#### Known issues
1. The build system is not straight forward 1. The build system is not straight forward
2. Video doesn't work 2. Video doesn't work
...@@ -70,10 +190,5 @@ make -j 9 ...@@ -70,10 +190,5 @@ make -j 9
4. Crash if the daemon is not started and installed. 4. Crash if the daemon is not started and installed.
## Mac OS ## Mac OS
---
TBD TBD
## Debugging
Compile the client with 'BUILD=Debug' and libRingClient with '-DCMAKE_BUILD_TYPE=Debug'
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
/***************************************************************************
* Copyright (C) 2019-2019 by Savoir-faire Linux *
* Author: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 3 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
**************************************************************************/
#include "animationhelpers.h"
#include "ui_animatedoverlay.h"
#include <QTimer>
#include <QtMath>
OpacityAnimation::OpacityAnimation(QWidget* target, QObject* parent)
: QObject(parent),
target_(target),
timer_(nullptr),
frameTime_((1.0 / 24.0) * 1000),
startValue_(0.0),
endValue_(1.0),
t_(0),
value_(0),
duration_(1000)
{
timer_ = new QTimer(this);
connect(timer_, SIGNAL(timeout()), this, SLOT(updateAnimation()));
effect_ = new QGraphicsOpacityEffect(this);
effect_->setOpacity(startValue_);
target_->setGraphicsEffect(effect_);
target_->setAutoFillBackground(true);
}
OpacityAnimation::~OpacityAnimation()
{
}
void
OpacityAnimation::setFPS(const int& fps)
{
frameTime_ = (1.0 / static_cast<double>(fps)) * 1000;
}
void
OpacityAnimation::setFrameTime(const int& milliseconds)
{
frameTime_ = milliseconds;
}
void
OpacityAnimation::setDuration(const int& milliseconds)
{
duration_ = milliseconds;
}
void
OpacityAnimation::setStartValue(const double& value)
{
startValue_ = value;
effect_->setOpacity(startValue_);
}
void
OpacityAnimation::setEndValue(const double& value)
{
endValue_ = value;
}
void
OpacityAnimation::start()
{
timer_->start(frameTime_);
}
void
OpacityAnimation::stop()
{
timer_->stop();
}
void
OpacityAnimation::updateAnimation()
{
double d = (startValue_ + endValue_) * 0.5;
double a = abs(startValue_ - endValue_) * 0.5;
t_ += frameTime_;
value_ = a * sin(2 * M_PI * t_ * duration_ * .000001) + d;
effect_->setOpacity(value_);
target_->update();
}
AnimatedOverlay::AnimatedOverlay(QColor color, QWidget* parent) :
QWidget(parent),
ui(new Ui::AnimatedOverlay)
{
ui->setupUi(this);
ui->backgroundLabel->setAutoFillBackground(true);
auto values = QString("%1,%2,%3,255")
.arg(color.red())
.arg(color.green())
.arg(color.blue());
ui->backgroundLabel->setStyleSheet("background-color: rgba(" + values + ");");
oa_ = new OpacityAnimation(this, this);
oa_->setFPS(16);
oa_->setDuration(1000);
oa_->setStartValue(0.0);
oa_->setEndValue(0.25);
oa_->start();
}
AnimatedOverlay::~AnimatedOverlay()
{
disconnect(this);
delete ui;
}
/***************************************************************************
* Copyright (C) 2019-2019 by Savoir-faire Linux *
* Author: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 3 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
**************************************************************************/
#pragma once
#include <QWidget>
#include <QPropertyAnimation>
#include <QGraphicsOpacityEffect>
#include <QMovie>
class OpacityAnimation : public QObject
{
Q_OBJECT
public:
explicit OpacityAnimation(QWidget* target, QObject* parent = nullptr);
~OpacityAnimation();
void setFPS(const int& fps);
void setFrameTime(const int& milliseconds);
void setDuration(const int& milliseconds);
void setStartValue(const double& value);
void setEndValue(const double& value);
void start();
void stop();
private slots:
void updateAnimation();
private:
QGraphicsOpacityEffect* effect_;
double value_;
QWidget* target_;
QTimer* timer_;
int frameTime_;
double t_;
int duration_;
double startValue_;
double endValue_;
};
namespace Ui {
class AnimatedOverlay;
}
class AnimatedOverlay : public QWidget
{
Q_OBJECT
public:
explicit AnimatedOverlay(QColor color, QWidget* parent = 0);
~AnimatedOverlay();
private:
Ui::AnimatedOverlay* ui;
OpacityAnimation* oa_;
};
\ No newline at end of file
:: Jami - native Windows client project build script
@echo off
setlocal
if "%1" == "/?" goto Usage
if "%~1" == "" goto Usage
set doDeps=N
set doCompile=N
set doBuild=N
set SCRIPTNAME=%~nx0
if "%1"=="compile" (
set doCompile=Y
) else if "%1"=="build" (
set doBuild=Y
) else if "%1"=="deps" (
set doDeps=Y
) else (
goto Usage
)
set arch=N
shift
:ParseArgs
if "%1" == "" goto FinishedArgs
if /I "%1"=="x86" (
set arch=x86
) else if /I "%1"=="x64" (
set arch=x64
) else (
goto Usage
)
shift
goto ParseArgs
:FinishedArgs
if "%arch%"=="x86" (
set MSBUILD_ARGS=/nologo /p:useenv=true /p:Platform=Win32 /maxcpucount:%NUMBER_OF_PROCESSORS%
) else if "%arch%"=="x64" (
set MSBUILD_ARGS=/nologo /p:useenv=true /p:Platform=x64 /maxcpucount:%NUMBER_OF_PROCESSORS%
)
@setlocal
set VSInstallerFolder="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer"
if %PROCESSOR_ARCHITECTURE%==x86 set VSInstallerFolder="%ProgramFiles%\Microsoft Visual Studio\Installer"
pushd %VSInstallerFolder%
for /f "usebackq tokens=*" %%i in (`vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do (
set VSLATESTDIR=%%i
)
popd
echo VS Installation folder: %VSLATESTDIR%
if not exist "%VSLATESTDIR%\VC\Auxiliary\Build\vcvarsall.bat" (
echo:
echo VSInstallDir not found or not installed correctly.
goto cleanup
)
if %PROCESSOR_ARCHITECTURE%==x86 (
set Comp_x86=x86 10.0.15063.0
set Comp_x64=x86_amd64 10.0.15063.0
) else (
set Comp_x86=amd64_x86 10.0.15063.0
set Comp_x64=amd64 10.0.15063.0
)
set path=%path:"=%
if "%arch%"=="x86" (
call "%VSLATESTDIR%"\\VC\\Auxiliary\\Build\\vcvarsall.bat %Comp_x86%
) else if "%arch%"=="x64" (
call "%VSLATESTDIR%"\\VC\\Auxiliary\\Build\\vcvarsall.bat %Comp_x64%
)
if "%arch%" neq "N" (
if "%doCompile%" neq "N" (
goto compileClient
) else if "%doBuild%" neq "N" (
goto buildClient
) else if "%doDeps%" neq "N" (
goto buildDeps
)
goto :eof
)
goto Usage
:buildDeps
set TOBUILD=qrencode-win32\qrencode-win32\vc8\qrcodelib\qrcodelib.vcxproj
msbuild %TOBUILD% /verbosity:normal /p:Configuration=Release-Lib %MSBUILD_ARGS%
set WGET_CMD=wget --no-check-certificate --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=4
goto cleanup
:compileClient
msbuild ring-client-windows.vcxproj /verbosity:normal /p:Configuration=ReleaseCompile %MSBUILD_ARGS%
goto cleanup
:buildClient
msbuild ring-client-windows.vcxproj /verbosity:normal /p:Configuration=Release %MSBUILD_ARGS%
goto cleanup
@endlocal
:Usage
echo:
echo The correct usage is:
echo:
echo %0 [action] [architecture]
echo:
echo where
echo:
echo [action] is: compile ^| build
echo [architecture] is: x86 ^| x64
echo:
echo For example:
echo %0 compile x86 - compile only x86 (for CI)
echo %0 build x64 - build x64 client
echo:
goto :eof
:cleanup
endlocal
exit /B %ERRORLEVEL%
\ No newline at end of file
# 2019-12-13
## Bug Fixes
+ Fixed the bug that caused lag on call overlay
+ Fixed a typo on about dialog
## New Features
+ Add various useful shortcuts
# 2019-11-20
## Bug Fixes
+ Fixed bug that prevented pasting multiline text into chat
## New Features
+ Calls now automatically un-hold when the conversation is selected
+ SIP dialpad now has A,B,C,D dtmf options
# 2019-11-19
## Bug Fixes
+ Fixed notifications popping up for outgoing calls
+ Removing conference participant selects a remaining participant conversation
# 2019-11-15
## Notes
Change version name to 'Free as in Freedom'
Linux: ffmpeg now embedded in official package for auto bitrate + hardware acceleration
## Features
+ callview: rework conference ui ([#1052](https://git.jami.net/savoirfairelinux/ring-client-gnome/issues/1052))
+ JAMS: support login to an account manager
+ wizard: re-work account creation
+ chatview: add video recorder
+ chatview: add audio recorder
+ conversation: automatically accepts < 20Mb files
+ video: auto adapt bitrate
+ Beta version
+ Change logs
+ Save draft text messages
## Bugfixes
+ Fix multiple crash with SIP accounts
+ Fix DTMF for SIP
+ chatview: show generated avatar into the chatview ([#947](https://git.jami.net/savoirfairelinux/ring-client-gnome/issues/947))
+ Fix account migration
+ Fix alignment in settings view
+ call: handle PEER_BUSY state
+ lrc: fix clearAllHistory
+ avmodel: sort framerates
+ sip: fix temporary item removal
+ avmodel: getCurrentRenderedDevice support conferences
+ upnp: now async
+ some deadlocks are fixed
+ some segfault are fixed
+ sip_transport: avoid PJ_ENOTSUITABLE when ipv4<->ipv6
+ sipcall: fix rotation
+ ffmpeg: handle ebusy when opening devices
+ file transfer: fix cancel
+ conference: fix color inversion during conferences
+ lan: improve pjsip behavior in a LAN
+ [trustrequests: handle removed contacts](https://git.jami.net/savoirfairelinux/ring-daemon/issues/129)
+ dbus: only authorize one daemon per DBUS_SESSION_BUS_ADDRESS
+ Fixed crash when user has no account
+ Fixed display name changes not saving
+ Fixed not being able to change back to camera from screen share
+ Fixed utf-8 handling on display names
## Internal changes
+ chatview code is now in LRC and shared with the desktop clients
+ database: migrate to per account database
+ avmodel: optionally switchInput using a callId
+ video sender: send only 1 keyframe at start
+ contrib: various bump (opendht, upnp, ffmpeg, etc)
+ p2p: use one IceTransport by sub transfer
+ decoder: set fpsprobesize, use default probesize
+ ice: enable aggressive nomination to avoid latencies
+ accel: remove libdrm code
+ sipvoiplink: remove wait for completed transactions in dtor
+ Remove some thread creations
+ replace restbed by restinio
+ namedirectory: don't create temporary items during lookup
+ file transfer: use different ice for each transfer
+ manager: allow switchInput on conference
# 2019-08-24
## Features
+ [Erase data securely before removing account](https://git.jami.net/savoirfairelinux/ring-daemon/issues/60)
+ [Negotiate calls in TCP and UDP and prefer TCP if necessary](https://git.jami.net/savoirfairelinux/ring-daemon/issues/103)
+ Improve negotiation for p2p file transfer
+ Auto change the video quality
+ Add hardware acceleration support for NVidia
+ SIP fix SMS issues
## Bugfixes
+ Improve connectivityChange detection and account switching.
+ Translate strings from daemon.
+ Sort resolutions by width
+ [Sort conversations when clearing history](https://git.jami.net/savoirfairelinux/ring-lrc/issues/411)
+ Fix subscriptions for new contacts
+ Hangup if contact is deleted
+ [Various deadlocks](https://git.jami.net/savoirfairelinux/ring-daemon/issues/120)
## Internal changes
+ LRC remove unused code
+ Change from enableAccount() to setAccountEnabled()
+ Update msgpack, gnutls, opendht
+ Rewrite code for UPnP support
# 2019-06-20
## Bugfixes
+ Improve name registration errors detection
+ Improve SIP text/plain detection
+ Fix temporary item when copy/paste a full ring id
+ SIP: Fix online status
+ [Fix audio recorder](https://git.jami.net/savoirfairelinux/ring-daemon/issues/95)
+ Fix some deadlocks
+ [Fix calls via TURN](https://git.jami.net/savoirfairelinux/ring-daemon/issues/105)
+ [Fix multi devices support for calls](https://git.jami.net/savoirfairelinux/ring-daemon/issues/120)
## Internal changes
+ Cleanup daemon side
+ Update restbed
+ Update opendht to 1.9.5
+ [Improve UPnP implementation](https://git.jami.net/savoirfairelinux/ring-daemon/issues/96)
+ Increase default video bitrate
# 2019-05-16
## Features
+ [Add peer to peer file transfer support](https://git.jami.net/savoirfairelinux/ring-project/issues/486)
+ Advanced settings: add DHT peer discovery support
+ Media Settings: add hardware acceleration support
+ [UPnP add TCP mapping support](https://git.jami.net/savoirfairelinux/ring-daemon/issues/86)
## Bugfixes
+ Name registration: better handling for wrong archive password
+ tls_session: close transport after cleanup
+ sip: check message utf8 validity before emitting signal
## Internal changes
+ Bump OpenDHT to 1.9.4
+ Bump GNUTls to 3.6.7
+ Bump Pjsip to (6b9212dcb4b3f781c1e922ae544b063880bc46ac + patches)
+ Internal renaming from Ring to Jami
+ Use new methods from LRC
+ Fix some data races
+ dring/dbus: unregister signals on exit
# 2019-04-12
## Features
+ (Not linked to the UI for now) Hardware encoding support
## Bugfixes
+ Sets up video streams upon receiving the first video frame.
+ Pulseaudio: start streams when ready
## Internal changes
+ Continue name migration, change data locations, binary names and methods names.
+ Nettle 3.4.1 is now required
+ Support video rotation when recording
+ Some code clean
\ No newline at end of file
This diff is collapsed.
[cmdletbinding()] [cmdletbinding()]
param ( param (
[string]$mode,
[string]$qtver, [string]$qtver,
[string]$daemonDir, [string]$daemonDir,
[string]$lrcDir [string]$lrcDir
...@@ -9,11 +10,12 @@ write-host "Copying runtime files..." -ForegroundColor Green ...@@ -9,11 +10,12 @@ write-host "Copying runtime files..." -ForegroundColor Green
# default values # default values
$qtver = If ($qtver) {$qtver} Else {"5.9.4"} $qtver = If ($qtver) {$qtver} Else {"5.9.4"}
$mode = If ($mode) {$mode} Else {"Release"}
$QtDir = "C:\Qt\$qtver\msvc2017_64" $QtDir = "C:\Qt\$qtver\msvc2017_64"
$ClientDir = split-path -parent $MyInvocation.MyCommand.Definition $ClientDir = split-path -parent $MyInvocation.MyCommand.Definition
$OutDir = $ClientDir + "\x64\Release" $OutDir = $ClientDir + "\x64\" + $mode
If(!(test-path $OutDir)) { New-Item -ItemType directory -Path $OutDir -Force } If(!(test-path $OutDir)) { New-Item -ItemType directory -Path $OutDir -Force }
if (!$daemonDir) { $daemonDir = $ClientDir + '\..\daemon' } if (!$daemonDir) { $daemonDir = $ClientDir + '\..\daemon' }
...@@ -25,7 +27,7 @@ write-host "using lrcDir: " $lrcDir -ForegroundColor Magenta ...@@ -25,7 +27,7 @@ write-host "using lrcDir: " $lrcDir -ForegroundColor Magenta
write-host "using QtDir: " $QtDir -ForegroundColor Magenta write-host "using QtDir: " $QtDir -ForegroundColor Magenta
write-host "********************************************************************************" -ForegroundColor Magenta write-host "********************************************************************************" -ForegroundColor Magenta
# dependency bin files # dependency bin files and misc
$FilesToCopy = @( $FilesToCopy = @(
"$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\avcodec-58.dll", "$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\avcodec-58.dll",
"$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\avutil-56.dll", "$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\avutil-56.dll",
...@@ -34,84 +36,22 @@ $FilesToCopy = @( ...@@ -34,84 +36,22 @@ $FilesToCopy = @(
"$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\swresample-3.dll", "$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\swresample-3.dll",
"$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\swscale-5.dll", "$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\swscale-5.dll",
"$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\avfilter-7.dll", "$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\avfilter-7.dll",
"$daemonDir\contrib\build\restbed\dependency\openssl\out32dll\libeay32.dll", "$daemonDir\contrib\build\openssl\out32dll\libeay32.dll",
"$daemonDir\contrib\build\restbed\dependency\openssl\out32dll\ssleay32.dll", "$daemonDir\contrib\build\openssl\out32dll\ssleay32.dll",
"$ClientDir\ring.nsi", "$ClientDir\qt.conf",
"$ClientDir\images\jami.ico" "$ClientDir\images\jami.ico",
"$ClientDir\License.rtf" "$ClientDir\License.rtf"
) )
foreach ($i in $FilesToCopy) { foreach ($i in $FilesToCopy) {
write-host "copying: " $i " => " $OutDir -ForegroundColor Cyan write-host "copying: " $i " => " $OutDir -ForegroundColor Cyan
Copy-Item -Path $i -Destination $OutDir -Force Copy-Item -Path $i -Recurse -Destination $OutDir -Force -Container
} }
############ ############
# qt # qt
############ ############
$windeployqt = "$QtDir\bin\windeployqt.exe --qmldir $ClientDir\src --release $OutDir\Jami.exe"
# qt bin files iex $windeployqt
$FilesToCopy = @(
"$QtDir\bin\Qt5Core.dll",
"$QtDir\bin\Qt5Gui.dll",
"$QtDir\bin\Qt5Network.dll",
"$QtDir\bin\Qt5Positioning.dll",
"$QtDir\bin\Qt5PrintSupport.dll",
"$QtDir\bin\Qt5Qml.dll",
"$QtDir\bin\Qt5Quick.dll",
"$QtDir\bin\Qt5QuickWidgets.dll",
"$QtDir\bin\Qt5Sql.dll",
"$QtDir\bin\Qt5Svg.dll",
"$QtDir\bin\Qt5WebChannel.dll",
"$QtDir\bin\Qt5WebEngine.dll",
"$QtDir\bin\Qt5WebEngineCore.dll",
"$QtDir\bin\Qt5WebEngineWidgets.dll",
"$QtDir\bin\Qt5Widgets.dll",
"$QtDir\bin\Qt5WinExtras.dll",
"$QtDir\bin\Qt5Xml.dll",
"$QtDir\bin\Qt5Multimedia.dll",
"$QtDir\bin\Qt5MultimediaWidgets.dll",
"$QtDir\bin\Qt5OpenGL.dll",
"$QtDir\bin\libEGL.dll",
"$QtDir\bin\libGLESv2.dll",
"$QtDir\bin\d3dcompiler_47.dll",
"$QtDir\bin\QtWebEngineProcess.exe",
"$QtDir\resources\qtwebengine_resources.pak",
"$QtDir\resources\qtwebengine_resources_100p.pak",
"$QtDir\resources\qtwebengine_resources_200p.pak",
"$QtDir\resources\icudtl.dat"
)
foreach ($i in $FilesToCopy) {
write-host "copying: " $i " => " $OutDir -ForegroundColor Cyan
Copy-Item -Path $i -Destination $OutDir -Force
}
# qt imageformats
$FilesToCopy = @(
"$QtDir\plugins\imageformats\qgif.dll",
"$QtDir\plugins\imageformats\qico.dll",
"$QtDir\plugins\imageformats\qjpeg.dll",
"$QtDir\plugins\imageformats\qsvg.dll"
)
$CopyDir = $OutDir + "\imageformats"
If(!(test-path $CopyDir)) { New-Item -ItemType directory -Path $CopyDir -Force }
foreach ($i in $FilesToCopy) {
write-host "copying: " $i " => " $CopyDir -ForegroundColor Cyan
Copy-Item -Path $i -Destination $CopyDir -Force
}
# qt platform dll for windows
$CopyDir = $OutDir + "\platforms"
If(!(test-path $CopyDir)) { New-Item -ItemType directory -Path $CopyDir -Force }
$file = "$QtDir\plugins\platforms\qwindows.dll"
write-host "copying: " $file " => " $CopyDir -ForegroundColor Cyan
Copy-Item -Path $file -Destination $CopyDir -Force
# qt sql driver
$CopyDir = $OutDir + "\sqldrivers"
If(!(test-path $CopyDir)) { New-Item -ItemType directory -Path $CopyDir -Force }
$file = "$QtDir\plugins\sqldrivers\qsqlite.dll"
write-host "copying: " $file " => " $CopyDir -ForegroundColor Cyan
Copy-Item -Path $file -Destination $CopyDir -Force
# ringtones # ringtones
$CopyDir = $OutDir + "\ringtones" $CopyDir = $OutDir + "\ringtones"
...@@ -152,4 +92,4 @@ Get-ChildItem -Path $clientTSPath -Include *.qm -Recurse | ForEach-Object { ...@@ -152,4 +92,4 @@ Get-ChildItem -Path $clientTSPath -Include *.qm -Recurse | ForEach-Object {
Copy-Item -Path $_.FullName -Destination $CopyDir -Force Recurse Copy-Item -Path $_.FullName -Destination $CopyDir -Force Recurse
} }