Skip to content

Commit 8af624f

Browse files
committed
Add an APPIMAGE_BUILD option to libopenshot
- Defaults OFF, must be enabled during build generation - Set (cmake -DAPPIMAGE_BUILD=1) by GitLab linux builder - Stored as a symbol in the library (via OpenShotVersion.h #defines) - Also visible in Python module (`if openshot.APPIMAGE_BUILD: pass`) Also, use CMAKE_SWIG_FLAGS properly (as a list), fix some indentation
1 parent 07fef5b commit 8af624f

File tree

5 files changed

+42
-41
lines changed

5 files changed

+42
-41
lines changed

.gitlab-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ linux-builder:
1616
- unzip artifacts.zip
1717
- export LIBOPENSHOT_AUDIO_DIR=$CI_PROJECT_DIR/build/install-x64
1818
- mkdir -p build; cd build;
19-
- cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -D"CMAKE_INSTALL_PREFIX:PATH=$CI_PROJECT_DIR/build/install-x64" -D"PYTHON_MODULE_PATH=python" -D"RUBY_MODULE_PATH=ruby" -DCMAKE_BUILD_TYPE:STRING=Release -DUSE_SYSTEM_JSONCPP=0 ../
19+
- cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -D"CMAKE_INSTALL_PREFIX:PATH=$CI_PROJECT_DIR/build/install-x64" -D"PYTHON_MODULE_PATH=python" -D"RUBY_MODULE_PATH=ruby" -DCMAKE_BUILD_TYPE:STRING=Release -DAPPIMAGE_BUILD=1 -DUSE_SYSTEM_JSONCPP=0 ../
2020
- make
2121
- make install
2222
- make doc

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ option(DISABLE_BUNDLED_JSONCPP "Don't fall back to bundled JsonCpp" OFF)
7676
option(ENABLE_IWYU "Enable 'Include What You Use' scanner (CMake 3.3+)" OFF)
7777
option(ENABLE_TESTS "Build unit tests (requires UnitTest++)" ON)
7878
option(ENABLE_DOCS "Build API documentation (requires Doxygen)" ON)
79+
option(APPIMAGE_BUILD "Build to install in an AppImage (Linux only)" OFF)
7980

8081
# Legacy commandline override
8182
if (DISABLE_TESTS)

include/OpenShotVersion.h.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
#cmakedefine AVUTIL_VERSION_STR "@AVUTIL_VERSION_STR@"
5050
#cmakedefine01 HAVE_IMAGEMAGICK
5151
#cmakedefine01 HAVE_RESVG
52+
#cmakedefine01 APPIMAGE_BUILD
5253

5354
#include <sstream>
5455

src/CMakeLists.txt

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ include(GNUInstallDirs)
3333
# Set some compiler options for Windows
3434
# required for libopenshot-audio headers
3535
if (WIN32)
36-
add_definitions( -DIGNORE_JUCE_HYPOT=1 )
37-
set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -include cmath")
36+
add_definitions( -DIGNORE_JUCE_HYPOT=1 )
37+
set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -include cmath")
3838
endif()
3939

4040
if (APPLE)
@@ -50,28 +50,28 @@ endif()
5050
################ IMAGE MAGICK ##################
5151
# Set the Quantum Depth that ImageMagick was built with (default to 16 bits)
5252
IF (MAGICKCORE_QUANTUM_DEPTH)
53-
add_definitions( -DMAGICKCORE_QUANTUM_DEPTH=${MAGICKCORE_QUANTUM_DEPTH} )
53+
add_definitions( -DMAGICKCORE_QUANTUM_DEPTH=${MAGICKCORE_QUANTUM_DEPTH} )
5454
ELSE (MAGICKCORE_QUANTUM_DEPTH)
55-
add_definitions( -DMAGICKCORE_QUANTUM_DEPTH=16 )
55+
add_definitions( -DMAGICKCORE_QUANTUM_DEPTH=16 )
5656
ENDIF (MAGICKCORE_QUANTUM_DEPTH)
5757
IF (MAGICKCORE_HDRI_ENABLE)
58-
add_definitions( -DMAGICKCORE_HDRI_ENABLE=${MAGICKCORE_HDRI_ENABLE} )
58+
add_definitions( -DMAGICKCORE_HDRI_ENABLE=${MAGICKCORE_HDRI_ENABLE} )
5959
ELSE (MAGICKCORE_HDRI_ENABLE)
60-
add_definitions( -DMAGICKCORE_HDRI_ENABLE=0 )
60+
add_definitions( -DMAGICKCORE_HDRI_ENABLE=0 )
6161
ENDIF (MAGICKCORE_HDRI_ENABLE)
6262

6363
# Find the ImageMagick++ library
6464
find_package(ImageMagick COMPONENTS Magick++ MagickWand MagickCore)
6565
if (ImageMagick_FOUND)
66-
# Include ImageMagick++ headers (needed for compile)
67-
include_directories(${ImageMagick_INCLUDE_DIRS})
66+
# Include ImageMagick++ headers (needed for compile)
67+
include_directories(${ImageMagick_INCLUDE_DIRS})
6868

69-
# define a global var (used in the C++)
70-
add_definitions( -DUSE_IMAGEMAGICK=1 )
71-
set(CMAKE_SWIG_FLAGS "-DUSE_IMAGEMAGICK=1")
69+
# define a global var (used in the C++)
70+
add_definitions( -DUSE_IMAGEMAGICK=1 )
71+
list(APPEND CMAKE_SWIG_FLAGS "-DUSE_IMAGEMAGICK=1")
7272

73-
set(HAVE_IMAGEMAGICK TRUE CACHE BOOL "Building with ImageMagick support" FORCE)
74-
mark_as_advanced(HAVE_IMAGEMAGICK)
73+
set(HAVE_IMAGEMAGICK TRUE CACHE BOOL "Building with ImageMagick support" FORCE)
74+
mark_as_advanced(HAVE_IMAGEMAGICK)
7575
endif()
7676

7777
################# LIBOPENSHOT-AUDIO ###################
@@ -85,15 +85,15 @@ include_directories(${LIBOPENSHOT_AUDIO_INCLUDE_DIRS})
8585
# Find BlackMagic DeckLinkAPI libraries
8686
if (ENABLE_BLACKMAGIC)
8787

88-
find_package(BlackMagic)
88+
find_package(BlackMagic)
8989

90-
if (BLACKMAGIC_FOUND)
91-
# Include Blackmagic headers (needed for compile)
92-
include_directories(${BLACKMAGIC_INCLUDE_DIR})
90+
if (BLACKMAGIC_FOUND)
91+
# Include Blackmagic headers (needed for compile)
92+
include_directories(${BLACKMAGIC_INCLUDE_DIR})
9393

94-
# define a global var (used in the C++)
95-
add_definitions( -DUSE_BLACKMAGIC=1 )
96-
set(CMAKE_SWIG_FLAGS "-DUSE_BLACKMAGIC=1")
94+
# define a global var (used in the C++)
95+
add_definitions( -DUSE_BLACKMAGIC=1 )
96+
list(APPEND CMAKE_SWIG_FLAGS "-DUSE_BLACKMAGIC=1")
9797
endif()
9898

9999
endif()
@@ -148,7 +148,7 @@ set(OPENSHOT_SOURCES
148148
Fraction.cpp
149149
Frame.cpp
150150
FrameMapper.cpp
151-
Json.cpp
151+
Json.cpp
152152
KeyFrame.cpp
153153
OpenShotVersion.cpp
154154
ZmqLogger.cpp
@@ -216,7 +216,7 @@ set_target_properties(openshot PROPERTIES
216216

217217
# Add optional ImageMagic-dependent sources
218218
if(ImageMagick_FOUND)
219-
target_sources(openshot PRIVATE
219+
target_sources(openshot PRIVATE
220220
ImageReader.cpp
221221
ImageWriter.cpp
222222
TextReader.cpp)
@@ -245,7 +245,7 @@ target_include_directories(openshot
245245
################### JSONCPP #####################
246246
# Include jsoncpp headers (needed for JSON parsing)
247247
if (USE_SYSTEM_JSONCPP)
248-
message(STATUS "Looking for system jsoncpp")
248+
message(STATUS "Looking for system jsoncpp")
249249
# Either an installed config or our find module will
250250
# create the IMPORTED target jsoncpp_lib if successful
251251
find_package(jsoncpp)
@@ -344,7 +344,7 @@ find_package(cppzmq QUIET) # Creates cppzmq target
344344

345345
# Link ZeroMQ library
346346
if (TARGET libzmq)
347-
target_link_libraries(openshot PUBLIC libzmq)
347+
target_link_libraries(openshot PUBLIC libzmq)
348348
endif()
349349
# Include cppzmq headers, if not bundled into libzmq
350350
if (TARGET cppzmq)
@@ -361,15 +361,15 @@ if(DEFINED ENV{RESVGDIR} AND NOT DEFINED RESVG_ROOT)
361361
endif()
362362

363363
# Find resvg library (used for rendering svg files)
364-
FIND_PACKAGE(RESVG)
364+
find_package(RESVG)
365365

366366
# Include resvg headers (optional SVG library)
367367
if (TARGET RESVG::resvg)
368368
#include_directories(${RESVG_INCLUDE_DIRS})
369369
target_link_libraries(openshot PUBLIC RESVG::resvg)
370370

371371
target_compile_definitions(openshot PUBLIC "-DUSE_RESVG=1")
372-
set(CMAKE_SWIG_FLAGS "-DUSE_RESVG=1")
372+
list(APPEND CMAKE_SWIG_FLAGS "-DUSE_RESVG=1")
373373

374374
set(HAVE_RESVG TRUE CACHE BOOL "Building with Resvg support" FORCE)
375375
mark_as_advanced(HAVE_RESVG)
@@ -379,7 +379,7 @@ endif()
379379
############### LINK LIBRARY #################
380380
# Link remaining dependency libraries
381381
target_link_libraries(openshot PUBLIC
382-
${LIBOPENSHOT_AUDIO_LIBRARIES}
382+
${LIBOPENSHOT_AUDIO_LIBRARIES}
383383
${PROFILER})
384384

385385
if(ImageMagick_FOUND)
@@ -391,8 +391,8 @@ if(BLACKMAGIC_FOUND)
391391
endif()
392392

393393
if(WIN32)
394-
# Required for exception handling on Windows
395-
target_link_libraries(openshot PUBLIC "imagehlp" "dbghelp" )
394+
# Required for exception handling on Windows
395+
target_link_libraries(openshot PUBLIC "imagehlp" "dbghelp" )
396396
endif()
397397

398398

@@ -401,9 +401,9 @@ endif()
401401
add_executable(openshot-example examples/Example.cpp)
402402

403403
# Define path to test input files
404-
SET(TEST_MEDIA_PATH "${PROJECT_SOURCE_DIR}/src/examples/")
404+
set(TEST_MEDIA_PATH "${PROJECT_SOURCE_DIR}/src/examples/")
405405
if (WIN32)
406-
STRING(REPLACE "/" "\\\\" TEST_MEDIA_PATH TEST_MEDIA_PATH)
406+
string(REPLACE "/" "\\\\" TEST_MEDIA_PATH TEST_MEDIA_PATH)
407407
endif()
408408
target_compile_definitions(openshot-example PRIVATE
409409
-DTEST_MEDIA_PATH="${TEST_MEDIA_PATH}" )
@@ -423,12 +423,12 @@ target_link_libraries(openshot-player openshot)
423423

424424
############### TEST BLACKMAGIC CAPTURE APP ################
425425
if (BLACKMAGIC_FOUND)
426-
# Create test executable
427-
add_executable(openshot-blackmagic
428-
examples/ExampleBlackmagic.cpp)
426+
# Create test executable
427+
add_executable(openshot-blackmagic
428+
examples/ExampleBlackmagic.cpp)
429429

430-
# Link test executable to the new library
431-
target_link_libraries(openshot-blackmagic openshot)
430+
# Link test executable to the new library
431+
target_link_libraries(openshot-blackmagic openshot)
432432
endif()
433433

434434
############### INCLUDE SWIG BINDINGS ################
@@ -448,13 +448,13 @@ install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/
448448

449449
############### CPACK PACKAGING ##############
450450
if(MINGW)
451-
set(CPACK_GENERATOR "NSIS")
451+
set(CPACK_GENERATOR "NSIS")
452452
endif()
453453
if(UNIX AND NOT APPLE)
454-
set(CPACK_GENERATOR "DEB")
454+
set(CPACK_GENERATOR "DEB")
455455
endif()
456456
#if(UNIX AND APPLE)
457-
# set(CPACK_GENERATOR "DragNDrop")
457+
# set(CPACK_GENERATOR "DragNDrop")
458458
#endif()
459459
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Jonathan Thomas") #required
460460

tests/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ if(ImageMagick_FOUND)
8080

8181
# define a global var (used in the C++)
8282
add_definitions( -DUSE_IMAGEMAGICK=1 )
83-
set(CMAKE_SWIG_FLAGS "-DUSE_IMAGEMAGICK=1")
8483
endif()
8584

8685
################# LIBOPENSHOT-AUDIO ###################

0 commit comments

Comments
 (0)