Skip to content
Snippets Groups Projects
Unverified Commit 1f91576a authored by Sébastien Blin's avatar Sébastien Blin
Browse files

client-qml: add initial commit

Change-Id: I32bfdd2a618aa7ac6181da2697e241667b010aab
parents
Branches
Tags
No related merge requests found
Pipeline #33 failed
Showing
with 1017 additions and 0 deletions
Language: Cpp
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: DontAlign
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: true
AlwaysBreakAfterDefinitionReturnType: All
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
AfterClass: true
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: true
AfterUnion: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
BreakBeforeBinaryOperators: All
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeComma
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 100
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- forever # avoids { wrapped to next line
- foreach
- Q_FOREACH
- BOOST_FOREACH
IncludeCategories:
- Regex: '^<Q.*'
Priority: 200
IncludeIsMainRegex: '(Test)?$'
IndentCaseLabels: false
IndentWidth: 4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
# Do not add QT_BEGIN_NAMESPACE/QT_END_NAMESPACE as this will indent lines in between.
MacroBlockBegin: ""
MacroBlockEnd: ""
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 4
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 150
PenaltyBreakBeforeFirstCallParameter: 300
PenaltyBreakComment: 500
PenaltyBreakFirstLessLess: 400
PenaltyBreakString: 600
PenaltyExcessCharacter: 50
PenaltyReturnTypeOnItsOwnLine: 300
PointerAlignment: Right
ReflowComments: false
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: true
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: false
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 4
\ No newline at end of file
*.user
GeneratedFiles/
.vs/
x64/
x86/
[wW]in32/
.qmake.stash
debug/
release/
beta/
qrencode-win32/
*.dll
*.qm
build/
nuget.exe
*.autosave
changelog.html
obj/
build/
build-local/
[submodule "libqrencode"]
path = libqrencode
url = https://github.com/fukuchi/libqrencode.git
ignore = dirty
[gerrit]
host=gerrit-ring.savoirfairelinux.com
port=29420
project=ring-client-window.git
defaultremote=origin
defaultbranch=master
[main]
host = https://www.transifex.com
[jami.ring_client_windowsts]
file_filter = translations/ring_client_windows_<lang>.ts
source_file = translations/ring_client_windows.ts
source_lang = en
type = TS
/obj
/bin
Components.wxs
<?xml version="1.0" encoding="utf-8"?>
<Include>
<?if $(var.Configuration) = Release ?>
<?define Name="Jami" ?>
<?else?>
<?define Name="Jami (BETA)" ?>
<?endif ?>
<?if $(var.Configuration) = 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"?>
</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
<?xml version="1.0" encoding="utf-16"?>
<Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DeployedProjects />
<DirectoryMappings />
<FileMappings />
<DeploySymbols>false</DeploySymbols>
<DeployLocalizations>true</DeployLocalizations>
<DeployExternalLocalizations>false</DeployExternalLocalizations>
</Configuration>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x64</Platform>
<ProductVersion>3.10</ProductVersion>
<ProjectGuid>dbbfbc55-1c20-4d21-ae3b-6e8b14c4fe48</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName Condition="'$(Configuration)' == 'Release'">jami.release.$(Platform)</OutputName>
<OutputName Condition="'$(Configuration)' == 'Beta'">jami.beta.$(Platform)</OutputName>
<OutputType>Package</OutputType>
<Name>JamiInstaller</Name>
<InstallerPlatform>x64</InstallerPlatform>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>HarvestPath=..\x64\Release</DefineConstants>
<SuppressPdbOutput>True</SuppressPdbOutput>
<CompilerAdditionalOptions>
</CompilerAdditionalOptions>
<WixVariables>
</WixVariables>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Beta|x64' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>HarvestPath=..\x64\Beta</DefineConstants>
<SuppressPdbOutput>True</SuppressPdbOutput>
<CompilerAdditionalOptions>
</CompilerAdditionalOptions>
<WixVariables>
</WixVariables>
</PropertyGroup>
<ItemGroup>
<Compile Include="Product.wxs" />
<Compile Include="StandardComponents.wxs" />
<Compile Include="Components.wxs" />
</ItemGroup>
<ItemGroup>
<Content Include="Config.wxi" />
<Content Include="HarvestFilter.xslt" />
<Content Include="JamiInstaller.wax" />
<Content Include="main-banner.bmp" />
<Content Include="top-banner.bmp" />
</ItemGroup>
<ItemGroup>
<WixExtension Include="WixUtilExtension">
<HintPath>$(WixExtDir)\WixUtilExtension.dll</HintPath>
<Name>WixUtilExtension</Name>
</WixExtension>
<WixExtension Include="WixUIExtension">
<HintPath>$(WixExtDir)\WixUIExtension.dll</HintPath>
<Name>WixUIExtension</Name>
</WixExtension>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Localization.wxl" />
</ItemGroup>
<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') " />
<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/" />
</Target>
<Target Name="BeforeBuild">
<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" />
</Target>
<Target Name="AfterBuild">
</Target>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="en-us"
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="OptionalText" X="150" Y="110" />
</WixLocalization>
<?xml version="1.0" encoding="UTF-8"?>
<?include Config.wxi?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="$(var.Name)" Language="1033" Version="$(fun.AutoVersion(1.0))" Manufacturer="$(var.Manufacturer)" UpgradeCode="7c45b52b-0390-4fe8-947a-3f13e82dd346">
<Package InstallerVersion="301" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade AllowSameVersionUpgrades="yes" DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes" CompressionLevel="high" />
<!--Icon File should be in release folder(not wix project), otherwise cannot be read-->
<Icon Id="icon.ico" SourceFile="$(var.ReleaseDir)\jami.ico" />
<Property Id="ARPPRODUCTICON" Value="icon.ico" />
<Property Id="ARPNOMODIFY" Value="1" />
<Feature Id="ProductFeature" Title="Main" Level="1" Absent="disallow">
<ComponentGroupRef Id="StandardComponents" Primary="yes" />
<ComponentGroupRef Id="HeatGenerated" />
<ComponentRef Id="ApplicationShortcutDesktop" />
<ComponentRef Id="ApplicationShortcutStartMenu" />
<ComponentRef Id="RegistryEntries" />
</Feature>
<!--Visual C++ Redist merge module-->
<DirectoryRef Id="TARGETDIR">
<Merge Id="VCRedist" SourceFile="$(env.VCRedistMergeModule)" DiskId="1" Language="0" />
</DirectoryRef>
<Feature Id="VCRedist" Title="Visual C++ Runtime" AllowAdvertise="no" Display="hidden" Level="1">
<MergeRef Id="VCRedist"/>
</Feature>
<!--SetDirectory of APPLICATIONFOLDER -->
<SetDirectory Id="APPLICATIONFOLDER" Value="[ProgramFiles64Folder][ApplicationFolderName]">APPLICATIONFOLDER=""</SetDirectory>
<SetProperty Id="ARPINSTALLLOCATION" Value="[APPLICATIONFOLDER]" After="CostFinalize" />
<UIRef Id="CustomUI" />
<WixVariable Id="WixUIInfoIcon" Value="icon.ico"/>
<WixVariable Id="WixUIBannerBmp" Value="top-banner.bmp" />
<WixVariable Id="WixUIDialogBmp" Value="main-banner.bmp" />
<WixVariable Id="WixUISupportPerUser" Value="0" />
<CustomAction Id="removeOldJamiFiles" Directory="APPLICATIONFOLDER" ExeCommand="cmd /c &quot;del vc_redist.x64.exe; del uninstall.exe; del WinSparkle.dll;&quot;" Execute="deferred" Return="ignore" HideTarget="no" Impersonate="no" />
<Property Id="QtExecCmdLine" Value='"[WindowsFolder]\System32\taskkill.exe" /F /IM QtWebEngineProcess.exe /IM Jami.exe'/>
<CustomAction Id="JamiProcesses.TaskKill"
BinaryKey="WixCA"
DllEntry="CAQuietExec"
Execute="immediate"
Return="ignore"/>
</Product>
<Fragment Id="DirectoryStructure">
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFiles64Folder">
<Directory Id="APPLICATIONFOLDER" Name="$(var.Name)" />
</Directory>
<Directory Id="DesktopFolder" Name="Desktop" />
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" />
</Directory>
<Directory Id="WindowsFolder" Name="WINDOWS"/>
</Directory>
</Fragment>
<Fragment Id="Shortcuts">
<DirectoryRef Id="DesktopFolder">
<Component Id="ApplicationShortcutDesktop" Guid="*" Win64="yes">
<Shortcut Id="ApplicationShortcutDesktop" Name="$(var.Name)" Description="Launch $(var.Name)" Target="[#fileMain.exe]" WorkingDirectory="INSTALLFOLDER" />
<RemoveFolder Id="DesktopFolder" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\jami.net\$(var.Name)" Name="desktop" Type="integer" Value="1" KeyPath="yes" />
</Component>
</DirectoryRef>
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="ApplicationShortcutStartMenu" Guid="*" Win64="yes">
<Shortcut Id="ApplicationShortcutStartMenu" Name="$(var.Name)" Description="Launch $(var.Name)" Target="[#fileMain.exe]" WorkingDirectory="INSTALLFOLDER" />
<RemoveFolder Id="StartMenuFolder" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\jami.net\$(var.Name)" Name="startmenu" Type="integer" Value="1" KeyPath="yes" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment Id="OtherRegistryEntries">
<DirectoryRef Id="TARGETDIR">
<Component Id="RegistryEntries" Guid="*" Win64="yes">
<RegistryValue Root="HKCU" Key="Software\jami.net\$(var.AppName)" Name="hasRun" Type="integer" Value="0" KeyPath="yes" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment Id="UI">
<UI Id="CustomUI">
<Property Id="WixAppFolder" Value="WixPerMachineFolder" />
<!--APPLICATIONFOLDER required by WixUI_Advanced, ApplicationFolderName reset APPLICATIONFOLDER path-->
<Property Id="ApplicationFolderName" Value="$(var.Manufacturer)\$(var.AppName)" />
<UIRef Id="WixUI_Advanced" />
<!--Remove User Exit Dialog-->
<Publish Dialog="AdvancedWelcomeEulaDlg" Control="Cancel" Property="AbortInstall" Value="1">1</Publish>
<Publish Dialog="InstallDirDlg" Control="Cancel" Property="AbortInstall" Value="1">1</Publish>
<Publish Dialog="FeaturesDlg" Control="Cancel" Property="AbortInstall" Value="1">1</Publish>
<Publish Dialog="MaintenanceWelcomeDlg" Control="Cancel" Property="AbortInstall" Value="1">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="Cancel" Property="AbortInstall" Value="1">1</Publish>
<!--Launch Program If Checkbox is clicked-->
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<InstallUISequence>
<Show Dialog="UserExit" OnExit="cancel">NOT AbortInstall = 1</Show>
<Custom Action="Overwrite_WixSetDefaultPerMachineFolder" After="WixSetDefaultPerMachineFolder" />
</InstallUISequence>
</UI>
<InstallExecuteSequence>
<Custom Action='JamiProcesses.TaskKill' Before='InstallValidate'/>
<Custom Action="removeOldJamiFiles" After="RemoveFiles" />
<Custom Action="LaunchApplication_nonUI" After="InstallFinalize"> WIXNONUILAUNCH </Custom>
<Custom Action="Overwrite_WixSetDefaultPerMachineFolder" After="WixSetDefaultPerMachineFolder" />
</InstallExecuteSequence>
<!--License check box text, Launch check box text (auto check)-->
<Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="Launch $(var.Name)" />
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch $(var.Name)" />
<!--CheckBox Default Set to One-->
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1"/>
<Property Id="LicenseAccepted" Value="1"/>
<Property Id="WixShellExecTarget" Value="[#fileMain.exe]" />
<CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />
<CustomAction Id="LaunchApplication_nonUI" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes"/>
<CustomAction Id="Overwrite_WixSetDefaultPerMachineFolder" Property="WixPerMachineFolder" Value="[ProgramFiles64Folder][ApplicationFolderName]" Execute="immediate" />
<!--License File-->
<WixVariable Id="WixUILicenseRtf" Value="$(var.ReleaseDir)\License.rtf"/>
</Fragment>
</Wix>
<?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
JamiInstaller/main-banner.bmp

