You've already forked libopenshot
mirror of
https://github.com/OpenShot/libopenshot.git
synced 2026-03-02 08:53:52 -08:00
Merge branch 'develop' into pr/1
This commit is contained in:
405
.cproject
405
.cproject
@@ -1,405 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="0.458309483">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="0.458309483" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MachO64" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="videoeditor" buildProperties="" description="" id="0.458309483" name="Debug" parent="org.eclipse.cdt.build.core.prefbase.cfg">
|
||||
<folderInfo id="0.458309483." name="/" resourcePath="">
|
||||
<toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.860793860" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain">
|
||||
<targetPlatform binaryParser="org.eclipse.cdt.core.MachO64" id="org.eclipse.cdt.build.core.prefbase.toolchain.860793860.1850291254" name=""/>
|
||||
<builder buildPath="${workspace_loc:/libopenshot/build}" id="org.eclipse.cdt.build.core.settings.default.builder.1861063610" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.libs.1656184502" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs">
|
||||
<option id="org.eclipse.cdt.build.core.settings.holder.libpaths.140246732" name="Library Paths" superClass="org.eclipse.cdt.build.core.settings.holder.libpaths"/>
|
||||
</tool>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.1015291342" name="Assembly" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.1997837481" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths"/>
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.676494018" languageId="org.eclipse.cdt.core.assembly" languageName="Assembly" sourceContentType="org.eclipse.cdt.core.asmSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.458268777" name="UPC" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.216150058" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="/usr/include/ImageMagick"/>
|
||||
</option>
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.309210762" languageId="org.eclipse.cdt.core.parser.upc.upc" languageName="UPC" sourceContentType="org.eclipse.cdt.core.parser.upc.upcSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.29018433" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.128775621" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="/usr/include/ImageMagick"/>
|
||||
<listOptionValue builtIn="false" value="/usr/include/unittest++"/>
|
||||
<listOptionValue builtIn="false" value="/usr/local/include/juce"/>
|
||||
<listOptionValue builtIn="false" value="/usr/include/SDL"/>
|
||||
<listOptionValue builtIn="false" value="/usr/local/include/libopenshot-audio"/>
|
||||
<listOptionValue builtIn="false" value=""/home/jonathan/Blackmagic DeckLink SDK 9.5/Linux/include""/>
|
||||
<listOptionValue builtIn="false" value=""/home/jonathan/Blackmagic DeckLink SDK 9.7/Linux/include""/>
|
||||
<listOptionValue builtIn="false" value="/usr/include/libavutil"/>
|
||||
<listOptionValue builtIn="false" value="/opt/local/include/ImageMagick-6"/>
|
||||
<listOptionValue builtIn="false" value="/opt/local/include/UnitTest++"/>
|
||||
<listOptionValue builtIn="false" value="/opt/local/include/libavutil"/>
|
||||
<listOptionValue builtIn="false" value="/opt/local/include/libavcodec"/>
|
||||
<listOptionValue builtIn="false" value="/opt/local/include/libavformat"/>
|
||||
<listOptionValue builtIn="false" value="/opt/local/include/libswscale"/>
|
||||
<listOptionValue builtIn="false" value="/opt/local/include"/>
|
||||
<listOptionValue builtIn="false" value="/usr/include/qt4"/>
|
||||
<listOptionValue builtIn="false" value="/usr/include/qt4/QtMultimedia/"/>
|
||||
<listOptionValue builtIn="false" value="/usr/include/ImageMagick-6"/>
|
||||
<listOptionValue builtIn="false" value="/usr/include/libavresample"/>
|
||||
</option>
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1807071462" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" sourceContentType="org.eclipse.cdt.core.cxxSource,org.eclipse.cdt.core.cxxHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.92944944" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.500650713" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="/usr/include/ImageMagick"/>
|
||||
</option>
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.2064395606" languageId="org.eclipse.cdt.core.gcc" languageName="GNU C" sourceContentType="org.eclipse.cdt.core.cSource,org.eclipse.cdt.core.cHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
|
||||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="0.458309483.953603139">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="0.458309483.953603139" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MachO64" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="videoeditor" buildProperties="" description="" id="0.458309483.953603139" name="Release" parent="org.eclipse.cdt.build.core.prefbase.cfg">
|
||||
<folderInfo id="0.458309483.953603139." name="/" resourcePath="">
|
||||
<toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.2126614311" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain">
|
||||
<targetPlatform binaryParser="org.eclipse.cdt.core.MachO64" id="org.eclipse.cdt.build.core.prefbase.toolchain.2126614311.1786856669" name=""/>
|
||||
<builder buildPath="${workspace_loc:/libopenshot/build}" id="org.eclipse.cdt.build.core.settings.default.builder.1065130298" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.libs.1171217169" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.1436671119" name="Assembly" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.189113030" languageId="org.eclipse.cdt.core.assembly" languageName="Assembly" sourceContentType="org.eclipse.cdt.core.asmSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.885339715" name="UPC" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.2086136741" languageId="org.eclipse.cdt.core.parser.upc.upc" languageName="UPC" sourceContentType="org.eclipse.cdt.core.parser.upc.upcSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.627658276" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.458946248" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" sourceContentType="org.eclipse.cdt.core.cxxSource,org.eclipse.cdt.core.cxxHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.562677851" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1137211062" languageId="org.eclipse.cdt.core.gcc" languageName="GNU C" sourceContentType="org.eclipse.cdt.core.cSource,org.eclipse.cdt.core.cHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
|
||||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="0.458309483.1429240563">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="0.458309483.1429240563" moduleId="org.eclipse.cdt.core.settings" name="Windows Debug">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MachO64" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="videoeditor" buildProperties="" description="" id="0.458309483.1429240563" name="Windows Debug" parent="org.eclipse.cdt.build.core.prefbase.cfg">
|
||||
<folderInfo id="0.458309483.1429240563." name="/" resourcePath="">
|
||||
<toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.1466402319" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain">
|
||||
<targetPlatform binaryParser="org.eclipse.cdt.core.MachO64" id="org.eclipse.cdt.build.core.prefbase.toolchain.1466402319.2058285352" name=""/>
|
||||
<builder buildPath="${workspace_loc:/libopenshot/build}" command="mingw32-make" id="org.eclipse.cdt.build.core.settings.default.builder.1521601165" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.libs.38938069" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs">
|
||||
<option id="org.eclipse.cdt.build.core.settings.holder.libpaths.1475941169" name="Library Paths" superClass="org.eclipse.cdt.build.core.settings.holder.libpaths"/>
|
||||
</tool>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.2067923726" name="Assembly" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.89256667" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths"/>
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.274935524" languageId="org.eclipse.cdt.core.assembly" languageName="Assembly" sourceContentType="org.eclipse.cdt.core.asmSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.1972107091" name="UPC" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.52551022" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="/usr/include/ImageMagick"/>
|
||||
</option>
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1809380165" languageId="org.eclipse.cdt.core.parser.upc.upc" languageName="UPC" sourceContentType="org.eclipse.cdt.core.parser.upc.upcSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.954316709" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.1803791328" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="/usr/include/ImageMagick"/>
|
||||
<listOptionValue builtIn="false" value="/usr/include/unittest++"/>
|
||||
<listOptionValue builtIn="false" value="/usr/local/include/juce"/>
|
||||
<listOptionValue builtIn="false" value="/usr/include/SDL"/>
|
||||
<listOptionValue builtIn="false" value="/usr/local/include/libopenshot-audio"/>
|
||||
<listOptionValue builtIn="false" value=""/home/jonathan/Blackmagic DeckLink SDK 9.5/Linux/include""/>
|
||||
<listOptionValue builtIn="false" value=""/home/jonathan/Blackmagic DeckLink SDK 9.7/Linux/include""/>
|
||||
<listOptionValue builtIn="false" value="/usr/include/libavutil"/>
|
||||
<listOptionValue builtIn="false" value="/opt/local/include/ImageMagick-6"/>
|
||||
<listOptionValue builtIn="false" value="/opt/local/include/UnitTest++"/>
|
||||
<listOptionValue builtIn="false" value="/opt/local/include/libavutil"/>
|
||||
<listOptionValue builtIn="false" value="/opt/local/include/libavcodec"/>
|
||||
<listOptionValue builtIn="false" value="/opt/local/include/libavformat"/>
|
||||
<listOptionValue builtIn="false" value="/opt/local/include/libswscale"/>
|
||||
<listOptionValue builtIn="false" value="/opt/local/include"/>
|
||||
<listOptionValue builtIn="false" value="/usr/include/qt4"/>
|
||||
<listOptionValue builtIn="false" value="/usr/include/qt4/QtMultimedia/"/>
|
||||
<listOptionValue builtIn="false" value=""C:\Users\jthomas3\Downloads\libav-i686-w64-mingw32-11.1\libav-i686-w64-mingw32-11.1\usr\include""/>
|
||||
</option>
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.686001172" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" sourceContentType="org.eclipse.cdt.core.cxxSource,org.eclipse.cdt.core.cxxHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.795224296" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.255754553" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="/usr/include/ImageMagick"/>
|
||||
</option>
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.813626313" languageId="org.eclipse.cdt.core.gcc" languageName="GNU C" sourceContentType="org.eclipse.cdt.core.cSource,org.eclipse.cdt.core.cHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="0.458309483.953603139.259067692">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="0.458309483.953603139.259067692" moduleId="org.eclipse.cdt.core.settings" name="Windows Release">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MachO64" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="videoeditor" buildProperties="" description="" id="0.458309483.953603139.259067692" name="Windows Release" parent="org.eclipse.cdt.build.core.prefbase.cfg">
|
||||
<folderInfo id="0.458309483.953603139.259067692." name="/" resourcePath="">
|
||||
<toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.1554039764" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain">
|
||||
<targetPlatform binaryParser="org.eclipse.cdt.core.MachO64" id="org.eclipse.cdt.build.core.prefbase.toolchain.1554039764.1104983482" name=""/>
|
||||
<builder buildPath="${workspace_loc:/libopenshot/build}" command="mingw32-make" id="org.eclipse.cdt.build.core.settings.default.builder.997330635" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.libs.351627448" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.159486360" name="Assembly" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1557546275" languageId="org.eclipse.cdt.core.assembly" languageName="Assembly" sourceContentType="org.eclipse.cdt.core.asmSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.915449926" name="UPC" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.721949763" languageId="org.eclipse.cdt.core.parser.upc.upc" languageName="UPC" sourceContentType="org.eclipse.cdt.core.parser.upc.upcSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.720424160" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1530379299" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" sourceContentType="org.eclipse.cdt.core.cxxSource,org.eclipse.cdt.core.cxxHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
<tool id="org.eclipse.cdt.build.core.settings.holder.1103041120" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder">
|
||||
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1013949477" languageId="org.eclipse.cdt.core.gcc" languageName="GNU C" sourceContentType="org.eclipse.cdt.core.cSource,org.eclipse.cdt.core.cHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="videoeditor.null.965112123" name="videoeditor"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="refreshScope" versionNumber="1">
|
||||
<resource resourceType="PROJECT" workspacePath="/libopenshot"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="makefileGenerator">
|
||||
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<scannerConfigBuildInfo instanceId="0.458309483">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="makefileGenerator">
|
||||
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="0.458309483.1429240563">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
|
||||
<buildTargets>
|
||||
<target name="Linux: CMake Release" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>cmake</buildCommand>
|
||||
<buildArguments>-G "Unix Makefiles" ../ -D"CMAKE_BUILD_TYPE:STRING=Release"</buildArguments>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>false</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="Linux: CMake Debug" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>cmake</buildCommand>
|
||||
<buildArguments>-G "Unix Makefiles" ../ -D"MAGICKCORE_HDRI_ENABLE=0" -D"MAGICKCORE_QUANTUM_DEPTH=16" -D"OPENSHOT_IMAGEMAGICK_COMPATIBILITY=0" -D"ENABLE_BLACKMAGIC=1" -D"CMAKE_BUILD_TYPE:STRING=Debug" -D"DISABLE_TESTS=0"</buildArguments>
|
||||
<buildTarget/>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>false</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="Make Test" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>make</buildCommand>
|
||||
<buildArguments>test</buildArguments>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>false</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="Make Help" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>make</buildCommand>
|
||||
<buildArguments>help</buildArguments>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>false</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="Make Doc" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>make</buildCommand>
|
||||
<buildArguments>doc</buildArguments>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>false</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="Mac: CMake Debug" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>cmake</buildCommand>
|
||||
<buildArguments>-DCMAKE_CXX_COMPILER=/usr/local/opt/gcc48/bin/g++-4.8 -DCMAKE_C_COMPILER=/usr/local/opt/gcc48/bin/gcc-4.8 -DCMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.1.1/ -DPYTHON_INCLUDE_DIR=/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/include/python3.3m/ -DPYTHON_LIBRARY=/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/libpython3.3.dylib -DPython_FRAMEWORKS=/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/ ../ -D"CMAKE_BUILD_TYPE:STRING=Debug"</buildArguments>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>false</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="Mac: CMake Release" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>cmake</buildCommand>
|
||||
<buildArguments>-DCMAKE_CXX_COMPILER=/usr/local/opt/gcc48/bin/g++-4.8 -DCMAKE_C_COMPILER=/usr/local/opt/gcc48/bin/gcc-4.8 -DCMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.1.1/ -DPYTHON_INCLUDE_DIR=/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/include/python3.3m/ -DPYTHON_LIBRARY=/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/libpython3.3.dylib -DPython_FRAMEWORKS=/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/ ../ -D"CMAKE_BUILD_TYPE:STRING=Release"</buildArguments>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>false</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="Windows: CMake Debug" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>cmake</buildCommand>
|
||||
<buildArguments>-G "MinGW Makefiles" ../ -D"CMAKE_BUILD_TYPE:STRING=Debug"</buildArguments>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>false</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
<target name="Windows: CMake Release" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||
<buildCommand>cmake</buildCommand>
|
||||
<buildArguments>-G "MinGW Makefiles" ../ -D"CMAKE_BUILD_TYPE:STRING=Release"</buildArguments>
|
||||
<stopOnError>true</stopOnError>
|
||||
<useDefaultCommand>false</useDefaultCommand>
|
||||
<runAllBuilders>true</runAllBuilders>
|
||||
</target>
|
||||
</buildTargets>
|
||||
</storageModule>
|
||||
</cproject>
|
||||
6
.gitignore
vendored
6
.gitignore
vendored
@@ -3,4 +3,8 @@ build/*
|
||||
*.DS_Store
|
||||
.pydevproject
|
||||
.settings
|
||||
.idea/*
|
||||
.idea/*
|
||||
.project
|
||||
.cproject
|
||||
/.metadata/
|
||||
*~
|
||||
|
||||
@@ -20,9 +20,14 @@ linux-builder:
|
||||
- cmake -D"CMAKE_INSTALL_PREFIX:PATH=$CI_PROJECT_DIR/build/install-x64" -D"CMAKE_BUILD_TYPE:STRING=Release" ../
|
||||
- make
|
||||
- make install
|
||||
- mv /usr/local/lib/python3.4/dist-packages/*openshot* install-x64/python
|
||||
- make doc
|
||||
- ~/auto-update-docs "$CI_PROJECT_DIR/build" "$CI_COMMIT_REF_NAME"
|
||||
- mv install-x64/lib/python3.4/site-packages/*openshot* install-x64/python
|
||||
- echo -e "CI_PROJECT_NAME:$CI_PROJECT_NAME\nCI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME\nCI_COMMIT_SHA:$CI_COMMIT_SHA\nCI_JOB_ID:$CI_JOB_ID" > "install-x64/share/$CI_PROJECT_NAME"
|
||||
- git log $(git describe --tags --abbrev=0)..HEAD --oneline --pretty=format:"%C(auto,yellow)%h%C(auto,magenta)% %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(25,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D" --date=short > "install-x64/share/$CI_PROJECT_NAME.log"
|
||||
when: always
|
||||
except:
|
||||
- tags
|
||||
tags:
|
||||
- linux
|
||||
|
||||
@@ -44,38 +49,15 @@ mac-builder:
|
||||
- cmake -D"CMAKE_INSTALL_PREFIX:PATH=$CI_PROJECT_DIR/build/install-x64" -DCMAKE_CXX_COMPILER=/usr/local/opt/gcc48/bin/g++-4.8 -DCMAKE_C_COMPILER=/usr/local/opt/gcc48/bin/gcc-4.8 -DCMAKE_PREFIX_PATH=/usr/local/qt5/5.5/clang_64 -DPYTHON_INCLUDE_DIR=/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m -DPYTHON_LIBRARY=/Library/Frameworks/Python.framework/Versions/3.6/lib/libpython3.6.dylib -DPython_FRAMEWORKS=/Library/Frameworks/Python.framework/ -D"CMAKE_BUILD_TYPE:STRING=Debug" -D"CMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" -D"CMAKE_OSX_DEPLOYMENT_TARGET=10.9" -D"CMAKE_INSTALL_RPATH_USE_LINK_PATH=1" -D"ENABLE_RUBY=0" ../
|
||||
- make
|
||||
- make install
|
||||
- mv /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/*openshot* install-x64/python
|
||||
- mv install-x64/lib/python3.6/site-packages/*openshot* install-x64/python
|
||||
- echo -e "CI_PROJECT_NAME:$CI_PROJECT_NAME\nCI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME\nCI_COMMIT_SHA:$CI_COMMIT_SHA\nCI_JOB_ID:$CI_JOB_ID" > "install-x64/share/$CI_PROJECT_NAME"
|
||||
- git log $(git describe --tags --abbrev=0)..HEAD --oneline --pretty=format:"%C(auto,yellow)%h%C(auto,magenta)% %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(25,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D" --date=short > "install-x64/share/$CI_PROJECT_NAME.log"
|
||||
when: always
|
||||
except:
|
||||
- tags
|
||||
tags:
|
||||
- mac
|
||||
|
||||
windows-builder-x86:
|
||||
stage: build-libopenshot
|
||||
artifacts:
|
||||
expire_in: 6 months
|
||||
paths:
|
||||
- build\install-x86\*
|
||||
script:
|
||||
- try { Invoke-WebRequest -Uri "http://gitlab.openshot.org/OpenShot/libopenshot-audio/-/jobs/artifacts/$CI_COMMIT_REF_NAME/download?job=windows-builder-x86" -Headers @{"PRIVATE-TOKEN"="$ACCESS_TOKEN"} -OutFile "artifacts.zip" } catch { $_.Exception.Response.StatusCode.Value__ }
|
||||
- if (-not (Test-Path "artifacts.zip")) { Invoke-WebRequest -Uri "http://gitlab.openshot.org/OpenShot/libopenshot-audio/-/jobs/artifacts/develop/download?job=windows-builder-x86" -Headers @{"PRIVATE-TOKEN"="$ACCESS_TOKEN"} -OutFile "artifacts.zip" }
|
||||
- Expand-Archive -Path artifacts.zip -DestinationPath .
|
||||
- $env:LIBOPENSHOT_AUDIO_DIR = "$CI_PROJECT_DIR\build\install-x86"
|
||||
- $env:UNITTEST_DIR = "C:\msys32\usr"
|
||||
- $env:ZMQDIR = "C:\msys32\usr"
|
||||
- $env:Path = "C:\msys32\mingw32\bin;C:\msys32\mingw32\lib;C:\msys32\usr\lib\cmake\UnitTest++;C:\msys32\home\jonathan\depot_tools;C:\msys32\usr;C:\msys32\usr\lib;" + $env:Path;
|
||||
- New-Item -ItemType Directory -Force -Path build
|
||||
- New-Item -ItemType Directory -Force -Path build\install-x86\python
|
||||
- cd build
|
||||
- cmake -D"CMAKE_INSTALL_PREFIX:PATH=$CI_PROJECT_DIR\build\install-x86" -G "MinGW Makefiles" -D"CMAKE_BUILD_TYPE:STRING=Release" -D"CMAKE_CXX_FLAGS=-m32" -D"CMAKE_EXE_LINKER_FLAGS=-Wl,--large-address-aware" -D"CMAKE_C_FLAGS=-m32" ../
|
||||
- mingw32-make install
|
||||
- Move-Item -Force -path "C:\msys32\mingw32\lib\python3.6\site-packages\*openshot*" -destination "install-x86\python\"
|
||||
- cp src\libopenshot.dll install-x86\lib
|
||||
- New-Item -path "install-x86/share/" -Name "$CI_PROJECT_NAME" -Value "CI_PROJECT_NAME:$CI_PROJECT_NAME`nCI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME`nCI_COMMIT_SHA:$CI_COMMIT_SHA`nCI_JOB_ID:$CI_JOB_ID" -ItemType file -force
|
||||
when: always
|
||||
tags:
|
||||
- windows
|
||||
|
||||
windows-builder-x64:
|
||||
stage: build-libopenshot
|
||||
artifacts:
|
||||
@@ -95,10 +77,45 @@ windows-builder-x64:
|
||||
- cd build
|
||||
- cmake -D"CMAKE_INSTALL_PREFIX:PATH=$CI_PROJECT_DIR\build\install-x64" -G "MinGW Makefiles" -D"CMAKE_BUILD_TYPE:STRING=Release" ../
|
||||
- mingw32-make install
|
||||
- Move-Item -Force -path "C:\msys64\mingw64\lib\python3.6\site-packages\*openshot*" -destination "install-x64\python\"
|
||||
- Move-Item -Force -path "install-x64\lib\python3.6\site-packages\*openshot*" -destination "install-x64\python\"
|
||||
- cp src\libopenshot.dll install-x64\lib
|
||||
- New-Item -path "install-x64/share/" -Name "$CI_PROJECT_NAME" -Value "CI_PROJECT_NAME:$CI_PROJECT_NAME`nCI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME`nCI_COMMIT_SHA:$CI_COMMIT_SHA`nCI_JOB_ID:$CI_JOB_ID" -ItemType file -force
|
||||
- $PREV_GIT_LABEL=(git describe --tags --abbrev=0)
|
||||
- git log "$PREV_GIT_LABEL..HEAD" --oneline --pretty=format:"%C(auto,yellow)%h%C(auto,magenta)% %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(25,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D" --date=short > "install-x64/share/$CI_PROJECT_NAME.log"
|
||||
when: always
|
||||
except:
|
||||
- tags
|
||||
tags:
|
||||
- windows
|
||||
|
||||
windows-builder-x86:
|
||||
stage: build-libopenshot
|
||||
artifacts:
|
||||
expire_in: 6 months
|
||||
paths:
|
||||
- build\install-x86\*
|
||||
script:
|
||||
- try { Invoke-WebRequest -Uri "http://gitlab.openshot.org/OpenShot/libopenshot-audio/-/jobs/artifacts/$CI_COMMIT_REF_NAME/download?job=windows-builder-x86" -Headers @{"PRIVATE-TOKEN"="$ACCESS_TOKEN"} -OutFile "artifacts.zip" } catch { $_.Exception.Response.StatusCode.Value__ }
|
||||
- if (-not (Test-Path "artifacts.zip")) { Invoke-WebRequest -Uri "http://gitlab.openshot.org/OpenShot/libopenshot-audio/-/jobs/artifacts/develop/download?job=windows-builder-x86" -Headers @{"PRIVATE-TOKEN"="$ACCESS_TOKEN"} -OutFile "artifacts.zip" }
|
||||
- Expand-Archive -Path artifacts.zip -DestinationPath .
|
||||
- $env:LIBOPENSHOT_AUDIO_DIR = "$CI_PROJECT_DIR\build\install-x86"
|
||||
- $env:UNITTEST_DIR = "C:\msys32\usr"
|
||||
- $env:RESVGDIR = "C:\msys32\usr\local"
|
||||
- $env:ZMQDIR = "C:\msys32\usr"
|
||||
- $env:Path = "C:\msys32\mingw32\bin;C:\msys32\mingw32\lib;C:\msys32\usr\lib\cmake\UnitTest++;C:\msys32\home\jonathan\depot_tools;C:\msys32\usr;C:\msys32\usr\lib;" + $env:Path;
|
||||
- New-Item -ItemType Directory -Force -Path build
|
||||
- New-Item -ItemType Directory -Force -Path build\install-x86\python
|
||||
- cd build
|
||||
- cmake -D"CMAKE_INSTALL_PREFIX:PATH=$CI_PROJECT_DIR\build\install-x86" -G "MinGW Makefiles" -D"CMAKE_BUILD_TYPE:STRING=Release" -D"CMAKE_CXX_FLAGS=-m32" -D"CMAKE_EXE_LINKER_FLAGS=-Wl,--large-address-aware" -D"CMAKE_C_FLAGS=-m32" ../
|
||||
- mingw32-make install
|
||||
- Move-Item -Force -path "install-x86\lib\python3.6\site-packages\*openshot*" -destination "install-x86\python\"
|
||||
- cp src\libopenshot.dll install-x86\lib
|
||||
- New-Item -path "install-x86/share/" -Name "$CI_PROJECT_NAME" -Value "CI_PROJECT_NAME:$CI_PROJECT_NAME`nCI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME`nCI_COMMIT_SHA:$CI_COMMIT_SHA`nCI_JOB_ID:$CI_JOB_ID" -ItemType file -force
|
||||
- $PREV_GIT_LABEL=(git describe --tags --abbrev=0)
|
||||
- git log "$PREV_GIT_LABEL..HEAD" --oneline --pretty=format:"%C(auto,yellow)%h%C(auto,magenta)% %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(25,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D" --date=short > "install-x86/share/$CI_PROJECT_NAME.log"
|
||||
when: always
|
||||
except:
|
||||
- tags
|
||||
tags:
|
||||
- windows
|
||||
|
||||
@@ -108,5 +125,7 @@ trigger-pipeline:
|
||||
- "curl -X POST -F token=$OPENSHOT_QT_PIPELINE_TOKEN -F ref=$CI_COMMIT_REF_NAME http://gitlab.openshot.org/api/v4/projects/3/trigger/pipeline"
|
||||
when: always
|
||||
dependencies: []
|
||||
except:
|
||||
- tags
|
||||
tags:
|
||||
- gitlab
|
||||
|
||||
94
.project
94
.project
@@ -1,94 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>libopenshot</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>com.aptana.ide.core.unifiedBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.python.pydev.PyDevBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
<dictionary>
|
||||
<key>?name?</key>
|
||||
<value></value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.append_environment</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.autoBuildTarget</key>
|
||||
<value>all</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildArguments</key>
|
||||
<value></value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildCommand</key>
|
||||
<value>make</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildLocation</key>
|
||||
<value>${workspace_loc:/libopenshot/build}</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
|
||||
<value>clean</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.contents</key>
|
||||
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
|
||||
<value>false</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.fullBuildTarget</key>
|
||||
<value>all</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.stopOnError</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
|
||||
<value>true</value>
|
||||
</dictionary>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.core.ccnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
<nature>org.python.pydev.pythonNature</nature>
|
||||
<nature>com.aptana.ruby.core.rubynature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
53
.travis.yml
Normal file
53
.travis.yml
Normal file
@@ -0,0 +1,53 @@
|
||||
dist: xenial
|
||||
sudo: required
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- language: cpp
|
||||
name: "FFmpeg 2"
|
||||
before_script:
|
||||
- sudo add-apt-repository ppa:openshot.developers/libopenshot-daily -y
|
||||
- sudo add-apt-repository ppa:beineri/opt-qt-5.10.0-xenial -y
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install gcc-4.8 cmake libavcodec-dev libavformat-dev libswscale-dev libavresample-dev libavutil-dev libopenshot-audio-dev libopenshot-dev libfdk-aac-dev libfdk-aac-dev libjsoncpp-dev libmagick++-dev libopenshot-audio-dev libunittest++-dev libzmq3-dev pkg-config python3-dev qtbase5-dev qtmultimedia5-dev swig -y
|
||||
- sudo apt autoremove -y
|
||||
script:
|
||||
- mkdir -p build; cd build;
|
||||
- cmake -D"CMAKE_BUILD_TYPE:STRING=Debug" ../
|
||||
- make VERBOSE=1
|
||||
- make os_test
|
||||
- make install DESTDIR=dist/
|
||||
|
||||
- language: cpp
|
||||
name: "FFmpeg 3"
|
||||
before_script:
|
||||
- sudo add-apt-repository ppa:openshot.developers/libopenshot-daily -y
|
||||
- sudo add-apt-repository ppa:beineri/opt-qt-5.10.0-xenial -y
|
||||
- sudo add-apt-repository ppa:jonathonf/ffmpeg-3 -y
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install gcc-4.8 cmake libavcodec-dev libavformat-dev libswscale-dev libavresample-dev libavutil-dev libopenshot-audio-dev libopenshot-dev libfdk-aac-dev libfdk-aac-dev libjsoncpp-dev libmagick++-dev libopenshot-audio-dev libunittest++-dev libzmq3-dev pkg-config python3-dev qtbase5-dev qtmultimedia5-dev swig -y
|
||||
- sudo apt autoremove -y
|
||||
script:
|
||||
- mkdir -p build; cd build;
|
||||
- cmake -D"CMAKE_BUILD_TYPE:STRING=Debug" ../
|
||||
- make VERBOSE=1
|
||||
- make os_test
|
||||
- make install DESTDIR=dist/
|
||||
|
||||
- language: cpp
|
||||
name: "FFmpeg 4"
|
||||
before_script:
|
||||
- sudo add-apt-repository ppa:openshot.developers/libopenshot-daily -y
|
||||
- sudo add-apt-repository ppa:beineri/opt-qt-5.10.0-xenial -y
|
||||
- sudo add-apt-repository ppa:jonathonf/ffmpeg -y
|
||||
- sudo add-apt-repository ppa:jonathonf/ffmpeg-4 -y
|
||||
- sudo add-apt-repository ppa:jonathonf/backports -y
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install gcc-4.8 cmake libavcodec58 libavformat58 libavcodec-dev libavformat-dev libswscale-dev libavresample-dev libavutil-dev libopenshot-audio-dev libopenshot-dev libfdk-aac-dev libfdk-aac-dev libjsoncpp-dev libmagick++-dev libopenshot-audio-dev libunittest++-dev libzmq3-dev pkg-config python3-dev qtbase5-dev qtmultimedia5-dev swig -y
|
||||
- sudo apt autoremove -y
|
||||
script:
|
||||
- mkdir -p build; cd build;
|
||||
- cmake -D"CMAKE_BUILD_TYPE:STRING=Debug" ../
|
||||
- make VERBOSE=1
|
||||
- make os_test
|
||||
- make install DESTDIR=dist/
|
||||
@@ -4,10 +4,10 @@
|
||||
#
|
||||
# @section LICENSE
|
||||
#
|
||||
# Copyright (c) 2008-2014 OpenShot Studios, LLC
|
||||
# Copyright (c) 2008-2019 OpenShot Studios, LLC
|
||||
# <http://www.openshotstudios.com/>. This file is part of
|
||||
# OpenShot Library (libopenshot), an open-source project dedicated to
|
||||
# delivering high quality video editing and animation solutions to the
|
||||
# OpenShot Library (libopenshot), an open-source project dedicated to
|
||||
# delivering high quality video editing and animation solutions to the
|
||||
# world. For more information visit <http://www.openshot.org/>.
|
||||
#
|
||||
# OpenShot Library (libopenshot) is free software: you can redistribute it
|
||||
@@ -24,25 +24,31 @@
|
||||
# along with OpenShot Library. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
cmake_minimum_required(VERSION 2.8.11)
|
||||
cmake_minimum_required(VERSION 3.1...3.14 FATAL_ERROR)
|
||||
|
||||
MESSAGE("--------------------------------------------------------------")
|
||||
MESSAGE("Welcome to the OpenShot Build System! CMake will now check for all required build")
|
||||
MESSAGE("dependencies and notify you of any missing files or other issues. If you have any")
|
||||
MESSAGE("questions or issues, please visit <http://www.openshot.org/>.")
|
||||
message("\
|
||||
-----------------------------------------------------------------
|
||||
Welcome to the OpenShot Build System!
|
||||
|
||||
CMake will now check libopenshot's build dependencies and inform
|
||||
you of any missing files or other issues.
|
||||
|
||||
For more information, please visit <http://www.openshot.org/>.
|
||||
-----------------------------------------------------------------")
|
||||
|
||||
################ ADD CMAKE MODULES ##################
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules")
|
||||
|
||||
################ GET VERSION INFORMATION FROM VERSION.H ##################
|
||||
MESSAGE("--------------------------------------------------------------")
|
||||
MESSAGE("Determining Version Number (from Version.h file)")
|
||||
message(STATUS "Determining Version Number (from Version.h file)")
|
||||
|
||||
#### Get the lines related to libopenshot version from the Version.h header
|
||||
file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/include/Version.h OPENSHOT_VERSION_LINES
|
||||
REGEX "#define[ ]+OPENSHOT_VERSION_.*[0-9]+;.*")
|
||||
|
||||
#### Set each line into it's own variable
|
||||
file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/include/Version.h
|
||||
OPENSHOT_VERSION_LINES
|
||||
REGEX "#define[ ]+OPENSHOT_VERSION_.*[0-9]+;.*")
|
||||
|
||||
#### Set each line into its own variable
|
||||
|
||||
list (GET OPENSHOT_VERSION_LINES 0 LINE_MAJOR)
|
||||
list (GET OPENSHOT_VERSION_LINES 1 LINE_MINOR)
|
||||
list (GET OPENSHOT_VERSION_LINES 2 LINE_BUILD)
|
||||
@@ -53,22 +59,34 @@ STRING(REGEX REPLACE "#define[ ]+OPENSHOT_VERSION_MAJOR[ ]+([0-9]+);(.*)" "\\1"
|
||||
STRING(REGEX REPLACE "#define[ ]+OPENSHOT_VERSION_MINOR[ ]+([0-9]+);(.*)" "\\1" MINOR_VERSION "${LINE_MINOR}")
|
||||
STRING(REGEX REPLACE "#define[ ]+OPENSHOT_VERSION_BUILD[ ]+([0-9]+);(.*)" "\\1" BUILD_VERSION "${LINE_BUILD}")
|
||||
STRING(REGEX REPLACE "#define[ ]+OPENSHOT_VERSION_SO[ ]+([0-9]+);(.*)" "\\1" SO_VERSION "${LINE_SO}")
|
||||
set(PROJECT_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${BUILD_VERSION}")
|
||||
|
||||
MESSAGE("--> MAJOR Version: ${MAJOR_VERSION}")
|
||||
MESSAGE("--> MINOR Version: ${MINOR_VERSION}")
|
||||
MESSAGE("--> BUILD Version: ${BUILD_VERSION}")
|
||||
MESSAGE("--> SO/API/ABI Version: ${SO_VERSION}")
|
||||
MESSAGE("--> VERSION: ${PROJECT_VERSION}")
|
||||
MESSAGE("")
|
||||
message(STATUS "MAJOR Version: ${MAJOR_VERSION}")
|
||||
message(STATUS "MINOR Version: ${MINOR_VERSION}")
|
||||
message(STATUS "BUILD Version: ${BUILD_VERSION}")
|
||||
message(STATUS "SO/API/ABI Version: ${SO_VERSION}")
|
||||
message(STATUS "Determining Version Number - done")
|
||||
|
||||
################### SETUP PROJECT ###################
|
||||
PROJECT(openshot)
|
||||
MESSAGE("--------------------------------------------------------------")
|
||||
MESSAGE("Generating build files for ${PROJECT_NAME} (${PROJECT_VERSION})")
|
||||
PROJECT(libopenshot LANGUAGES C CXX
|
||||
VERSION ${MAJOR_VERSION}.${MINOR_VERSION}.${BUILD_VERSION})
|
||||
|
||||
message("
|
||||
Generating build files for OpenShot
|
||||
Building ${PROJECT_NAME} (version ${PROJECT_VERSION})
|
||||
SO/API/ABI Version: ${SO_VERSION}
|
||||
")
|
||||
|
||||
#### Work around a GCC < 9 bug with handling of _Pragma() in macros
|
||||
#### See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55578
|
||||
if ((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") AND
|
||||
(${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS "9.0.0"))
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -no-integrated-cpp")
|
||||
endif()
|
||||
|
||||
#### Enable C++11 (for std::shared_ptr support)
|
||||
set(CMAKE_CXX_FLAGS "-std=c++11")
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
IF (WIN32)
|
||||
SET_PROPERTY(GLOBAL PROPERTY WIN32 "WIN32")
|
||||
|
||||
570
Doxyfile.in
570
Doxyfile.in
File diff suppressed because it is too large
Load Diff
153
INSTALL.md
Normal file
153
INSTALL.md
Normal file
@@ -0,0 +1,153 @@
|
||||
## Detailed Install Instructions
|
||||
|
||||
Operating system specific install instructions are located in:
|
||||
|
||||
* doc/INSTALL-LINUX.md
|
||||
* doc/INSTALL-MAC.md
|
||||
* doc/INSTALL-WINDOWS.md
|
||||
|
||||
## Getting Started
|
||||
|
||||
The best way to get started with libopenshot, is to learn about our build system, obtain all the source code,
|
||||
install a development IDE and tools, and better understand our dependencies. So, please read through the
|
||||
following sections, and follow the instructions. And keep in mind, that your computer is likely different
|
||||
than the one used when writing these instructions. Your file paths and versions of applications might be
|
||||
slightly different, so keep an eye out for subtle file path differences in the commands you type.
|
||||
|
||||
## Build Tools
|
||||
|
||||
CMake is the backbone of our build system. It is a cross-platform build system, which checks for dependencies,
|
||||
locates header files and libraries, generates makefiles, and supports the cross-platform compiling of
|
||||
libopenshot and libopenshot-audio. CMake uses an out-of-source build concept, where all temporary build
|
||||
files, such as makefiles, object files, and even the final binaries, are created outside of the source
|
||||
code folder, inside a /build/ sub-folder. This prevents the build process from cluttering up the source
|
||||
code. These instructions have only been tested with the GNU compiler (including MSYS2/MinGW for Windows).
|
||||
|
||||
## Dependencies
|
||||
|
||||
The following libraries are required to build libopenshot. Instructions on how to install these
|
||||
dependencies vary for each operating system. Libraries and Executables have been labeled in the
|
||||
list below to help distinguish between them.
|
||||
|
||||
* ### FFmpeg (libavformat, libavcodec, libavutil, libavdevice, libavresample, libswscale)
|
||||
* http://www.ffmpeg.org/ `(Library)`
|
||||
* This library is used to decode and encode video, audio, and image files. It is also used to obtain information about media files, such as frame rate, sample rate, aspect ratio, and other common attributes.
|
||||
|
||||
* ### ImageMagick++ (libMagick++, libMagickWand, libMagickCore)
|
||||
* http://www.imagemagick.org/script/magick++.php `(Library)`
|
||||
* This library is **optional**, and used to decode and encode images.
|
||||
|
||||
* ### OpenShot Audio Library (libopenshot-audio)
|
||||
* https://github.com/OpenShot/libopenshot-audio/ `(Library)`
|
||||
* This library is used to mix, resample, host plug-ins, and play audio. It is based on the JUCE project, which is an outstanding audio library used by many different applications
|
||||
|
||||
* ### Qt 5 (libqt5)
|
||||
* http://www.qt.io/qt5/ `(Library)`
|
||||
* Qt5 is used to display video, store image data, composite images, apply image effects, and many other utility functions, such as file system manipulation, high resolution timers, etc...
|
||||
|
||||
* ### CMake (cmake)
|
||||
* http://www.cmake.org/ `(Executable)`
|
||||
* This executable is used to automate the generation of Makefiles, check for dependencies, and is the backbone of libopenshot’s cross-platform build process.
|
||||
|
||||
* ### SWIG (swig)
|
||||
* http://www.swig.org/ `(Executable)`
|
||||
* This executable is used to generate the Python and Ruby bindings for libopenshot. It is a simple and powerful wrapper for C++ libraries, and supports many languages.
|
||||
|
||||
* ### Python 3 (libpython)
|
||||
* http://www.python.org/ `(Executable and Library)`
|
||||
* This library is used by swig to create the Python (version 3+) bindings for libopenshot. This is also the official language used by OpenShot Video Editor (a graphical interface to libopenshot).
|
||||
|
||||
* ### Doxygen (doxygen)
|
||||
* http://www.stack.nl/~dimitri/doxygen/ `(Executable)`
|
||||
* This executable is used to auto-generate the documentation used by libopenshot.
|
||||
|
||||
* ### UnitTest++ (libunittest++)
|
||||
* https://github.com/unittest-cpp/ `(Library)`
|
||||
* This library is used to execute unit tests for libopenshot. It contains many macros used to keep our unit testing code very clean and simple.
|
||||
|
||||
* ### ZeroMQ (libzmq)
|
||||
* http://zeromq.org/ `(Library)`
|
||||
* This library is used to communicate between libopenshot and other applications (publisher / subscriber). Primarily used to send debug data from libopenshot.
|
||||
|
||||
* ### OpenMP (-fopenmp)
|
||||
* http://openmp.org/wp/ `(Compiler Flag)`
|
||||
* If your compiler supports this flag (GCC, Clang, and most other compilers), it provides libopenshot with easy methods of using parallel programming techniques to improve performance and take advantage of multi-core processors.
|
||||
|
||||
## CMake Flags (Optional)
|
||||
There are many different build flags that can be passed to cmake to adjust how libopenshot is compiled. Some of these flags might be required when compiling on certain OSes, just depending on how your build environment is setup. To add a build flag, follow this general syntax: $ cmake -DMAGICKCORE_HDRI_ENABLE=1 -DENABLE_TESTS=1 ../
|
||||
|
||||
* MAGICKCORE_HDRI_ENABLE (default 0)
|
||||
* MAGICKCORE_QUANTUM_DEPTH (default 0)
|
||||
* OPENSHOT_IMAGEMAGICK_COMPATIBILITY (default 0)
|
||||
* DISABLE_TESTS (default 0)
|
||||
* CMAKE_PREFIX_PATH (`/location/to/missing/library/`)
|
||||
* PYTHON_INCLUDE_DIR (`/location/to/python/include/`)
|
||||
* PYTHON_LIBRARY (`/location/to/python/lib.a`)
|
||||
* PYTHON_FRAMEWORKS (`/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/`)
|
||||
* CMAKE_CXX_COMPILER (`/location/to/mingw/g++`)
|
||||
* CMAKE_C_COMPILER (`/location/to/mingw/gcc`)
|
||||
|
||||
## Obtaining Source Code
|
||||
|
||||
The first step in installing libopenshot is to obtain the most recent source code. The source code is available on [GitHub](https://github.com/OpenShot/libopenshot). Use the following command to obtain the latest libopenshot source code.
|
||||
|
||||
```
|
||||
git clone https://github.com/OpenShot/libopenshot.git
|
||||
git clone https://github.com/OpenShot/libopenshot-audio.git
|
||||
```
|
||||
|
||||
## Folder Structure (libopenshot)
|
||||
|
||||
The source code is divided up into the following folders.
|
||||
|
||||
* ### build/
|
||||
* This folder needs to be manually created, and is used by cmake to store the temporary build files, such as makefiles, as well as the final binaries (library and test executables).
|
||||
|
||||
* ### cmake/
|
||||
* This folder contains custom modules not included by default in cmake, used to find dependency libraries and headers and determine if these libraries are installed.
|
||||
|
||||
* ### doc/
|
||||
* This folder contains documentation and related files, such as logos and images required by the doxygen auto-generated documentation.
|
||||
|
||||
* ### include/
|
||||
* This folder contains all headers (*.h) used by libopenshot.
|
||||
|
||||
* ### src/
|
||||
* This folder contains all source code (*.cpp) used by libopenshot.
|
||||
|
||||
* ### tests/
|
||||
* This folder contains all unit test code. Each class has it’s own test file (*.cpp), and uses UnitTest++ macros to keep the test code simple and manageable.
|
||||
|
||||
* ### thirdparty/
|
||||
* This folder contains code not written by the OpenShot team. For example, jsoncpp, an open-source JSON parser.
|
||||
|
||||
## Linux Build Instructions (libopenshot-audio)
|
||||
To compile libopenshot-audio, we need to go through a few additional steps to manually build and install it. Launch a terminal and enter:
|
||||
|
||||
```
|
||||
cd [libopenshot-audio repo folder]
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ../
|
||||
make
|
||||
make install
|
||||
./src/openshot-audio-test-sound (This should play a test sound)
|
||||
```
|
||||
|
||||
## Linux Build Instructions (libopenshot)
|
||||
Run the following commands to compile libopenshot:
|
||||
|
||||
```
|
||||
cd [libopenshot repo directory]
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake ../
|
||||
make
|
||||
make install
|
||||
```
|
||||
|
||||
For more detailed instructions, please see:
|
||||
|
||||
* doc/INSTALL-LINUX.md
|
||||
* doc/INSTALL-MAC.md
|
||||
* doc/INSTALL-WINDOWS.md
|
||||
66
README
66
README
@@ -1,66 +0,0 @@
|
||||
####################################################################
|
||||
OpenShot Library
|
||||
####################################################################
|
||||
|
||||
OpenShot Library (libopenshot) is an open-source project dedicated to
|
||||
delivering high quality video editing, animation, and playback solutions
|
||||
to the world. For more information visit <http://www.openshot.org/>.
|
||||
|
||||
####################################################################
|
||||
License
|
||||
####################################################################
|
||||
|
||||
Copyright (c) 2008-2014 OpenShot Studios, LLC
|
||||
<http://www.openshotstudios.com/>.
|
||||
|
||||
OpenShot Library (libopenshot) is free software: you can redistribute it
|
||||
and/or modify it under the terms of the GNU Lesser General Public License
|
||||
as published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
OpenShot Library (libopenshot) 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with OpenShot Library. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
####################################################################
|
||||
|
||||
To release a closed-source product which uses libopenshot (i.e. video
|
||||
editing and playback), commercial licenses are available: contact
|
||||
sales@openshot.org for more information.
|
||||
|
||||
|
||||
####################################################################
|
||||
Install
|
||||
####################################################################
|
||||
|
||||
Please see /doc/InstallationGuide.pdf for a very detailed
|
||||
Linux, Mac, and Windows compiling instruction guide. An online version
|
||||
is also available:
|
||||
https://docs.google.com/document/d/1V6nq-IuS9zxqO1-OSt8iTS_cw_HMCpsUNofHLYtUNjM/pub
|
||||
|
||||
|
||||
####################################################################
|
||||
Documentation
|
||||
####################################################################
|
||||
|
||||
Documentation is auto-generated by Doxygen, and can be created with
|
||||
$ make doc (Also available online: <http://openshot.org/files/libopenshot/>)
|
||||
|
||||
|
||||
####################################################################
|
||||
Authors
|
||||
####################################################################
|
||||
|
||||
Please see AUTHORS file for a full list of authors.
|
||||
|
||||
|
||||
####################################################################
|
||||
www.openshot.org | www.openshotstudios.com
|
||||
####################################################################
|
||||
|
||||
Copyright (c) 2008-2014 OpenShot Studios, LLC
|
||||
<http://www.openshotstudios.com/>.
|
||||
92
README.md
Normal file
92
README.md
Normal file
@@ -0,0 +1,92 @@
|
||||
OpenShot Video Library (libopenshot) is a free, open-source C++ library dedicated to
|
||||
delivering high quality video editing, animation, and playback solutions to the
|
||||
world.
|
||||
|
||||
## Build Status
|
||||
|
||||
[](https://travis-ci.org/OpenShot/libopenshot) [](https://travis-ci.org/OpenShot/libopenshot-audio)
|
||||
|
||||
## Features
|
||||
|
||||
* Cross-Platform (Linux, Mac, and Windows)
|
||||
* Multi-Layer Compositing
|
||||
* Video and Audio Effects (Chroma Key, Color Adjustment, Grayscale, etc…)
|
||||
* Animation Curves (Bézier, Linear, Constant)
|
||||
* Time Mapping (Curve-based Slow Down, Speed Up, Reverse)
|
||||
* Audio Mixing & Resampling (Curve-based)
|
||||
* Audio Plug-ins (VST & AU)
|
||||
* Audio Drivers (ASIO, WASAPI, DirectSound, CoreAudio, iPhone Audio, ALSA, JACK, and Android)
|
||||
* Telecine and Inverse Telecine (Film to TV, TV to Film)
|
||||
* Frame Rate Conversions
|
||||
* Multi-Processor Support (Performance)
|
||||
* Python and Ruby Bindings (All Features Supported)
|
||||
* Qt Video Player Included (Ability to display video on any QWidget)
|
||||
* Unit Tests (Stability)
|
||||
* All FFmpeg Formats and Codecs Supported (Images, Videos, and Audio files)
|
||||
* Full Documentation with Examples (Doxygen Generated)
|
||||
|
||||
## Install
|
||||
|
||||
Detailed instructions for building libopenshot and libopenshot-audio for each OS. These instructions
|
||||
are also available in the /docs/ source folder.
|
||||
|
||||
* [Linux](https://github.com/OpenShot/libopenshot/wiki/Linux-Build-Instructions)
|
||||
* [Mac](https://github.com/OpenShot/libopenshot/wiki/Mac-Build-Instructions)
|
||||
* [Windows](https://github.com/OpenShot/libopenshot/wiki/Windows-Build-Instructions)
|
||||
|
||||
## Hardware Acceleration
|
||||
|
||||
OpenShot now supports experimental hardware acceleration, both for encoding and
|
||||
decoding videos. When enabled, this can either speed up those operations or slow
|
||||
them down, depending on the power and features supported by your graphics card.
|
||||
Please see [doc/HW-ACCELL.md](doc/HW-ACCEL.md) for more information.
|
||||
|
||||
## Documentation
|
||||
|
||||
Beautiful HTML documentation can be generated using Doxygen.
|
||||
```
|
||||
make doc
|
||||
```
|
||||
(Also available online: http://openshot.org/files/libopenshot/)
|
||||
|
||||
## Developers
|
||||
|
||||
Are you interested in becoming more involved in the development of
|
||||
OpenShot? Build exciting new features, fix bugs, make friends, and become a hero!
|
||||
Please read the [step-by-step](https://github.com/OpenShot/openshot-qt/wiki/Become-a-Developer)
|
||||
instructions for getting source code, configuring dependencies, and building OpenShot.
|
||||
|
||||
## Report a bug
|
||||
|
||||
You can report a new libopenshot issue directly on GitHub:
|
||||
|
||||
https://github.com/OpenShot/libopenshot/issues
|
||||
|
||||
## Websites
|
||||
|
||||
- https://www.openshot.org/ (Official website and blog)
|
||||
- https://github.com/OpenShot/libopenshot/ (source code and issue tracker)
|
||||
- https://github.com/OpenShot/libopenshot-audio/ (source code for audio library)
|
||||
- https://github.com/OpenShot/openshot-qt/ (source code for Qt client)
|
||||
- https://launchpad.net/openshot/
|
||||
|
||||
### License
|
||||
|
||||
Copyright (c) 2008-2019 OpenShot Studios, LLC.
|
||||
|
||||
OpenShot Library (libopenshot) is free software: you can redistribute it
|
||||
and/or modify it under the terms of the GNU Lesser General Public License
|
||||
as published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
OpenShot Library (libopenshot) 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with OpenShot Library. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
To release a closed-source product which uses libopenshot (i.e. video
|
||||
editing and playback), commercial licenses are also available: contact
|
||||
sales@openshot.org for more information.
|
||||
@@ -1,151 +1,161 @@
|
||||
# - Try to find FFMPEG
|
||||
# vim: ts=2 sw=2
|
||||
# - Try to find the required ffmpeg components(default: AVFORMAT, AVUTIL, AVCODEC)
|
||||
#
|
||||
# Once done this will define
|
||||
#
|
||||
# FFMPEG_FOUND - system has FFMPEG
|
||||
# FFMPEG_INCLUDE_DIR - the include directory
|
||||
# FFMPEG_LIBRARY_DIR - the directory containing the libraries
|
||||
# FFMPEG_LIBRARIES - Link these to use FFMPEG
|
||||
#
|
||||
|
||||
# FindAvformat
|
||||
FIND_PATH( AVFORMAT_INCLUDE_DIR libavformat/avformat.h
|
||||
PATHS /usr/include/
|
||||
/usr/include/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/include/
|
||||
$ENV{FFMPEGDIR}/include/ffmpeg/ )
|
||||
|
||||
FIND_LIBRARY( AVFORMAT_LIBRARY avformat avformat-55 avformat-57
|
||||
PATHS /usr/lib/
|
||||
/usr/lib/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/lib/
|
||||
$ENV{FFMPEGDIR}/lib/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/bin/ )
|
||||
|
||||
#FindAvcodec
|
||||
FIND_PATH( AVCODEC_INCLUDE_DIR libavcodec/avcodec.h
|
||||
PATHS /usr/include/
|
||||
/usr/include/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/include/
|
||||
$ENV{FFMPEGDIR}/include/ffmpeg/ )
|
||||
|
||||
FIND_LIBRARY( AVCODEC_LIBRARY avcodec avcodec-55 avcodec-57
|
||||
PATHS /usr/lib/
|
||||
/usr/lib/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/lib/
|
||||
$ENV{FFMPEGDIR}/lib/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/bin/ )
|
||||
|
||||
#FindAvutil
|
||||
FIND_PATH( AVUTIL_INCLUDE_DIR libavutil/avutil.h
|
||||
PATHS /usr/include/
|
||||
/usr/include/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/include/
|
||||
$ENV{FFMPEGDIR}/include/ffmpeg/ )
|
||||
|
||||
FIND_LIBRARY( AVUTIL_LIBRARY avutil avutil-52 avutil-55
|
||||
PATHS /usr/lib/
|
||||
/usr/lib/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/lib/
|
||||
$ENV{FFMPEGDIR}/lib/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/bin/ )
|
||||
|
||||
#FindAvdevice
|
||||
FIND_PATH( AVDEVICE_INCLUDE_DIR libavdevice/avdevice.h
|
||||
PATHS /usr/include/
|
||||
/usr/include/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/include/
|
||||
$ENV{FFMPEGDIR}/include/ffmpeg/ )
|
||||
|
||||
FIND_LIBRARY( AVDEVICE_LIBRARY avdevice avdevice-55 avdevice-56
|
||||
PATHS /usr/lib/
|
||||
/usr/lib/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/lib/
|
||||
$ENV{FFMPEGDIR}/lib/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/bin/ )
|
||||
|
||||
#FindSwscale
|
||||
FIND_PATH( SWSCALE_INCLUDE_DIR libswscale/swscale.h
|
||||
PATHS /usr/include/
|
||||
/usr/include/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/include/
|
||||
$ENV{FFMPEGDIR}/include/ffmpeg/ )
|
||||
|
||||
FIND_LIBRARY( SWSCALE_LIBRARY swscale swscale-2 swscale-4
|
||||
PATHS /usr/lib/
|
||||
/usr/lib/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/lib/
|
||||
$ENV{FFMPEGDIR}/lib/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/bin/ )
|
||||
|
||||
#FindAvresample
|
||||
FIND_PATH( AVRESAMPLE_INCLUDE_DIR libavresample/avresample.h
|
||||
PATHS /usr/include/
|
||||
/usr/include/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/include/
|
||||
$ENV{FFMPEGDIR}/include/ffmpeg/ )
|
||||
|
||||
FIND_LIBRARY( AVRESAMPLE_LIBRARY avresample avresample-2 avresample-3
|
||||
PATHS /usr/lib/
|
||||
/usr/lib/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/lib/
|
||||
$ENV{FFMPEGDIR}/lib/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/bin/ )
|
||||
|
||||
SET( FFMPEG_FOUND FALSE )
|
||||
|
||||
IF ( AVFORMAT_INCLUDE_DIR AND AVFORMAT_LIBRARY )
|
||||
SET ( AVFORMAT_FOUND TRUE )
|
||||
ENDIF ( AVFORMAT_INCLUDE_DIR AND AVFORMAT_LIBRARY )
|
||||
|
||||
IF ( AVCODEC_INCLUDE_DIR AND AVCODEC_LIBRARY )
|
||||
SET ( AVCODEC_FOUND TRUE)
|
||||
ENDIF ( AVCODEC_INCLUDE_DIR AND AVCODEC_LIBRARY )
|
||||
|
||||
IF ( AVUTIL_INCLUDE_DIR AND AVUTIL_LIBRARY )
|
||||
SET ( AVUTIL_FOUND TRUE )
|
||||
ENDIF ( AVUTIL_INCLUDE_DIR AND AVUTIL_LIBRARY )
|
||||
|
||||
IF ( AVDEVICE_INCLUDE_DIR AND AVDEVICE_LIBRARY )
|
||||
SET ( AVDEVICE_FOUND TRUE )
|
||||
ENDIF ( AVDEVICE_INCLUDE_DIR AND AVDEVICE_LIBRARY )
|
||||
|
||||
IF ( SWSCALE_INCLUDE_DIR AND SWSCALE_LIBRARY )
|
||||
SET ( SWSCALE_FOUND TRUE )
|
||||
ENDIF ( SWSCALE_INCLUDE_DIR AND SWSCALE_LIBRARY )
|
||||
|
||||
IF ( AVRESAMPLE_INCLUDE_DIR AND AVRESAMPLE_LIBRARY )
|
||||
SET ( AVRESAMPLE_FOUND TRUE )
|
||||
ENDIF ( AVRESAMPLE_INCLUDE_DIR AND AVRESAMPLE_LIBRARY )
|
||||
|
||||
IF ( AVFORMAT_INCLUDE_DIR OR AVCODEC_INCLUDE_DIR OR AVUTIL_INCLUDE_DIR OR AVDEVICE_FOUND OR SWSCALE_FOUND OR AVRESAMPLE_FOUND )
|
||||
|
||||
SET ( FFMPEG_FOUND TRUE )
|
||||
|
||||
SET ( FFMPEG_INCLUDE_DIR
|
||||
${AVFORMAT_INCLUDE_DIR}
|
||||
${AVCODEC_INCLUDE_DIR}
|
||||
${AVUTIL_INCLUDE_DIR}
|
||||
${AVDEVICE_INCLUDE_DIR}
|
||||
${SWSCALE_INCLUDE_DIR}
|
||||
${AVRESAMPLE_INCLUDE_DIR} )
|
||||
|
||||
SET ( FFMPEG_LIBRARIES
|
||||
${AVFORMAT_LIBRARY}
|
||||
${AVCODEC_LIBRARY}
|
||||
${AVUTIL_LIBRARY}
|
||||
${AVDEVICE_LIBRARY}
|
||||
${SWSCALE_LIBRARY}
|
||||
${AVRESAMPLE_LIBRARY} )
|
||||
|
||||
ENDIF ( AVFORMAT_INCLUDE_DIR OR AVCODEC_INCLUDE_DIR OR AVUTIL_INCLUDE_DIR OR AVDEVICE_FOUND OR SWSCALE_FOUND OR AVRESAMPLE_FOUND )
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
FFMPEG_LIBRARY_DIR
|
||||
FFMPEG_INCLUDE_DIR
|
||||
)
|
||||
# FFMPEG_FOUND - System has the all required components.
|
||||
# FFMPEG_INCLUDE_DIRS - Include directory necessary for using the required components headers.
|
||||
# FFMPEG_LIBRARIES - Link these to use the required ffmpeg components.
|
||||
# FFMPEG_DEFINITIONS - Compiler switches required for using the required ffmpeg components.
|
||||
#
|
||||
# For each of the components it will additionally set.
|
||||
# - AVCODEC
|
||||
# - AVDEVICE
|
||||
# - AVFORMAT
|
||||
# - AVFILTER
|
||||
# - AVUTIL
|
||||
# - POSTPROC
|
||||
# - SWSCALE
|
||||
# - SWRESAMPLE
|
||||
# - AVRESAMPLE
|
||||
# the following variables will be defined
|
||||
# <component>_FOUND - System has <component>
|
||||
# <component>_INCLUDE_DIRS - Include directory necessary for using the <component> headers
|
||||
# <component>_LIBRARIES - Link these to use <component>
|
||||
# <component>_DEFINITIONS - Compiler switches required for using <component>
|
||||
# <component>_VERSION - The components version
|
||||
#
|
||||
# Copyright (c) 2006, Matthias Kretz, <kretz@kde.org>
|
||||
# Copyright (c) 2008, Alexander Neundorf, <neundorf@kde.org>
|
||||
# Copyright (c) 2011, Michael Jansen, <kde@michael-jansen.biz>
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
# handle the QUIETLY and REQUIRED arguments and set FFMPEG_FOUND to TRUE
|
||||
# if all listed variables are TRUE
|
||||
find_package_handle_standard_args(FFMPEG DEFAULT_MSG
|
||||
FFMPEG_LIBRARIES FFMPEG_INCLUDE_DIR)
|
||||
|
||||
# The default components were taken from a survey over other FindFFMPEG.cmake files
|
||||
if (NOT FFmpeg_FIND_COMPONENTS)
|
||||
set(FFmpeg_FIND_COMPONENTS AVCODEC AVFORMAT AVUTIL)
|
||||
endif ()
|
||||
|
||||
#
|
||||
### Macro: set_component_found
|
||||
#
|
||||
# Marks the given component as found if both *_LIBRARIES AND *_INCLUDE_DIRS is present.
|
||||
#
|
||||
macro(set_component_found _component )
|
||||
if (${_component}_LIBRARIES AND ${_component}_INCLUDE_DIRS)
|
||||
# message(STATUS " - ${_component} found.")
|
||||
set(${_component}_FOUND TRUE)
|
||||
else ()
|
||||
# message(STATUS " - ${_component} not found.")
|
||||
endif ()
|
||||
endmacro()
|
||||
|
||||
#
|
||||
### Macro: find_component
|
||||
#
|
||||
# Checks for the given component by invoking pkgconfig and then looking up the libraries and
|
||||
# include directories.
|
||||
#
|
||||
macro(find_component _component _pkgconfig _library _header)
|
||||
|
||||
if (NOT WIN32)
|
||||
# use pkg-config to get the directories and then use these values
|
||||
# in the FIND_PATH() and FIND_LIBRARY() calls
|
||||
find_package(PkgConfig)
|
||||
if (PKG_CONFIG_FOUND)
|
||||
pkg_check_modules(PC_${_component} ${_pkgconfig})
|
||||
endif ()
|
||||
endif (NOT WIN32)
|
||||
|
||||
find_path(${_component}_INCLUDE_DIRS ${_header}
|
||||
HINTS
|
||||
/opt/
|
||||
/opt/include/
|
||||
${PC_LIB${_component}_INCLUDEDIR}
|
||||
${PC_LIB${_component}_INCLUDE_DIRS}
|
||||
$ENV{FFMPEGDIR}/include/
|
||||
$ENV{FFMPEGDIR}/include/ffmpeg/
|
||||
PATH_SUFFIXES
|
||||
ffmpeg
|
||||
)
|
||||
|
||||
find_library(${_component}_LIBRARIES NAMES ${_library}
|
||||
HINTS
|
||||
${PC_LIB${_component}_LIBDIR}
|
||||
${PC_LIB${_component}_LIBRARY_DIRS}
|
||||
$ENV{FFMPEGDIR}/lib/
|
||||
$ENV{FFMPEGDIR}/lib/ffmpeg/
|
||||
$ENV{FFMPEGDIR}/bin/
|
||||
)
|
||||
|
||||
set(${_component}_DEFINITIONS ${PC_${_component}_CFLAGS_OTHER} CACHE STRING "The ${_component} CFLAGS.")
|
||||
set(${_component}_VERSION ${PC_${_component}_VERSION} CACHE STRING "The ${_component} version number.")
|
||||
|
||||
set_component_found(${_component})
|
||||
|
||||
mark_as_advanced(
|
||||
${_component}_INCLUDE_DIRS
|
||||
${_component}_LIBRARIES
|
||||
${_component}_DEFINITIONS
|
||||
${_component}_VERSION)
|
||||
|
||||
endmacro()
|
||||
|
||||
|
||||
# Check for cached results. If there are skip the costly part.
|
||||
if (NOT FFMPEG_LIBRARIES)
|
||||
|
||||
# Check for all possible component.
|
||||
find_component(AVCODEC libavcodec avcodec libavcodec/avcodec.h)
|
||||
find_component(AVFORMAT libavformat avformat libavformat/avformat.h)
|
||||
find_component(AVDEVICE libavdevice avdevice libavdevice/avdevice.h)
|
||||
find_component(AVUTIL libavutil avutil libavutil/avutil.h)
|
||||
find_component(AVFILTER libavfilter avfilter libavfilter/avfilter.h)
|
||||
find_component(SWSCALE libswscale swscale libswscale/swscale.h)
|
||||
find_component(POSTPROC libpostproc postproc libpostproc/postprocess.h)
|
||||
find_component(SWRESAMPLE libswresample swresample libswresample/swresample.h)
|
||||
find_component(AVRESAMPLE libavresample avresample libavresample/avresample.h)
|
||||
|
||||
# Check if the required components were found and add their stuff to the FFMPEG_* vars.
|
||||
foreach (_component ${FFmpeg_FIND_COMPONENTS})
|
||||
if (${_component}_FOUND)
|
||||
# message(STATUS "Required component ${_component} present.")
|
||||
set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} ${${_component}_LIBRARIES})
|
||||
set(FFMPEG_DEFINITIONS ${FFMPEG_DEFINITIONS} ${${_component}_DEFINITIONS})
|
||||
list(APPEND FFMPEG_INCLUDE_DIRS ${${_component}_INCLUDE_DIRS})
|
||||
else ()
|
||||
# message(STATUS "Required component ${_component} missing.")
|
||||
endif ()
|
||||
endforeach ()
|
||||
|
||||
# Build the include path with duplicates removed.
|
||||
if (FFMPEG_INCLUDE_DIRS)
|
||||
list(REMOVE_DUPLICATES FFMPEG_INCLUDE_DIRS)
|
||||
endif ()
|
||||
|
||||
# cache the vars.
|
||||
set(FFMPEG_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIRS} CACHE STRING "The FFmpeg include directories." FORCE)
|
||||
set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} CACHE STRING "The FFmpeg libraries." FORCE)
|
||||
set(FFMPEG_DEFINITIONS ${FFMPEG_DEFINITIONS} CACHE STRING "The FFmpeg cflags." FORCE)
|
||||
|
||||
mark_as_advanced(FFMPEG_INCLUDE_DIRS
|
||||
FFMPEG_LIBRARIES
|
||||
FFMPEG_DEFINITIONS)
|
||||
|
||||
endif ()
|
||||
|
||||
# Now set the noncached _FOUND vars for the components.
|
||||
foreach (_component AVCODEC AVDEVICE AVFORMAT AVUTIL POSTPROCESS SWSCALE SWRESAMPLE AVRESAMPLE)
|
||||
set_component_found(${_component})
|
||||
endforeach ()
|
||||
|
||||
# Compile the list of required vars
|
||||
set(_FFmpeg_REQUIRED_VARS FFMPEG_LIBRARIES FFMPEG_INCLUDE_DIRS)
|
||||
foreach (_component ${FFmpeg_FIND_COMPONENTS})
|
||||
list(APPEND _FFmpeg_REQUIRED_VARS ${_component}_LIBRARIES ${_component}_INCLUDE_DIRS)
|
||||
endforeach ()
|
||||
|
||||
# Give a nice error message if some of the required vars are missing.
|
||||
find_package_handle_standard_args(FFmpeg DEFAULT_MSG ${_FFmpeg_REQUIRED_VARS})
|
||||
|
||||
@@ -7,31 +7,12 @@
|
||||
|
||||
message("$ENV{LIBOPENSHOT_AUDIO_DIR}")
|
||||
|
||||
# Find the base directory of juce includes
|
||||
find_path(LIBOPENSHOT_AUDIO_BASE_DIR JuceHeader.h
|
||||
# Find the libopenshot-audio header files
|
||||
find_path(LIBOPENSHOT_AUDIO_INCLUDE_DIR JuceHeader.h
|
||||
PATHS $ENV{LIBOPENSHOT_AUDIO_DIR}/include/libopenshot-audio/
|
||||
/usr/include/libopenshot-audio/
|
||||
/usr/local/include/libopenshot-audio/ )
|
||||
|
||||
# Get a list of all header file paths
|
||||
FILE(GLOB_RECURSE JUCE_HEADER_FILES
|
||||
${LIBOPENSHOT_AUDIO_BASE_DIR}/*.h
|
||||
)
|
||||
|
||||
# Loop through each header file
|
||||
FOREACH(HEADER_PATH ${JUCE_HEADER_FILES})
|
||||
# Get the directory of each header file
|
||||
get_filename_component(HEADER_DIRECTORY ${HEADER_PATH}
|
||||
PATH
|
||||
)
|
||||
|
||||
# Append each directory into the HEADER_DIRECTORIES list
|
||||
LIST(APPEND HEADER_DIRECTORIES ${HEADER_DIRECTORY})
|
||||
ENDFOREACH(HEADER_PATH)
|
||||
|
||||
# Remove duplicates from the header directories list
|
||||
LIST(REMOVE_DUPLICATES HEADER_DIRECTORIES)
|
||||
|
||||
# Find the libopenshot-audio.so (check env var first)
|
||||
find_library(LIBOPENSHOT_AUDIO_LIBRARY
|
||||
NAMES libopenshot-audio openshot-audio
|
||||
@@ -48,9 +29,7 @@ find_library(LIBOPENSHOT_AUDIO_LIBRARY
|
||||
set(LIBOPENSHOT_AUDIO_LIBRARIES ${LIBOPENSHOT_AUDIO_LIBRARY})
|
||||
set(LIBOPENSHOT_AUDIO_LIBRARY ${LIBOPENSHOT_AUDIO_LIBRARIES})
|
||||
|
||||
# Seems to work fine with just the base dir (rather than all the actual include folders)
|
||||
set(LIBOPENSHOT_AUDIO_INCLUDE_DIR ${LIBOPENSHOT_AUDIO_BASE_DIR} )
|
||||
set(LIBOPENSHOT_AUDIO_INCLUDE_DIRS ${LIBOPENSHOT_AUDIO_BASE_DIR} )
|
||||
set(LIBOPENSHOT_AUDIO_INCLUDE_DIRS ${LIBOPENSHOT_AUDIO_INCLUDE_DIR} )
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
# handle the QUIETLY and REQUIRED arguments and set LIBOPENSHOT_AUDIO_FOUND to TRUE
|
||||
|
||||
28
cmake/Modules/FindRESVG.cmake
Normal file
28
cmake/Modules/FindRESVG.cmake
Normal file
@@ -0,0 +1,28 @@
|
||||
# - Try to find RESVG
|
||||
# Once done this will define
|
||||
# RESVG_FOUND - System has RESVG
|
||||
# RESVG_INCLUDE_DIRS - The RESVG include directories
|
||||
# RESVG_LIBRARIES - The libraries needed to use RESVG
|
||||
find_path ( RESVG_INCLUDE_DIR ResvgQt.h
|
||||
PATHS ${RESVGDIR}/include/resvg
|
||||
$ENV{RESVGDIR}/include/resvg
|
||||
$ENV{RESVGDIR}/include
|
||||
/usr/include/resvg
|
||||
/usr/include
|
||||
/usr/local/include/resvg
|
||||
/usr/local/include )
|
||||
|
||||
find_library ( RESVG_LIBRARY NAMES resvg
|
||||
PATHS /usr/lib
|
||||
/usr/local/lib
|
||||
$ENV{RESVGDIR}
|
||||
$ENV{RESVGDIR}/lib )
|
||||
|
||||
set ( RESVG_LIBRARIES ${RESVG_LIBRARY} )
|
||||
set ( RESVG_INCLUDE_DIRS ${RESVG_INCLUDE_DIR} )
|
||||
|
||||
include ( FindPackageHandleStandardArgs )
|
||||
# handle the QUIETLY and REQUIRED arguments and set RESVG_FOUND to TRUE
|
||||
# if all listed variables are TRUE
|
||||
find_package_handle_standard_args ( RESVG "Could NOT find RESVG, using Qt SVG parsing instead" RESVG_LIBRARY RESVG_INCLUDE_DIR )
|
||||
mark_as_advanced( RESVG_LIBRARY RESVG_INCLUDE_DIR )
|
||||
@@ -1,4 +1,30 @@
|
||||
# - Run Doxygen
|
||||
# Redistribution and use is allowed according to the terms of the New
|
||||
# BSD license:
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. The name of the author may not be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# - Run Doxygen
|
||||
#
|
||||
# Adds a doxygen target that runs doxygen to generate the html
|
||||
# and optionally the LaTeX API documentation.
|
||||
@@ -48,7 +74,6 @@
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the New
|
||||
# BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
#
|
||||
|
||||
macro(usedoxygen_set_default name value type docstring)
|
||||
@@ -80,12 +105,18 @@ if(DOXYGEN_FOUND AND DOXYFILE_IN_FOUND)
|
||||
STRING "Additional source files/directories separated by space")
|
||||
set(DOXYFILE_SOURE_DIRS "\"${DOXYFILE_SOURCE_DIR}\" ${DOXYFILE_EXTRA_SOURCES}")
|
||||
|
||||
usedoxygen_set_default(DOXYFILE_LATEX YES BOOL "Generate LaTeX API documentation" OFF)
|
||||
usedoxygen_set_default(DOXYFILE_LATEX OFF BOOL "Generate LaTeX API documentation")
|
||||
usedoxygen_set_default(DOXYFILE_LATEX_DIR "latex" STRING "LaTex output directory")
|
||||
|
||||
mark_as_advanced(DOXYFILE_OUTPUT_DIR DOXYFILE_HTML_DIR DOXYFILE_LATEX_DIR
|
||||
DOXYFILE_SOURCE_DIR DOXYFILE_EXTRA_SOURCE_DIRS DOXYFILE_IN)
|
||||
|
||||
## Dot
|
||||
usedoxygen_set_default(DOXYFILE_USE_DOT ON BOOL "Use dot (part of graphviz) to generate graphs")
|
||||
set(DOXYFILE_DOT "NO")
|
||||
if(DOXYFILE_USE_DOT AND DOXYGEN_DOT_EXECUTABLE)
|
||||
set(DOXYFILE_DOT "YES")
|
||||
endif()
|
||||
|
||||
set_property(DIRECTORY
|
||||
APPEND PROPERTY
|
||||
@@ -100,13 +131,12 @@ if(DOXYGEN_FOUND AND DOXYFILE_IN_FOUND)
|
||||
|
||||
## LaTeX
|
||||
set(DOXYFILE_PDFLATEX "NO")
|
||||
set(DOXYFILE_DOT "NO")
|
||||
|
||||
set_property(DIRECTORY APPEND PROPERTY
|
||||
ADDITIONAL_MAKE_CLEAN_FILES
|
||||
"${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_LATEX_DIR}")
|
||||
|
||||
if(DOXYFILE_LATEX STREQUAL "ON")
|
||||
if(DOXYFILE_LATEX)
|
||||
set(DOXYFILE_GENERATE_LATEX "YES")
|
||||
find_package(LATEX)
|
||||
find_program(DOXYFILE_MAKE make)
|
||||
@@ -115,9 +145,6 @@ if(DOXYGEN_FOUND AND DOXYFILE_IN_FOUND)
|
||||
if(PDFLATEX_COMPILER)
|
||||
set(DOXYFILE_PDFLATEX "YES")
|
||||
endif()
|
||||
if(DOXYGEN_DOT_EXECUTABLE)
|
||||
set(DOXYFILE_DOT "YES")
|
||||
endif()
|
||||
|
||||
add_custom_command(TARGET doxygen
|
||||
POST_BUILD
|
||||
@@ -134,7 +161,9 @@ if(DOXYGEN_FOUND AND DOXYFILE_IN_FOUND)
|
||||
|
||||
configure_file("${DOXYFILE_IN}" "${DOXYFILE}" @ONLY)
|
||||
|
||||
get_target_property(DOC_TARGET doc TYPE)
|
||||
if(TARGET doc)
|
||||
get_target_property(DOC_TARGET doc TYPE)
|
||||
endif()
|
||||
if(NOT DOC_TARGET)
|
||||
add_custom_target(doc)
|
||||
endif()
|
||||
|
||||
@@ -1,85 +0,0 @@
|
||||
####################################################################
|
||||
Install Dependencies for Windows
|
||||
####################################################################
|
||||
|
||||
Most Windows dependencies needed for libopenshot-audio, libopenshot, and openshot-qt
|
||||
can be installed easily with MSYS2 and the pacman package manager. Follow these
|
||||
directions to setup a Windows build environment for OpenShot:
|
||||
|
||||
####################################################################
|
||||
|
||||
1) Install MSYS2 (http://www.msys2.org/)
|
||||
|
||||
2) Run MSYS2 command prompt (for example: C:\msys64\msys2_shell.cmd)
|
||||
|
||||
3) Append PATH (so MSYS2 can find executables and libraries):
|
||||
$ PATH=$PATH:/c/msys64/mingw64/bin:/c/msys64/mingw64/lib (64-bit PATH)
|
||||
or
|
||||
$ PATH=$PATH:/c/msys32/mingw32/bin:/c/msys32/mingw32/lib (32-bit PATH)
|
||||
|
||||
4) Update and upgrade all packages
|
||||
$ pacman -Syu
|
||||
|
||||
5a) Install the following packages:
|
||||
*** for 64-BIT support ***
|
||||
|
||||
$ pacman -S --needed base-devel mingw-w64-x86_64-toolchain
|
||||
$ pacman -S mingw64/mingw-w64-x86_64-ffmpeg
|
||||
$ pacman -S mingw64/mingw-w64-x86_64-python3-pyqt5
|
||||
$ pacman -S mingw64/mingw-w64-x86_64-swig
|
||||
$ pacman -S mingw64/mingw-w64-x86_64-cmake
|
||||
$ pacman -S mingw64/mingw-w64-x86_64-doxygen
|
||||
$ pacman -S mingw64/mingw-w64-x86_64-python3-pip
|
||||
$ pacman -S mingw32/mingw-w64-i686-zeromq
|
||||
$ pacman -S mingw64/mingw-w64-x86_64-python3-pyzmq
|
||||
$ pacman -S mingw64/mingw-w64-x86_64-python3-cx_Freeze
|
||||
$ pacman -S git
|
||||
|
||||
Install ImageMagick if needed (OPTIONAL and NOT NEEDED)
|
||||
$ pacman -S mingw64/mingw-w64-x86_64-imagemagick
|
||||
|
||||
5b) Install the following packages:
|
||||
*** for 32-BIT support ***
|
||||
|
||||
$ pacman -S --needed base-devel mingw32/mingw-w64-i686-toolchain
|
||||
$ pacman -S mingw32/mingw-w64-i686-ffmpeg
|
||||
$ pacman -S mingw32/mingw-w64-i686-python3-pyqt5
|
||||
$ pacman -S mingw32/mingw-w64-i686-swig
|
||||
$ pacman -S mingw32/mingw-w64-i686-cmake
|
||||
$ pacman -S mingw32/mingw-w64-i686-doxygen
|
||||
$ pacman -S mingw32/mingw-w64-i686-python3-pip
|
||||
$ pacman -S mingw32/mingw-w64-i686-zeromq
|
||||
$ pacman -S mingw32/mingw-w64-i686-python3-pyzmq
|
||||
$ pacman -S mingw32/mingw-w64-i686-python3-cx_Freeze
|
||||
$ pacman -S git
|
||||
|
||||
Install ImageMagick if needed (OPTIONAL and NOT NEEDED)
|
||||
$ pacman -S mingw32/mingw-w32-x86_32-imagemagick
|
||||
|
||||
6) Install Python PIP Dependencies
|
||||
$ pip3 install httplib2
|
||||
$ pip3 install slacker
|
||||
$ pip3 install tinys3
|
||||
$ pip3 install github3.py
|
||||
$ pip3 install requests
|
||||
|
||||
7) Download Unittest++ (https://github.com/unittest-cpp/unittest-cpp) into /c/home/USER/unittest-cpp-master/
|
||||
Configure Unittest++:
|
||||
$ cmake -G "MSYS Makefiles" ../ -DCMAKE_MAKE_PROGRAM=mingw32-make -DCMAKE_INSTALL_PREFIX:PATH=/usr
|
||||
Build Unittest++
|
||||
$ mingw32-make install
|
||||
|
||||
8) ZMQ++ Header (This might not be needed anymore)
|
||||
NOTE: Download and copy zmq.hpp into the /c/msys64/mingw64/include/ folder
|
||||
|
||||
|
||||
####################################################################
|
||||
OPTIONAL: Installing ImageMagick on Windows
|
||||
####################################################################
|
||||
|
||||
If you would rather install ImageMagick from source code yourself, follow these steps:
|
||||
|
||||
Step 1) Copy [build-imagemagick.sh and urls.txt] into your local MSYS2 environment
|
||||
Step 2) Run MSYS2 Shell
|
||||
Step 3) Execute this command
|
||||
$ ./build-imagemagick.sh
|
||||
@@ -1,274 +0,0 @@
|
||||
#!/bin/bash
|
||||
# xml2 build ok but failed test
|
||||
# libfpx build error
|
||||
|
||||
function ised() {
|
||||
IN=$1
|
||||
shift
|
||||
tmp=$RANDOM.$$
|
||||
<$IN sed "$@" >$tmp && cat $tmp > $IN
|
||||
rm $tmp
|
||||
}
|
||||
|
||||
function ask() {
|
||||
read -p "${1:-Are you sure?]} [Y/n] " response
|
||||
case $response in
|
||||
y|Y|"")
|
||||
true;;
|
||||
*)
|
||||
false;;
|
||||
esac
|
||||
}
|
||||
|
||||
function download() {
|
||||
while IFS=\; read url md5 <&3; do
|
||||
fileName=${url##*/}
|
||||
|
||||
echo "Downloading ${fileName}..."
|
||||
while true; do
|
||||
if [[ ! -e $fileName ]]; then
|
||||
wget ${url} -O ${fileName}
|
||||
else
|
||||
echo "File exists!"
|
||||
fi
|
||||
|
||||
localMd5=$(md5sum ${fileName} | cut -d\ -f1)
|
||||
|
||||
if [[ ${localMd5} != ${md5} ]]; then
|
||||
ask "Checksum failed. Do you want to download this file again? [Y/n] "
|
||||
if [[ $? -ne 0 ]]; then
|
||||
exit 1
|
||||
fi
|
||||
rm ${fileName}
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
done 3< urls.txt
|
||||
}
|
||||
|
||||
function extract() {
|
||||
file=$1
|
||||
if [[ ! -e ${file} ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
case $file in
|
||||
*.tar.gz)
|
||||
tar xzf $file
|
||||
;;
|
||||
*.tar.xz|*.tar.lzma)
|
||||
tar xJf $file
|
||||
;;
|
||||
*.tar.bz2)
|
||||
tar xjf $file
|
||||
;;
|
||||
*)
|
||||
"Don't know how to extract $file"
|
||||
esac
|
||||
}
|
||||
|
||||
function isLibsInstalled() {
|
||||
libs="$@"
|
||||
notfound=false
|
||||
for l in "${libs}"; do
|
||||
ld -L/usr/local/lib -l"${l}" 2>/dev/null
|
||||
if [[ $? -ne 0 ]]; then
|
||||
notfound=true
|
||||
fi
|
||||
done
|
||||
|
||||
! ${notfound}
|
||||
}
|
||||
|
||||
function isDirExists() {
|
||||
dir="$@"
|
||||
found=false
|
||||
for d in ${dir}; do
|
||||
if [[ -d "${d}" ]]; then
|
||||
found=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
${found}
|
||||
}
|
||||
|
||||
function extractIfNeeded() {
|
||||
file=$1
|
||||
isDirExists ${file%%-*}-*
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "Extracting $file"
|
||||
extract $file
|
||||
fi
|
||||
}
|
||||
|
||||
function buildbzip2() {
|
||||
if isLibsInstalled "bz2"; then
|
||||
if ask "Found bzip2 installed. Do you want to reinstall it?"; then :
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
extractIfNeeded bzip2-*.tar.lzma
|
||||
|
||||
cd bzip2-*/
|
||||
tar xzf bzip2-1.0.6.tar.gz
|
||||
tar xzf cygming-autotools-buildfiles.tar.gz
|
||||
cd bzip2-*/
|
||||
autoconf
|
||||
mkdir ../build
|
||||
cd ../build
|
||||
../bzip2-*/configure
|
||||
make
|
||||
make install
|
||||
cd ../..
|
||||
}
|
||||
|
||||
function buildzlib() {
|
||||
if isLibsInstalled "z"; then
|
||||
if ask "Found zlib installed. Do you want to reinstall it?"; then :
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
extractIfNeeded zlib-*.tar.xz
|
||||
|
||||
cd zlib-*/
|
||||
INCLUDE_PATH=/usr/local/include LIBRARY_PATH=/usr/local/lib BINARY_PATH=/usr/local/bin make install -f win32/Makefile.gcc SHARED_MODE=1
|
||||
cd ..
|
||||
}
|
||||
|
||||
function buildlibxml2() {
|
||||
if isLibsInstalled "xml2"; then
|
||||
if ask "Found libxml2 installed. Do you want to reinstall it?"; then :
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
extractIfNeeded libxml2-*.tar.gz
|
||||
cd libxml2-*/win32/
|
||||
ised configure.js 's/dirSep = "\\\\";/dirSep = "\/";/'
|
||||
cscript.exe configure.js compiler=mingw prefix=/usr/local
|
||||
# ised ../dict.c '/typedef.*uint32_t;$/d'
|
||||
ised Makefile.mingw 's/cmd.exe \/C "\?if not exist \(.*\) mkdir \1"\?/mkdir -p \1/'
|
||||
ised Makefile.mingw 's/cmd.exe \/C "copy\(.*\)"/cp\1/'
|
||||
ised Makefile.mingw '/cp/{y/\\/\//;}'
|
||||
ised Makefile.mingw '/PREFIX/{y/\\/\//;}'
|
||||
make -f Makefile.mingw
|
||||
make -f Makefile.mingw install
|
||||
cd ../../
|
||||
}
|
||||
|
||||
function buildlibpng() {
|
||||
if isLibsInstalled "png"; then
|
||||
if ask "Found libpng installed. Do you want to reinstall it?"; then :
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
extractIfNeeded libpng-*.tar.xz
|
||||
|
||||
cd libpng-*/
|
||||
make -f scripts/makefile.msys
|
||||
make install -f scripts/makefile.msys
|
||||
cd ..
|
||||
}
|
||||
|
||||
function buildjpegsrc() {
|
||||
if isLibsInstalled "jpeg"; then
|
||||
if ask "Found jpegsrc installed. Do you want to reinstall it?"; then :
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
extract jpegsrc*.tar.gz
|
||||
|
||||
cd jpeg-*/
|
||||
./configure
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
}
|
||||
|
||||
function buildfreetype() {
|
||||
if isLibsInstalled "freetype"; then
|
||||
if ask "Found freetype installed. Do you want to reinstall it?"; then :
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
extract freetype*.tar.bz2
|
||||
|
||||
INCLUDE_PATH=/usr/local/include
|
||||
LIBRARY_PATH=/usr/local/lib
|
||||
BINARY_PATH=/usr/local/bin
|
||||
cd freetype-*/
|
||||
./configure
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
}
|
||||
|
||||
function buildlibwmf() {
|
||||
if isLibsInstalled "wmf"; then
|
||||
if ask "Found libwmf installed. Do you want to reinstall it?"; then :
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
extract libwmf*.tar.gz
|
||||
|
||||
cd libwmf-*/
|
||||
./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
}
|
||||
|
||||
function buildlibwebp() {
|
||||
if isLibsInstalled "webp"; then
|
||||
if ask "Found libwebp installed. Do you want to reinstall it?"; then :
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
extract libwebp*.tar.gz
|
||||
|
||||
cd libwebp-*/
|
||||
./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
}
|
||||
|
||||
function buildDelegate() {
|
||||
delegates="bzip2 zlib libxml2 libpng jpegsrc freetype libwmf libwebp"
|
||||
for d in ${delegates}; do
|
||||
echo "**********************************************************"
|
||||
echo "Building $d"
|
||||
build${d}
|
||||
done
|
||||
}
|
||||
|
||||
function build() {
|
||||
extractIfNeeded ImageMagick-*.tar.xz
|
||||
|
||||
local oldPwd=$(pwd -L)
|
||||
cd ImageMagick-*/
|
||||
# patch configure
|
||||
#sed -i 's/${GDI32_LIBS}x" !=/${GDI32_LIBS} ==/' configure
|
||||
ised configure 's/${GDI32_LIBS}x" !=/${GDI32_LIBS} ==/'
|
||||
./configure --enable-shared --disable-static --enable-delegate-build --without-modules CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
|
||||
make
|
||||
make install
|
||||
cd ${oldPwd}
|
||||
}
|
||||
|
||||
download
|
||||
buildDelegate
|
||||
build
|
||||
@@ -1,10 +0,0 @@
|
||||
ftp://ftp.imagemagick.org/pub/ImageMagick/releases/ImageMagick-6.8.8-10.tar.xz;ab9b397c1d4798a9f6ae6cc94aa292fe
|
||||
ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/libpng-1.6.20.tar.xz;3968acb7c66ef81a9dab867f35d0eb4b
|
||||
ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/libwebp-0.4.4.tar.gz;b737062cf688e502b940b460ddc3015f
|
||||
ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/libwmf-0.2.8.4.tar.gz;d1177739bf1ceb07f57421f0cee191e0
|
||||
ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/libxml2-2.9.3.tar.gz;daece17e045f1c107610e137ab50c179
|
||||
ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/zlib-1.2.8.tar.xz;28f1205d8dd2001f26fec1e8c2cebe37
|
||||
ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/freetype-2.6.2.tar.bz2;86109d0c998787d81ac582bad9adf82e
|
||||
http://ncu.dl.sourceforge.net/project/mingw/MinGW/Extension/bzip2/bzip2-1.0.6-4/bzip2-1.0.6-4-mingw32-src.tar.lzma;2a25de4331d1e6e1458d8632dff55fad
|
||||
ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/libfpx-1.3.1-4.tar.xz;65e2cf8dcf230ad0b90aead35553bbda
|
||||
ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/jpegsrc.v9a.tar.gz;3353992aecaee1805ef4109aadd433e7
|
||||
134
doc/HW-ACCEL.md
Normal file
134
doc/HW-ACCEL.md
Normal file
@@ -0,0 +1,134 @@
|
||||
## Hardware Acceleration
|
||||
|
||||
OpenShot now has experimental support for hardware acceleration, which uses 1 (or more)
|
||||
graphics cards to offload some of the work for both decoding and encoding. This is
|
||||
very new and experimental (as of May 2019), but we look forward to "accelerating"
|
||||
our support for this in the future!
|
||||
|
||||
The following table summarizes our current level of support:
|
||||
|
||||
| | Linux Decode | Linux Encode | Mac Decode | Mac Encode |Windows Decode| Windows Encode | Notes |
|
||||
|--------------------|------------------------|----------------------|------------------|----------------|--------------|------------------|------------------|
|
||||
| VA-API | :heavy_check_mark: | :heavy_check_mark: | - | - | - | - | *Linux Only* |
|
||||
| VDPAU | :heavy_check_mark:(+) |:white_check_mark:(++)| - | - | - | - | *Linux Only* |
|
||||
| CUDA (NVDEC/NVENC) | :x:(+++) | :heavy_check_mark: | - | - | - |:heavy_check_mark:| *Cross Platform* |
|
||||
| VideoToolBox | - | - |:heavy_check_mark:| :x:(++++) | - | - | *Mac Only* |
|
||||
| DXVA2 | - | - | - | - | :x:(+++) | - | *Windows Only* |
|
||||
| D3D11VA | - | - | - | - | :x:(+++) | - | *Windows Only* |
|
||||
| QSV | :x:(+++) | :x: | :x: | :x: | :x: | :x: | *Cross Platform* |
|
||||
|
||||
* *(+) VDPAU for some reason needs a card number one higher than it really is*
|
||||
* *(++) VDPAU is a decoder only.*
|
||||
* *(+++) Green frames (pixel data not correctly tranferred back to system memory)*
|
||||
* *(++++) Crashes and burns*
|
||||
|
||||
## Supported FFmpeg Versions
|
||||
|
||||
* HW accel is supported from FFmpeg version 3.2 (3.3 for nVidia drivers)
|
||||
* HW accel was removed for nVidia drivers in Ubuntu for FFmpeg 4+
|
||||
|
||||
**Notice:** The FFmpeg versions of Ubuntu and PPAs for Ubuntu show the
|
||||
same behaviour. FFmpeg 3 has working nVidia hardware acceleration while
|
||||
FFmpeg 4+ has no support for nVidia hardware acceleration
|
||||
included.
|
||||
|
||||
## OpenShot Settings
|
||||
|
||||
The following settings are use by libopenshot to enable, disable, and control
|
||||
the various hardware acceleration features.
|
||||
|
||||
```
|
||||
/// Use video codec for faster video decoding (if supported)
|
||||
int HARDWARE_DECODER = 0;
|
||||
|
||||
/* 0 - No acceleration
|
||||
1 - Linux VA-API
|
||||
2 - nVidia NVDEC
|
||||
3 - Windows D3D9
|
||||
4 - Windows D3D11
|
||||
5 - MacOS / VideoToolBox
|
||||
6 - Linux VDPAU
|
||||
7 - Intel QSV */
|
||||
|
||||
/// Number of threads of OpenMP
|
||||
int OMP_THREADS = 12;
|
||||
|
||||
/// Number of threads that FFmpeg uses
|
||||
int FF_THREADS = 8;
|
||||
|
||||
/// Maximum rows that hardware decode can handle
|
||||
int DE_LIMIT_HEIGHT_MAX = 1100;
|
||||
|
||||
/// Maximum columns that hardware decode can handle
|
||||
int DE_LIMIT_WIDTH_MAX = 1950;
|
||||
|
||||
/// Which GPU to use to decode (0 is the first, LINUX ONLY)
|
||||
int HW_DE_DEVICE_SET = 0;
|
||||
|
||||
/// Which GPU to use to encode (0 is the first, LINUX ONLY)
|
||||
int HW_EN_DEVICE_SET = 0;
|
||||
```
|
||||
|
||||
## Libva / VA-API (Video Acceleration API)
|
||||
|
||||
The correct version of libva is needed (libva in Ubuntu 16.04 or libva2
|
||||
in Ubuntu 18.04) for the AppImage to work with hardware acceleration.
|
||||
An AppImage that works on both systems (supporting libva and libva2),
|
||||
might be possible when no libva is included in the AppImage.
|
||||
|
||||
* vaapi is working for intel and AMD
|
||||
* vaapi is working for decode only for nouveau
|
||||
* nVidia driver is working for export only
|
||||
|
||||
## AMD Graphics Cards (RadeonOpenCompute/ROCm)
|
||||
|
||||
Decoding and encoding on the (AMD) GPU is possible with the default drivers.
|
||||
On systems where ROCm is installed and run a future use for GPU acceleration
|
||||
of effects could be implemented (contributions welcome).
|
||||
|
||||
## Multiple Graphics Cards
|
||||
|
||||
If the computer has multiple graphics cards installed, you can choose which
|
||||
should be used by libopenshot. Also, you can optionally use one card for
|
||||
decoding and the other for encoding (if both cards support acceleration).
|
||||
This is currently only supported on Linux, due to the device name FFmpeg
|
||||
expects (i.e. **/dev/dri/render128**). Contributions welcome if anyone can
|
||||
determine what string format to pass for Windows and Mac.
|
||||
|
||||
## Help Us Improve Hardware Support
|
||||
|
||||
This information might be wrong, and we would love to continue improving
|
||||
our support for hardware acceleration in OpenShot. Please help us update
|
||||
this document if you find an error or discover new and/or useful information.
|
||||
|
||||
**FFmpeg 4 + nVidia** The manual at:
|
||||
https://www.tal.org/tutorials/ffmpeg_nvidia_encode
|
||||
works pretty well. We could compile and install a version of FFmpeg 4.1.3
|
||||
on Mint 19.1 that supports the GPU on nVidia cards. A version of openshot
|
||||
with hardware support using these libraries could use the nVidia GPU.
|
||||
|
||||
**BUG:** Hardware supported decoding still has some bugs (as you can see from
|
||||
the chart above). Also, the speed gains with decoding are not as great
|
||||
as with encoding. Currently, if hardware decoding fails, there is no
|
||||
fallback (you either get green frames or an "invalid file" error in OpenShot).
|
||||
This needs to be improved to successfully fall-back to software decoding.
|
||||
|
||||
**Needed:**
|
||||
* A way to get options and limits of the GPU, such as
|
||||
supported dimensions (width and height).
|
||||
* A way to list the actual Graphic Cards available to FFmpeg (for the
|
||||
user to choose which card for decoding and encoding, as opposed
|
||||
to "Graphics Card X")
|
||||
|
||||
**Further improvement:** Right now the frame can be decoded on the GPU, but the
|
||||
frame is then copied to CPU memory for modifications. It is then copied back to
|
||||
GPU memory for encoding. Using the GPU for both decoding and modifications
|
||||
will make it possible to do away with these two copies. A possible solution would
|
||||
be to use Vulkan compute which would be available on Linux and Windows natively
|
||||
and on MacOS via MoltenVK.
|
||||
|
||||
## Credit
|
||||
|
||||
A big thanks to Peter M (https://github.com/eisneinechse) for all his work
|
||||
on integrating hardware acceleration into libopenshot! The community thanks
|
||||
you for this major contribution!
|
||||
227
doc/INSTALL-LINUX.md
Normal file
227
doc/INSTALL-LINUX.md
Normal file
@@ -0,0 +1,227 @@
|
||||
# Building libopenshot for Linux
|
||||
|
||||
## Getting Started
|
||||
|
||||
The best way to get started with libopenshot, is to learn about our build system, obtain all the source code,
|
||||
install a development IDE and tools, and better understand our dependencies. So, please read through the
|
||||
following sections, and follow the instructions. And keep in mind, that your computer is likely different
|
||||
than the one used when writing these instructions. Your file paths and versions of applications might be
|
||||
slightly different, so keep an eye out for subtle file path differences in the commands you type.
|
||||
|
||||
## Build Tools
|
||||
|
||||
CMake is the backbone of our build system. It is a cross-platform build system, which checks for
|
||||
dependencies, locates header files and libraries, generates makefiles, and supports the cross-platform
|
||||
compiling of libopenshot and libopenshot-audio. CMake uses an out-of-source build concept, where
|
||||
all temporary build files, such as makefiles, object files, and even the final binaries, are created
|
||||
outside of the source code folder, inside a /build/ sub-folder. This prevents the build process
|
||||
from cluttering up the source code. These instructions have only been tested with the GNU compiler
|
||||
(including MSYS2/MinGW for Windows).
|
||||
|
||||
## Dependencies
|
||||
|
||||
The following libraries are required to build libopenshot. Instructions on how to install these
|
||||
dependencies vary for each operating system. Libraries and Executables have been labeled in the
|
||||
list below to help distinguish between them.
|
||||
|
||||
### FFmpeg (libavformat, libavcodec, libavutil, libavdevice, libavresample, libswscale)
|
||||
* http://www.ffmpeg.org/ `(Library)`
|
||||
* This library is used to decode and encode video, audio, and image files. It is also used to obtain information about media files, such as frame rate, sample rate, aspect ratio, and other common attributes.
|
||||
|
||||
### ImageMagick++ (libMagick++, libMagickWand, libMagickCore)
|
||||
* http://www.imagemagick.org/script/magick++.php `(Library)`
|
||||
* This library is **optional**, and used to decode and encode images.
|
||||
|
||||
### OpenShot Audio Library (libopenshot-audio)
|
||||
* https://github.com/OpenShot/libopenshot-audio/ `(Library)`
|
||||
* This library is used to mix, resample, host plug-ins, and play audio. It is based on the JUCE project, which is an outstanding audio library used by many different applications
|
||||
|
||||
### Qt 5 (libqt5)
|
||||
* http://www.qt.io/qt5/ `(Library)`
|
||||
* Qt5 is used to display video, store image data, composite images, apply image effects, and many other utility functions, such as file system manipulation, high resolution timers, etc...
|
||||
|
||||
### CMake (cmake)
|
||||
* http://www.cmake.org/ `(Executable)`
|
||||
* This executable is used to automate the generation of Makefiles, check for dependencies, and is the backbone of libopenshot’s cross-platform build process.
|
||||
|
||||
### SWIG (swig)
|
||||
* http://www.swig.org/ `(Executable)`
|
||||
* This executable is used to generate the Python and Ruby bindings for libopenshot. It is a simple and powerful wrapper for C++ libraries, and supports many languages.
|
||||
|
||||
### Python 3 (libpython)
|
||||
* http://www.python.org/ `(Executable and Library)`
|
||||
* This library is used by swig to create the Python (version 3+) bindings for libopenshot. This is also the official language used by OpenShot Video Editor (a graphical interface to libopenshot).
|
||||
|
||||
### Doxygen (doxygen)
|
||||
* http://www.stack.nl/~dimitri/doxygen/ `(Executable)`
|
||||
* This executable is used to auto-generate the documentation used by libopenshot.
|
||||
|
||||
### UnitTest++ (libunittest++)
|
||||
* https://github.com/unittest-cpp/ `(Library)`
|
||||
* This library is used to execute unit tests for libopenshot. It contains many macros used to keep our unit testing code very clean and simple.
|
||||
|
||||
### ZeroMQ (libzmq)
|
||||
* http://zeromq.org/ `(Library)`
|
||||
* This library is used to communicate between libopenshot and other applications (publisher / subscriber). Primarily used to send debug data from libopenshot.
|
||||
|
||||
### OpenMP (-fopenmp)
|
||||
* http://openmp.org/wp/ `(Compiler Flag)`
|
||||
* If your compiler supports this flag (GCC, Clang, and most other compilers), it provides libopenshot with easy methods of using parallel programming techniques to improve performance and take advantage of multi-core processors.
|
||||
|
||||
|
||||
## CMake Flags (Optional)
|
||||
There are many different build flags that can be passed to cmake to adjust how libopenshot is
|
||||
compiled. Some of these flags might be required when compiling on certain OSes, just depending
|
||||
on how your build environment is setup. To add a build flag, follow this general syntax:
|
||||
`cmake -DMAGICKCORE_HDRI_ENABLE=1 -DENABLE_TESTS=1 ../`
|
||||
|
||||
* MAGICKCORE_HDRI_ENABLE (default 0)
|
||||
* MAGICKCORE_QUANTUM_DEPTH (default 0)
|
||||
* OPENSHOT_IMAGEMAGICK_COMPATIBILITY (default 0)
|
||||
* DISABLE_TESTS (default 0)
|
||||
* CMAKE_PREFIX_PATH (`/location/to/missing/library/`)
|
||||
* PYTHON_INCLUDE_DIR (`/location/to/python/include/`)
|
||||
* PYTHON_LIBRARY (`/location/to/python/lib.a`)
|
||||
* PYTHON_FRAMEWORKS (`/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/`)
|
||||
* CMAKE_CXX_COMPILER (`/location/to/mingw/g++`)
|
||||
* CMAKE_C_COMPILER (`/location/to/mingw/gcc`)
|
||||
|
||||
## Obtaining Source Code
|
||||
|
||||
The first step in installing libopenshot is to obtain the most recent source code. The source code is
|
||||
available on [GitHub](https://github.com/OpenShot/libopenshot). Use the following command
|
||||
to obtain the latest libopenshot source code.
|
||||
|
||||
```
|
||||
git clone https://github.com/OpenShot/libopenshot.git
|
||||
git clone https://github.com/OpenShot/libopenshot-audio.git
|
||||
```
|
||||
|
||||
## Folder Structure (libopenshot)
|
||||
|
||||
The source code is divided up into the following folders.
|
||||
|
||||
### build/
|
||||
* This folder needs to be manually created, and is used by cmake to store the temporary build files, such as makefiles, as well as the final binaries (library and test executables).
|
||||
|
||||
### cmake/
|
||||
* This folder contains custom modules not included by default in cmake, used to find dependency libraries and headers and determine if these libraries are installed.
|
||||
|
||||
### doc/
|
||||
* This folder contains documentation and related files, such as logos and images required by the doxygen auto-generated documentation.
|
||||
|
||||
### include/
|
||||
* This folder contains all headers (*.h) used by libopenshot.
|
||||
|
||||
### src/
|
||||
* This folder contains all source code (*.cpp) used by libopenshot.
|
||||
|
||||
### tests/
|
||||
* This folder contains all unit test code. Each class has it’s own test file (*.cpp), and uses UnitTest++ macros to keep the test code simple and manageable.
|
||||
|
||||
### thirdparty/
|
||||
* This folder contains code not written by the OpenShot team. For example, jsoncpp, an open-source JSON parser.
|
||||
|
||||
## Install Dependencies
|
||||
|
||||
In order to actually compile libopenshot, we need to install some dependencies on your system. The easiest
|
||||
way to accomplish this is with our Daily PPA. A PPA is an unofficial Ubuntu repository, which has our
|
||||
software packages available to download and install.
|
||||
|
||||
```
|
||||
sudo add-apt-repository ppa:openshot.developers/libopenshot-daily
|
||||
sudo apt-get update
|
||||
sudo apt-get install openshot-qt \
|
||||
cmake \
|
||||
libx11-dev \
|
||||
libasound2-dev \
|
||||
libavcodec-dev \
|
||||
libavdevice-dev \
|
||||
libavfilter-dev \
|
||||
libavformat-dev \
|
||||
libavresample-dev \
|
||||
libavutil-dev \
|
||||
libfdk-aac-dev \
|
||||
libfreetype6-dev \
|
||||
libjsoncpp-dev \
|
||||
libmagick++-dev \
|
||||
libopenshot-audio-dev \
|
||||
libswscale-dev \
|
||||
libunittest++-dev \
|
||||
libxcursor-dev \
|
||||
libxinerama-dev \
|
||||
libxrandr-dev \
|
||||
libzmq3-dev \
|
||||
pkg-config \
|
||||
python3-dev \
|
||||
qtbase5-dev \
|
||||
qtmultimedia5-dev \
|
||||
swig
|
||||
```
|
||||
|
||||
## Linux Build Instructions (libopenshot-audio)
|
||||
To compile libopenshot-audio, we need to go through a few additional steps to manually build and
|
||||
install it. Launch a terminal and enter:
|
||||
|
||||
```
|
||||
cd [libopenshot-audio repo folder]
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ../
|
||||
make
|
||||
make install
|
||||
./src/openshot-audio-test-sound (This should play a test sound)
|
||||
```
|
||||
|
||||
## Linux Build Instructions (libopenshot)
|
||||
Run the following commands to compile libopenshot:
|
||||
|
||||
```
|
||||
cd [libopenshot repo directory]
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake ../
|
||||
make
|
||||
```
|
||||
|
||||
If you are missing any dependencies for libopenshot, you might receive error messages at this point.
|
||||
Just install the missing packages (usually with a -dev suffix), and run the above commands again.
|
||||
Repeat until no error messages are displayed, and the build process completes. Also, if you manually
|
||||
install Qt 5, you might need to specify the location for cmake:
|
||||
|
||||
```
|
||||
cmake -DCMAKE_PREFIX_PATH=/qt5_path/qt5/5.2.0/ ../
|
||||
```
|
||||
|
||||
To run all unit tests (and verify everything is working correctly), launch a terminal, and enter:
|
||||
|
||||
```
|
||||
make test
|
||||
```
|
||||
|
||||
To auto-generate documentation for libopenshot, launch a terminal, and enter:
|
||||
|
||||
```
|
||||
make doc
|
||||
```
|
||||
|
||||
This will use doxygen to generate a folder of HTML files, with all classes and methods documented. The
|
||||
folder is located at **build/doc/html/**. Once libopenshot has been successfully built, we need to
|
||||
install it (i.e. copy it to the correct folder, so other libraries can find it).
|
||||
|
||||
```
|
||||
make install
|
||||
```
|
||||
|
||||
This will copy the binary files to /usr/local/lib/, and the header files to /usr/local/include/openshot/...
|
||||
This is where other projects will look for the libopenshot files when building. Python 3 bindings are
|
||||
also installed at this point. let's verify the python bindings work:
|
||||
|
||||
```
|
||||
python3
|
||||
>>> import openshot
|
||||
```
|
||||
|
||||
If no errors are displayed, you have successfully compiled and installed libopenshot on your system.
|
||||
Congratulations and be sure to read our wiki on [Becoming an OpenShot Developer](https://github.com/OpenShot/openshot-qt/wiki/Become-a-Developer)!
|
||||
Welcome to the OpenShot developer community! We look forward to meeting you!
|
||||
220
doc/INSTALL-MAC.md
Normal file
220
doc/INSTALL-MAC.md
Normal file
@@ -0,0 +1,220 @@
|
||||
# Building libopenshot for MacOS
|
||||
|
||||
## Getting Started
|
||||
|
||||
The best way to get started with libopenshot, is to learn about our build system, obtain all the source code,
|
||||
install a development IDE and tools, and better understand our dependencies. So, please read through the
|
||||
following sections, and follow the instructions. And keep in mind, that your computer is likely different
|
||||
than the one used when writing these instructions. Your file paths and versions of applications might be
|
||||
slightly different, so keep an eye out for subtle file path differences in the commands you type.
|
||||
|
||||
## Build Tools
|
||||
|
||||
CMake is the backbone of our build system. It is a cross-platform build system, which checks for
|
||||
dependencies, locates header files and libraries, generates makefiles, and supports the cross-platform
|
||||
compiling of libopenshot and libopenshot-audio. CMake uses an out-of-source build concept, where
|
||||
all temporary build files, such as makefiles, object files, and even the final binaries, are created
|
||||
outside of the source code folder, inside a /build/ sub-folder. This prevents the build process
|
||||
from cluttering up the source code. These instructions have only been tested with the GNU compiler
|
||||
(including MSYS2/MinGW for Windows).
|
||||
|
||||
## Dependencies
|
||||
|
||||
The following libraries are required to build libopenshot. Instructions on how to install these
|
||||
dependencies vary for each operating system. Libraries and Executables have been labeled in the
|
||||
list below to help distinguish between them.
|
||||
|
||||
### FFmpeg (libavformat, libavcodec, libavutil, libavdevice, libavresample, libswscale)
|
||||
* http://www.ffmpeg.org/ `(Library)`
|
||||
* This library is used to decode and encode video, audio, and image files. It is also used to obtain information about media files, such as frame rate, sample rate, aspect ratio, and other common attributes.
|
||||
|
||||
### ImageMagick++ (libMagick++, libMagickWand, libMagickCore)
|
||||
* http://www.imagemagick.org/script/magick++.php `(Library)`
|
||||
* This library is **optional**, and used to decode and encode images.
|
||||
|
||||
### OpenShot Audio Library (libopenshot-audio)
|
||||
* https://github.com/OpenShot/libopenshot-audio/ `(Library)`
|
||||
* This library is used to mix, resample, host plug-ins, and play audio. It is based on the JUCE project, which is an outstanding audio library used by many different applications
|
||||
|
||||
### Qt 5 (libqt5)
|
||||
* http://www.qt.io/qt5/ `(Library)`
|
||||
* Qt5 is used to display video, store image data, composite images, apply image effects, and many other utility functions, such as file system manipulation, high resolution timers, etc...
|
||||
|
||||
### CMake (cmake)
|
||||
* http://www.cmake.org/ `(Executable)`
|
||||
* This executable is used to automate the generation of Makefiles, check for dependencies, and is the backbone of libopenshot’s cross-platform build process.
|
||||
|
||||
### SWIG (swig)
|
||||
* http://www.swig.org/ `(Executable)`
|
||||
* This executable is used to generate the Python and Ruby bindings for libopenshot. It is a simple and powerful wrapper for C++ libraries, and supports many languages.
|
||||
|
||||
### Python 3 (libpython)
|
||||
* http://www.python.org/ `(Executable and Library)`
|
||||
* This library is used by swig to create the Python (version 3+) bindings for libopenshot. This is also the official language used by OpenShot Video Editor (a graphical interface to libopenshot).
|
||||
|
||||
### Doxygen (doxygen)
|
||||
* http://www.stack.nl/~dimitri/doxygen/ `(Executable)`
|
||||
* This executable is used to auto-generate the documentation used by libopenshot.
|
||||
|
||||
### UnitTest++ (libunittest++)
|
||||
* https://github.com/unittest-cpp/ `(Library)`
|
||||
* This library is used to execute unit tests for libopenshot. It contains many macros used to keep our unit testing code very clean and simple.
|
||||
|
||||
### ZeroMQ (libzmq)
|
||||
* http://zeromq.org/ `(Library)`
|
||||
* This library is used to communicate between libopenshot and other applications (publisher / subscriber). Primarily used to send debug data from libopenshot.
|
||||
|
||||
### OpenMP (-fopenmp)
|
||||
* http://openmp.org/wp/ `(Compiler Flag)`
|
||||
* If your compiler supports this flag (GCC, Clang, and most other compilers), it provides libopenshot with easy methods of using parallel programming techniques to improve performance and take advantage of multi-core processors.
|
||||
|
||||
## CMake Flags (Optional)
|
||||
There are many different build flags that can be passed to cmake to adjust how libopenshot is compiled.
|
||||
Some of these flags might be required when compiling on certain OSes, just depending on how your build
|
||||
environment is setup. To add a build flag, follow this general syntax:
|
||||
`cmake -DMAGICKCORE_HDRI_ENABLE=1 -DENABLE_TESTS=1 ../`
|
||||
|
||||
* MAGICKCORE_HDRI_ENABLE (default 0)
|
||||
* MAGICKCORE_QUANTUM_DEPTH (default 0)
|
||||
* OPENSHOT_IMAGEMAGICK_COMPATIBILITY (default 0)
|
||||
* DISABLE_TESTS (default 0)
|
||||
* CMAKE_PREFIX_PATH (`/location/to/missing/library/`)
|
||||
* PYTHON_INCLUDE_DIR (`/location/to/python/include/`)
|
||||
* PYTHON_LIBRARY (`/location/to/python/lib.a`)
|
||||
* PYTHON_FRAMEWORKS (`/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/`)
|
||||
* CMAKE_CXX_COMPILER (`/location/to/mingw/g++`)
|
||||
* CMAKE_C_COMPILER (`/location/to/mingw/gcc`)
|
||||
|
||||
## Obtaining Source Code
|
||||
|
||||
The first step in installing libopenshot is to obtain the most recent source code. The source code
|
||||
is available on [GitHub](https://github.com/OpenShot/libopenshot). Use the following command to
|
||||
obtain the latest libopenshot source code.
|
||||
|
||||
```
|
||||
git clone https://github.com/OpenShot/libopenshot.git
|
||||
git clone https://github.com/OpenShot/libopenshot-audio.git
|
||||
```
|
||||
|
||||
## Folder Structure (libopenshot)
|
||||
|
||||
The source code is divided up into the following folders.
|
||||
|
||||
### build/
|
||||
* This folder needs to be manually created, and is used by cmake to store the temporary build files, such as makefiles, as well as the final binaries (library and test executables).
|
||||
|
||||
### cmake/
|
||||
* This folder contains custom modules not included by default in cmake, used to find dependency libraries and headers and determine if these libraries are installed.
|
||||
|
||||
### doc/
|
||||
* This folder contains documentation and related files, such as logos and images required by the doxygen auto-generated documentation.
|
||||
|
||||
### include/
|
||||
* This folder contains all headers (*.h) used by libopenshot.
|
||||
|
||||
### src/
|
||||
* This folder contains all source code (*.cpp) used by libopenshot.
|
||||
|
||||
### tests/
|
||||
* This folder contains all unit test code. Each class has it’s own test file (*.cpp), and uses UnitTest++ macros to keep the test code simple and manageable.
|
||||
|
||||
### thirdparty/
|
||||
* This folder contains code not written by the OpenShot team. For example, jsoncpp, an open-source JSON parser.
|
||||
|
||||
## Install Dependencies
|
||||
|
||||
In order to actually compile libopenshot and libopenshot-audio, we need to install some dependencies on
|
||||
your system. Most packages needed by libopenshot can be installed easily with Homebrew. However, first
|
||||
install Xcode with the following options ("UNIX Development", "System Tools", "Command Line Tools", or
|
||||
"Command Line Support"). Be sure to refresh your list of Homebrew packages with the “brew update” command.
|
||||
|
||||
**NOTE:** Homebrew seems to work much better for most users (compared to MacPorts), so I am going to
|
||||
focus on brew for this guide.
|
||||
|
||||
Install the following packages using the Homebrew package installer (http://brew.sh/). Pay close attention
|
||||
to any warnings or errors during these brew installs. NOTE: You might have some conflicting libraries in
|
||||
your /usr/local/ folders, so follow the directions from brew if these are detected.
|
||||
|
||||
```
|
||||
brew install gcc48 --enable-all-languages
|
||||
brew install ffmpeg
|
||||
brew install librsvg
|
||||
brew install swig
|
||||
brew install doxygen
|
||||
brew install unittest-cpp --cc=gcc-4.8. You must specify the c++ compiler with the --cc flag to be 4.7 or 4.8.
|
||||
brew install qt5
|
||||
brew install cmake
|
||||
brew install zeromq
|
||||
```
|
||||
|
||||
## Mac Build Instructions (libopenshot-audio)
|
||||
Since libopenshot-audio is not available in a Homebrew or MacPorts package, we need to go through a
|
||||
few additional steps to manually build and install it. Launch a terminal and enter:
|
||||
|
||||
```
|
||||
cd [libopenshot-audio repo folder]
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -d -G "Unix Makefiles" -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang ../ (CLang must be used due to GNU incompatible Objective-C code in some of the Apple frameworks)
|
||||
make
|
||||
make install
|
||||
./src/openshot-audio-test-sound (This should play a test sound)
|
||||
```
|
||||
|
||||
## Mac Build Instructions (libopenshot)
|
||||
Run the following commands to build libopenshot:
|
||||
|
||||
```
|
||||
$ cd [libopenshot repo folder]
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ cmake -G "Unix Makefiles" -DCMAKE_CXX_COMPILER=/usr/local/opt/gcc48/bin/g++-4.8 -DCMAKE_C_COMPILER=/usr/local/opt/gcc48/bin/gcc-4.8 -DCMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.4.2/ -DPYTHON_INCLUDE_DIR=/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/include/python3.3m/ -DPYTHON_LIBRARY=/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/libpython3.3.dylib -DPython_FRAMEWORKS=/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/ ../ -D"CMAKE_BUILD_TYPE:STRING=Debug"
|
||||
```
|
||||
|
||||
The extra arguments on the cmake command make sure the compiler will be gcc4.8 and that cmake
|
||||
knows where to look for the Qt header files and Python library. Double check these file paths,
|
||||
as yours will likely be different.
|
||||
|
||||
```
|
||||
make
|
||||
```
|
||||
|
||||
If you are missing any dependencies for libopenshot, you will receive error messages at this point.
|
||||
Just install the missing dependencies, and run the above commands again. Repeat until no error
|
||||
messages are displayed and the build process completes.
|
||||
|
||||
Also, if you are having trouble building, please see the CMake Flags section above, as it might
|
||||
provide a solution for finding a missing folder path, missing Python 3 library, etc...
|
||||
|
||||
To run all unit tests (and verify everything is working correctly), launch a terminal, and enter:
|
||||
|
||||
```
|
||||
make test
|
||||
```
|
||||
|
||||
To auto-generate the documentation for libopenshot, launch a terminal, and enter:
|
||||
|
||||
```
|
||||
make doc
|
||||
```
|
||||
|
||||
This will use doxygen to generate a folder of HTML files, with all classes and methods documented.
|
||||
The folder is located at build/doc/html/. Once libopenshot has been successfully built, we need
|
||||
to install it (i.e. copy it to the correct folder, so other libraries can find it).
|
||||
|
||||
```
|
||||
make install
|
||||
```
|
||||
|
||||
This should copy the binary files to /usr/local/lib/, and the header files to /usr/local/include/openshot/...
|
||||
This is where other projects will look for the libopenshot files when building. Python 3 bindings are
|
||||
also installed at this point. let's verify the python bindings work:
|
||||
|
||||
```
|
||||
python3 (or python)
|
||||
>>> import openshot
|
||||
```
|
||||
|
||||
If no errors are displayed, you have successfully compiled and installed libopenshot on your
|
||||
system. Congratulations and be sure to read our wiki on [Becoming an OpenShot Developer](https://github.com/OpenShot/openshot-qt/wiki/Become-a-Developer)!
|
||||
Welcome to the OpenShot developer community! We look forward to meeting you!
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user