Skip to content

Commit 43c6892

Browse files
committed
Merge remote-tracking branch 'upstream/develop' into origin-develop
2 parents e6935ae + 816118b commit 43c6892

File tree

108 files changed

+1873
-1842
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+1873
-1842
lines changed

.github/stale.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Number of days of inactivity before an issue becomes stale
2+
daysUntilStale: 90
3+
# Number of days of inactivity before a stale issue is closed
4+
daysUntilClose: 10
5+
# Issues with these labels will never be considered stale
6+
exemptLabels:
7+
- pinned
8+
- security
9+
- enhancement
10+
# Label to use when marking an issue as stale
11+
staleLabel: stale
12+
# Comment to post when marking an issue as stale. Set to `false` to disable
13+
markComment: >
14+
This issue has been automatically marked as **stale** because it has not had
15+
recent activity. It will be closed if no further activity occurs. Thank you
16+
for your contributions.
17+
# Comment to post when closing a stale issue. Set to `false` to disable
18+
closeComment: false
19+
# Only close issues
20+
only: issues
21+
# Don't close issues which are assigned to somebody
22+
exemptAssignees: true

.gitlab-ci.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ linux-builder:
2424
- ~/auto-update-docs "$CI_PROJECT_DIR/build" "$CI_COMMIT_REF_NAME"
2525
- mv install-x64/lib/python3.4/site-packages/*openshot* install-x64/python
2626
- 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"
27-
- 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"
27+
- git log $(git describe --tags --abbrev=0 @^)..@ --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"
2828
when: always
2929
except:
3030
- tags
@@ -46,12 +46,12 @@ mac-builder:
4646
- export LIBOPENSHOT_AUDIO_DIR=$CI_PROJECT_DIR/build/install-x64
4747
- mkdir -p build; cd build;
4848
- mkdir -p install-x64/python;
49-
- cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -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" ../
49+
- cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -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=Release" -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" ../
5050
- make
5151
- make install
5252
- mv install-x64/lib/python3.6/site-packages/*openshot* install-x64/python
5353
- 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"
54-
- 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"
54+
- git log $(git describe --tags --abbrev=0 @^)..@ --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"
5555
when: always
5656
except:
5757
- tags
@@ -79,8 +79,8 @@ windows-builder-x64:
7979
- mingw32-make install
8080
- Move-Item -Force -path "install-x64\lib\python3.7\site-packages\*openshot*" -destination "install-x64\python\"
8181
- 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
82-
- $PREV_GIT_LABEL=(git describe --tags --abbrev=0)
83-
- 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"
82+
- $PREV_GIT_LABEL=(git describe --tags --abbrev=0 '@^')
83+
- git log "$PREV_GIT_LABEL..@" --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"
8484
when: always
8585
except:
8686
- tags
@@ -108,8 +108,8 @@ windows-builder-x86:
108108
- mingw32-make install
109109
- Move-Item -Force -path "install-x86\lib\python3.7\site-packages\*openshot*" -destination "install-x86\python\"
110110
- 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
111-
- $PREV_GIT_LABEL=(git describe --tags --abbrev=0)
112-
- 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"
111+
- $PREV_GIT_LABEL=(git describe --tags --abbrev=0 '@^')
112+
- git log "$PREV_GIT_LABEL..@" --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"
113113
when: always
114114
except:
115115
- tags

.travis.yml

Lines changed: 41 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -33,28 +33,13 @@ addons:
3333
- libswresample-dev
3434

3535
matrix:
36-
3736
include:
38-
- name: "FFmpeg 2 GCC (Ubuntu 16.04 Xenial)"
39-
env:
40-
- BUILD_VERSION=ffmpeg2
41-
- CMAKE_EXTRA_ARGS=""
42-
- TEST_TARGET="os_test"
43-
os: linux
44-
dist: xenial
45-
addons:
46-
apt:
47-
sources:
48-
- sourceline: 'ppa:openshot.developers/libopenshot-daily'
49-
- sourceline: 'ppa:beineri/opt-qt-5.10.0-xenial'
50-
packages:
51-
- *ff_common
5237

53-
- name: "FFmpeg 3 GCC (Ubuntu 18.04 Bionic)"
38+
- name: "Coverage + FFmpeg 3.4 GCC (Ubuntu 18.04 Bionic)"
5439
env:
55-
- BUILD_VERSION=ffmpeg3
56-
- CMAKE_EXTRA_ARGS=""
57-
- TEST_TARGET=test
40+
- BUILD_VERSION=coverage_ffmpeg34
41+
- CMAKE_EXTRA_ARGS="-DENABLE_COVERAGE=1"
42+
- TEST_TARGET=coverage
5843
os: linux
5944
dist: bionic
6045
addons:
@@ -65,6 +50,9 @@ matrix:
6550
packages:
6651
- *ff_common
6752
- qt5-default
53+
- libjsoncpp-dev
54+
- lcov
55+
- binutils-common # For c++filt
6856

6957
- name: "FFmpeg 4 GCC (Ubuntu 18.04 Bionic)"
7058
env:
@@ -82,6 +70,7 @@ matrix:
8270
packages:
8371
- *ff_common
8472
- qt5-default
73+
- libjsoncpp-dev
8574
- libavcodec58
8675
- libavformat58
8776
- libavdevice58
@@ -92,9 +81,9 @@ matrix:
9281
- libavresample4
9382
- libswresample3
9483

95-
- name: "FFmpeg 3 Clang (Ubuntu 18.04 Bionic)"
84+
- name: "FFmpeg 3.4 Clang (Ubuntu 18.04 Bionic)"
9685
env:
97-
- BUILD_VERSION=clang_ffmpeg3
86+
- BUILD_VERSION=clang_ffmpeg34
9887
- CMAKE_EXTRA_ARGS=""
9988
- TEST_TARGET=test
10089
os: linux
@@ -110,23 +99,45 @@ matrix:
11099
- qt5-default
111100
- libomp-dev
112101

113-
- name: "Coverage (Ubuntu 18.04 Bionic)"
102+
- name: "FFmpeg 3.2 GCC (Ubuntu 16.04 Xenial)"
114103
env:
115-
- BUILD_VERSION=coverage_ffmpeg3
116-
- CMAKE_EXTRA_ARGS="-DENABLE_COVERAGE=1"
117-
- TEST_TARGET=coverage
104+
- BUILD_VERSION=ffmpeg32
105+
- CMAKE_EXTRA_ARGS=""
106+
- TEST_TARGET="os_test"
118107
os: linux
119-
dist: bionic
108+
dist: xenial
120109
addons:
121110
apt:
122111
sources:
123112
- sourceline: 'ppa:openshot.developers/libopenshot-daily'
124-
- sourceline: 'ppa:beineri/opt-qt-5.12.3-bionic'
113+
- sourceline: 'ppa:beineri/opt-qt-5.10.0-xenial'
114+
- sourceline: 'ppa:jon-hedgerows/ffmpeg-backports'
115+
packages:
116+
- *ff_common
117+
- libavcodec57
118+
- libavdevice57
119+
- libavfilter6
120+
- libavformat57
121+
- libavresample3
122+
- libavutil55
123+
- libpostproc54
124+
- libswresample2
125+
- libswscale4
126+
127+
- name: "FFmpeg 2 GCC (Ubuntu 16.04 Xenial)"
128+
env:
129+
- BUILD_VERSION=ffmpeg2
130+
- CMAKE_EXTRA_ARGS=""
131+
- TEST_TARGET="os_test"
132+
os: linux
133+
dist: xenial
134+
addons:
135+
apt:
136+
sources:
137+
- sourceline: 'ppa:openshot.developers/libopenshot-daily'
138+
- sourceline: 'ppa:beineri/opt-qt-5.10.0-xenial'
125139
packages:
126140
- *ff_common
127-
- qt5-default
128-
- lcov
129-
- binutils-common # For c++filt
130141

131142
script:
132143
- mkdir -p build; cd build;

CMakeLists.txt

Lines changed: 48 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ For more information, please visit <http://www.openshot.org/>.
4040
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules")
4141

4242
################ PROJECT VERSION ####################
43-
set(PROJECT_VERSION_FULL "0.2.3-dev1")
44-
set(PROJECT_SO_VERSION 17)
43+
set(PROJECT_VERSION_FULL "0.2.5-dev2")
44+
set(PROJECT_SO_VERSION 19)
4545

4646
# Remove the dash and anything following, to get the #.#.# version for project()
4747
STRING(REGEX REPLACE "\-.*$" "" VERSION_NUM "${PROJECT_VERSION_FULL}")
@@ -73,16 +73,37 @@ include(FeatureSummary)
7373
# Optional build settings for libopenshot
7474
option(USE_SYSTEM_JSONCPP "Use system installed JsonCpp, if found" ON)
7575
option(DISABLE_BUNDLED_JSONCPP "Don't fall back to bundled JsonCpp" OFF)
76-
option(DISABLE_TESTS "Don't build unit tests" OFF)
7776
option(ENABLE_IWYU "Enable 'Include What You Use' scanner (CMake 3.3+)" OFF)
78-
option(ENABLE_COVERAGE "Enable coverage reporting" OFF)
77+
option(ENABLE_TESTS "Build unit tests (requires UnitTest++)" ON)
78+
option(ENABLE_DOCS "Build API documentation (requires Doxygen)" ON)
79+
80+
# Legacy commandline override
81+
if (DISABLE_TESTS)
82+
if(ENABLE_COVERAGE)
83+
message(WARNING "ENABLE_COVERAGE requires tests, overriding DISABLE_TESTS")
84+
set(ENABLE_TESTS ON)
85+
else()
86+
set(ENABLE_TESTS OFF)
87+
endif()
88+
endif()
89+
90+
if(DEFINED ENABLE_TESTS)
91+
set(ENABLE_TESTS ${ENABLE_TESTS} CACHE BOOL "Build unit tests (requires UnitTest++)" FORCE)
92+
endif()
7993

8094
########## Configure Version.h header ##############
8195
configure_file(include/OpenShotVersion.h.in include/OpenShotVersion.h @ONLY)
8296
# We'll want that installed later
8397
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/include/OpenShotVersion.h
8498
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libopenshot)
8599

100+
#### Work around a GCC < 9 bug with handling of _Pragma() in macros
101+
#### See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55578
102+
if ((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") AND
103+
(${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS "9.0.0"))
104+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -no-integrated-cpp")
105+
endif()
106+
86107
#### Enable C++11 (for std::shared_ptr support)
87108
set(CMAKE_CXX_STANDARD 11)
88109
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -108,7 +129,7 @@ if (ENABLE_COVERAGE)
108129
message(STATUS "Coverage enabled, setting build type to Debug")
109130
endif()
110131
include(CodeCoverage)
111-
APPEND_COVERAGE_COMPILER_FLAGS()
132+
append_coverage_compiler_flags()
112133
endif()
113134
add_feature_info("Coverage" ENABLE_COVERAGE "analyze test coverage and generate report")
114135

@@ -117,27 +138,33 @@ add_subdirectory(src)
117138

118139
################### DOCUMENTATION ###################
119140
# Find Doxygen (used for documentation)
120-
include(cmake/Modules/UseDoxygen.cmake)
121-
122-
# Doxygen was found
123-
if (TARGET doc)
124-
message(STATUS "Doxygen found, documentation target enabled")
125-
message("\nTo compile documentation in doc/html, run: 'make doc'")
126-
127-
# Install docs, if the user builds them with `make doc`
128-
install(CODE "MESSAGE(\"Checking for documentation files to install...\")")
129-
install(CODE "MESSAGE(\"(Compile with 'make doc' command, requires Doxygen)\")")
130-
131-
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc/html/
132-
DESTINATION ${CMAKE_INSTALL_DOCDIR}/API
133-
MESSAGE_NEVER # Don't spew about file copies
134-
OPTIONAL ) # No error if the docs aren't found
141+
set(DOCS_ENABLED FALSE) # Only set true if Doxygen is found and configured
142+
if (ENABLE_DOCS)
143+
include(cmake/Modules/UseDoxygen.cmake)
144+
145+
# Doxygen was found
146+
if (TARGET doc)
147+
message(STATUS "Doxygen found, documentation target enabled")
148+
set(DOCS_ENABLED TRUE)
149+
150+
# Install docs, if the user builds them with `make doc`
151+
install(CODE "MESSAGE(\"Checking for documentation files to install...\")")
152+
install(CODE "MESSAGE(\"(Compile with 'make doc' command, requires Doxygen)\")")
153+
154+
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc/html/
155+
DESTINATION ${CMAKE_INSTALL_DOCDIR}/API
156+
MESSAGE_NEVER # Don't spew about file copies
157+
OPTIONAL ) # No error if the docs aren't found
158+
endif()
135159
endif()
160+
add_feature_info("Documentation" DOCS_ENABLED "Build API documentation with 'make doc'")
136161

137162
############# PROCESS tests/ DIRECTORY ##############
138-
if(NOT DISABLE_TESTS)
163+
if(ENABLE_TESTS)
164+
set(TESTS_ENABLED TRUE) # May be overridden by tests/CMakeLists.txt
139165
add_subdirectory(tests)
140166
endif()
167+
add_feature_info("Unit tests" TESTS_ENABLED "Compile unit tests for library functions")
141168

142169
############## COVERAGE REPORTING #################
143170
if (ENABLE_COVERAGE)

0 commit comments

Comments
 (0)