Skip to content

Commit

Permalink
Add an APPIMAGE_BUILD option to libopenshot
Browse files Browse the repository at this point in the history
- 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
  • Loading branch information
ferdnyc committed Jun 11, 2020
1 parent 07fef5b commit 8af624f
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 41 deletions.
2 changes: 1 addition & 1 deletion .gitlab-ci.yml
Expand Up @@ -16,7 +16,7 @@ linux-builder:
- unzip artifacts.zip
- export LIBOPENSHOT_AUDIO_DIR=$CI_PROJECT_DIR/build/install-x64
- mkdir -p build; cd build;
- 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 ../
- 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 ../
- make
- make install
- make doc
Expand Down
1 change: 1 addition & 0 deletions CMakeLists.txt
Expand Up @@ -76,6 +76,7 @@ option(DISABLE_BUNDLED_JSONCPP "Don't fall back to bundled JsonCpp" OFF)
option(ENABLE_IWYU "Enable 'Include What You Use' scanner (CMake 3.3+)" OFF)
option(ENABLE_TESTS "Build unit tests (requires UnitTest++)" ON)
option(ENABLE_DOCS "Build API documentation (requires Doxygen)" ON)
option(APPIMAGE_BUILD "Build to install in an AppImage (Linux only)" OFF)

# Legacy commandline override
if (DISABLE_TESTS)
Expand Down
1 change: 1 addition & 0 deletions include/OpenShotVersion.h.in
Expand Up @@ -49,6 +49,7 @@
#cmakedefine AVUTIL_VERSION_STR "@AVUTIL_VERSION_STR@"
#cmakedefine01 HAVE_IMAGEMAGICK
#cmakedefine01 HAVE_RESVG
#cmakedefine01 APPIMAGE_BUILD

#include <sstream>

Expand Down
78 changes: 39 additions & 39 deletions src/CMakeLists.txt
Expand Up @@ -33,8 +33,8 @@ include(GNUInstallDirs)
# Set some compiler options for Windows
# required for libopenshot-audio headers
if (WIN32)
add_definitions( -DIGNORE_JUCE_HYPOT=1 )
set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -include cmath")
add_definitions( -DIGNORE_JUCE_HYPOT=1 )
set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -include cmath")
endif()

if (APPLE)
Expand All @@ -50,28 +50,28 @@ endif()
################ IMAGE MAGICK ##################
# Set the Quantum Depth that ImageMagick was built with (default to 16 bits)
IF (MAGICKCORE_QUANTUM_DEPTH)
add_definitions( -DMAGICKCORE_QUANTUM_DEPTH=${MAGICKCORE_QUANTUM_DEPTH} )
add_definitions( -DMAGICKCORE_QUANTUM_DEPTH=${MAGICKCORE_QUANTUM_DEPTH} )
ELSE (MAGICKCORE_QUANTUM_DEPTH)
add_definitions( -DMAGICKCORE_QUANTUM_DEPTH=16 )
add_definitions( -DMAGICKCORE_QUANTUM_DEPTH=16 )
ENDIF (MAGICKCORE_QUANTUM_DEPTH)
IF (MAGICKCORE_HDRI_ENABLE)
add_definitions( -DMAGICKCORE_HDRI_ENABLE=${MAGICKCORE_HDRI_ENABLE} )
add_definitions( -DMAGICKCORE_HDRI_ENABLE=${MAGICKCORE_HDRI_ENABLE} )
ELSE (MAGICKCORE_HDRI_ENABLE)
add_definitions( -DMAGICKCORE_HDRI_ENABLE=0 )
add_definitions( -DMAGICKCORE_HDRI_ENABLE=0 )
ENDIF (MAGICKCORE_HDRI_ENABLE)

# Find the ImageMagick++ library
find_package(ImageMagick COMPONENTS Magick++ MagickWand MagickCore)
if (ImageMagick_FOUND)
# Include ImageMagick++ headers (needed for compile)
include_directories(${ImageMagick_INCLUDE_DIRS})
# Include ImageMagick++ headers (needed for compile)
include_directories(${ImageMagick_INCLUDE_DIRS})

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

set(HAVE_IMAGEMAGICK TRUE CACHE BOOL "Building with ImageMagick support" FORCE)
mark_as_advanced(HAVE_IMAGEMAGICK)
set(HAVE_IMAGEMAGICK TRUE CACHE BOOL "Building with ImageMagick support" FORCE)
mark_as_advanced(HAVE_IMAGEMAGICK)
endif()

################# LIBOPENSHOT-AUDIO ###################
Expand All @@ -85,15 +85,15 @@ include_directories(${LIBOPENSHOT_AUDIO_INCLUDE_DIRS})
# Find BlackMagic DeckLinkAPI libraries
if (ENABLE_BLACKMAGIC)

find_package(BlackMagic)
find_package(BlackMagic)

if (BLACKMAGIC_FOUND)
# Include Blackmagic headers (needed for compile)
include_directories(${BLACKMAGIC_INCLUDE_DIR})
if (BLACKMAGIC_FOUND)
# Include Blackmagic headers (needed for compile)
include_directories(${BLACKMAGIC_INCLUDE_DIR})

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

endif()
Expand Down Expand Up @@ -148,7 +148,7 @@ set(OPENSHOT_SOURCES
Fraction.cpp
Frame.cpp
FrameMapper.cpp
Json.cpp
Json.cpp
KeyFrame.cpp
OpenShotVersion.cpp
ZmqLogger.cpp
Expand Down Expand Up @@ -216,7 +216,7 @@ set_target_properties(openshot PROPERTIES

# Add optional ImageMagic-dependent sources
if(ImageMagick_FOUND)
target_sources(openshot PRIVATE
target_sources(openshot PRIVATE
ImageReader.cpp
ImageWriter.cpp
TextReader.cpp)
Expand Down Expand Up @@ -245,7 +245,7 @@ target_include_directories(openshot
################### JSONCPP #####################
# Include jsoncpp headers (needed for JSON parsing)
if (USE_SYSTEM_JSONCPP)
message(STATUS "Looking for system jsoncpp")
message(STATUS "Looking for system jsoncpp")
# Either an installed config or our find module will
# create the IMPORTED target jsoncpp_lib if successful
find_package(jsoncpp)
Expand Down Expand Up @@ -344,7 +344,7 @@ find_package(cppzmq QUIET) # Creates cppzmq target

# Link ZeroMQ library
if (TARGET libzmq)
target_link_libraries(openshot PUBLIC libzmq)
target_link_libraries(openshot PUBLIC libzmq)
endif()
# Include cppzmq headers, if not bundled into libzmq
if (TARGET cppzmq)
Expand All @@ -361,15 +361,15 @@ if(DEFINED ENV{RESVGDIR} AND NOT DEFINED RESVG_ROOT)
endif()

# Find resvg library (used for rendering svg files)
FIND_PACKAGE(RESVG)
find_package(RESVG)

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

target_compile_definitions(openshot PUBLIC "-DUSE_RESVG=1")
set(CMAKE_SWIG_FLAGS "-DUSE_RESVG=1")
list(APPEND CMAKE_SWIG_FLAGS "-DUSE_RESVG=1")

set(HAVE_RESVG TRUE CACHE BOOL "Building with Resvg support" FORCE)
mark_as_advanced(HAVE_RESVG)
Expand All @@ -379,7 +379,7 @@ endif()
############### LINK LIBRARY #################
# Link remaining dependency libraries
target_link_libraries(openshot PUBLIC
${LIBOPENSHOT_AUDIO_LIBRARIES}
${LIBOPENSHOT_AUDIO_LIBRARIES}
${PROFILER})

if(ImageMagick_FOUND)
Expand All @@ -391,8 +391,8 @@ if(BLACKMAGIC_FOUND)
endif()

if(WIN32)
# Required for exception handling on Windows
target_link_libraries(openshot PUBLIC "imagehlp" "dbghelp" )
# Required for exception handling on Windows
target_link_libraries(openshot PUBLIC "imagehlp" "dbghelp" )
endif()


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

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

############### TEST BLACKMAGIC CAPTURE APP ################
if (BLACKMAGIC_FOUND)
# Create test executable
add_executable(openshot-blackmagic
examples/ExampleBlackmagic.cpp)
# Create test executable
add_executable(openshot-blackmagic
examples/ExampleBlackmagic.cpp)

# Link test executable to the new library
target_link_libraries(openshot-blackmagic openshot)
# Link test executable to the new library
target_link_libraries(openshot-blackmagic openshot)
endif()

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

############### CPACK PACKAGING ##############
if(MINGW)
set(CPACK_GENERATOR "NSIS")
set(CPACK_GENERATOR "NSIS")
endif()
if(UNIX AND NOT APPLE)
set(CPACK_GENERATOR "DEB")
set(CPACK_GENERATOR "DEB")
endif()
#if(UNIX AND APPLE)
# set(CPACK_GENERATOR "DragNDrop")
# set(CPACK_GENERATOR "DragNDrop")
#endif()
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Jonathan Thomas") #required

Expand Down
1 change: 0 additions & 1 deletion tests/CMakeLists.txt
Expand Up @@ -80,7 +80,6 @@ if(ImageMagick_FOUND)

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

################# LIBOPENSHOT-AUDIO ###################
Expand Down

0 comments on commit 8af624f

Please sign in to comment.