451 KiB

JamiInstaller/top-banner.bmp

83.9 KiB

This diff is collapsed.
README.md 0 → 100644
# Jami-qt
`jami-qt` is the cross platform client for Jami. For now, it's mainly used for the Windows platform and is not tested on other platforms.
![jami-logo](images/logo-jami-standard-coul.png)
For more information about the jami project, see the following:
- Main website: https://jami.net/
- Bug tracker: https://git.jami.net/
- Repositories: https://gerrit-ring.savoirfairelinux.com
## Building On Native Windows
---
Only 64-bit MSVC build can be compiled.
> Note: command ```./make-ring.py --init``` is not required on the Windows build <br>
**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>
| | Prebuild | Module |
|---|---|---|
| Components: | msvc2017_64 | Qt WebEngine |
- 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>
| | Qt Version | SDK | Toolset |
|---|---|---|---|
| Minimum requirement: | 5.9.4 | 10.0.16299.0 | V141 |
- 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**
- 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**
- Make sure that daemon is built first
```bash
cd lrc
python make-lrc.py -gb
```
**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
---
> 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
- Qt 5.9.4 (qt open source)
- libqt5svg*, qtwebengine5-dev, qtmultimedia5-dev, qtdeclarative5-dev, pandoc
#### Getting the Source Code
```bash
git clone https://review.jami.net/ring-client-windows
```
#### 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
sudo dnf install qt5-qtsvg-devel qt5-qtwebengine-devel qt5-qtmultimedia-devel qt5-qtdeclarative-devel qt5-qtquickcontrols2-devel pandoc
```
**Build Windows Client**
```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
2. Video doesn't work
3. Can't maximize/minimize window
4. Crash if the daemon is not started and installed.
## Mac OS
---
TBD
# 2020-03-16
## Bug Fixes
+ Fixed the bug that the system notification cannot be disabled
+ Fixed video device enumeration for higher framerates
+ More reliable high dpi adaption
+ Prevent crash when video device events happen with no account
## New Features
+ Add type indicator
+ Movable splitter in main view
+ Connectivity improvement for calls and messages
# 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
[cmdletbinding()]
param (
[string]$mode,
[string]$qtver,
[string]$daemonDir,
[string]$lrcDir
);
write-host "Copying runtime files..." -ForegroundColor Green
# default values
$qtver = If ($qtver) {$qtver} Else {"5.9.4"}
$mode = If ($mode) {$mode} Else {"Release"}
$qtverSplit1, $qtverSplit2 ,$qtverSplit3 = $qtver.Split('.')
$qtMsvcDir = If((([int]$qtverSplit1) -ge 6) -OR ( (([int]$qtverSplit1) -eq 5) -AND (([int]$qtverSplit2) -ge 15))){"msvc2019_64"} Else{"msvc2017_64"}
$QtDir = "C:\Qt\$qtver\$qtMsvcDir"
$ClientDir = split-path -parent $MyInvocation.MyCommand.Definition
$OutDir = $ClientDir + "\x64\" + $mode
If(!(test-path $OutDir)) { New-Item -ItemType directory -Path $OutDir -Force }
if (!$daemonDir) { $daemonDir = $ClientDir + '\..\daemon' }
if (!$lrcDir) { $lrcDir = $ClientDir + '\..\lrc' }
write-host "********************************************************************************" -ForegroundColor Magenta
write-host "using daemonDir: " $daemonDir -ForegroundColor Magenta
write-host "using lrcDir: " $lrcDir -ForegroundColor Magenta
write-host "using QtDir: " $QtDir -ForegroundColor Magenta
write-host "********************************************************************************" -ForegroundColor Magenta
# dependency bin files and misc
$FilesToCopy = @(
"$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\avformat-58.dll",
"$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\avdevice-58.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\avfilter-7.dll",
"$daemonDir\contrib\build\openssl\out32dll\libeay32.dll",
"$daemonDir\contrib\build\openssl\out32dll\ssleay32.dll",
"$ClientDir\qt.conf",
"$ClientDir\images\jami.ico",
"$ClientDir\License.rtf"
)
foreach ($i in $FilesToCopy) {
write-host "copying: " $i " => " $OutDir -ForegroundColor Cyan
Copy-Item -Path $i -Recurse -Destination $OutDir -Force -Container
}
############
# qt
############
$windeployqt = "$QtDir\bin\windeployqt.exe --qmldir $ClientDir\src --release $OutDir\Jami.exe"
iex $windeployqt
# ringtones
$CopyDir = $OutDir + "\ringtones"
If(!(test-path $CopyDir)) { New-Item -ItemType directory -Path $CopyDir -Force }
$RingtonePath = "$ClientDir\..\daemon\ringtones"
write-host "copying ringtones..."
Get-ChildItem -Path $RingtonePath -Include *.ul, *.ogg, *.wav, *.opus -Recurse | ForEach-Object {
write-host "copying ringtone: " $_.FullName " => " $CopyDir -ForegroundColor Cyan
Copy-Item -Path $_.FullName -Destination $CopyDir -Force Recurse
}
# qt translations
$lrelease = "$QtDir\bin\lrelease.exe"
# lrc translations
$lrcTSPath = "$lrcDir\translations"
Get-ChildItem -Path $lrcTSPath -Include *.ts -Recurse | ForEach-Object {
& $lrelease $_.FullName
}
$CopyDir = $OutDir + "\share\libringclient\translations"
If(!(test-path $CopyDir)) { New-Item -ItemType directory -Path $CopyDir -Force }
write-host "copying lrc translations..."
Get-ChildItem -Path $lrcTSPath -Include *.qm -Recurse | ForEach-Object {
write-host "copying translation file: " $_.FullName " => " $CopyDir -ForegroundColor Cyan
Copy-Item -Path $_.FullName -Destination $CopyDir -Force Recurse
}
# client translations
$clientTSPath = "$ClientDir\translations"
Get-ChildItem -Path $clientTSPath -Include *.ts -Recurse | ForEach-Object {
& $lrelease $_.FullName
}
$CopyDir = $OutDir + "\share\ring\translations"
If(!(test-path $CopyDir)) { New-Item -ItemType directory -Path $CopyDir -Force }
write-host "copying client translations..."
Get-ChildItem -Path $clientTSPath -Include *.qm -Recurse | ForEach-Object {
write-host "copying translation file: " $_.FullName " => " $CopyDir -ForegroundColor Cyan
Copy-Item -Path $_.FullName -Destination $CopyDir -Force Recurse
}
write-host "copy completed" -NoNewline -ForegroundColor Green
\ No newline at end of file
ico.rc 0 → 100644
IDI_ICON1 ICON DISCARDABLE "images/jami.ico"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment