You've already forked libopenshot
mirror of
https://github.com/OpenShot/libopenshot.git
synced 2026-03-02 08:53:52 -08:00
189 lines
6.9 KiB
CMake
189 lines
6.9 KiB
CMake
##################### tests/CMakeLists.txt (libopenshot) ######################
|
|
# @brief CMake build file for libopenshot (used to generate makefiles)
|
|
# @author Jonathan Thomas <jonathan@openshot.org>
|
|
#
|
|
# @section LICENSE
|
|
#
|
|
# Copyright (c) 2008-2014 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
|
|
# world. For more information visit <http://www.openshot.org/>.
|
|
#
|
|
# 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/>.
|
|
################################################################################
|
|
|
|
|
|
################ WINDOWS ##################
|
|
# Set some compiler options for Windows
|
|
# required for libopenshot-audio headers
|
|
IF (WIN32)
|
|
STRING(REPLACE "/" "\\\\" TEST_MEDIA_PATH "${openshot_SOURCE_DIR}/src/examples/")
|
|
add_definitions( -DIGNORE_JUCE_HYPOT=1 -DTEST_MEDIA_PATH="${TEST_MEDIA_PATH}" )
|
|
SET(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -include cmath -std=c++0x")
|
|
ENDIF(WIN32)
|
|
|
|
################### UNITTEST++ #####################
|
|
# Find UnitTest++ libraries (used for unit testing)
|
|
FIND_PACKAGE(UnitTest++ REQUIRED)
|
|
|
|
# Include UnitTest++ headers (needed for compile)
|
|
include_directories(${UNITTEST++_INCLUDE_DIR})
|
|
|
|
################ 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} )
|
|
ELSE (MAGICKCORE_QUANTUM_DEPTH)
|
|
add_definitions( -DMAGICKCORE_QUANTUM_DEPTH=16 )
|
|
ENDIF (MAGICKCORE_QUANTUM_DEPTH)
|
|
IF (MAGICKCORE_HDRI_ENABLE)
|
|
add_definitions( -DMAGICKCORE_HDRI_ENABLE=${MAGICKCORE_HDRI_ENABLE} )
|
|
ELSE (MAGICKCORE_HDRI_ENABLE)
|
|
add_definitions( -DMAGICKCORE_HDRI_ENABLE=0 )
|
|
ENDIF (MAGICKCORE_HDRI_ENABLE)
|
|
IF (OPENSHOT_IMAGEMAGICK_COMPATIBILITY)
|
|
add_definitions( -DOPENSHOT_IMAGEMAGICK_COMPATIBILITY=${OPENSHOT_IMAGEMAGICK_COMPATIBILITY} )
|
|
ELSE (OPENSHOT_IMAGEMAGICK_COMPATIBILITY)
|
|
add_definitions( -DOPENSHOT_IMAGEMAGICK_COMPATIBILITY=0 )
|
|
ENDIF (OPENSHOT_IMAGEMAGICK_COMPATIBILITY)
|
|
|
|
# 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})
|
|
|
|
# define a global var (used in the C++)
|
|
add_definitions( -DUSE_IMAGEMAGICK=1 )
|
|
SET(CMAKE_SWIG_FLAGS "-DUSE_IMAGEMAGICK=1")
|
|
|
|
ENDIF (ImageMagick_FOUND)
|
|
|
|
################### FFMPEG #####################
|
|
# Find FFmpeg libraries (used for video encoding / decoding)
|
|
FIND_PACKAGE(FFmpeg REQUIRED)
|
|
|
|
# Include FFmpeg headers (needed for compile)
|
|
include_directories(${FFMPEG_INCLUDE_DIR})
|
|
|
|
################# LIBOPENSHOT-AUDIO ###################
|
|
# Find JUCE-based openshot Audio libraries
|
|
FIND_PACKAGE(OpenShotAudio REQUIRED)
|
|
|
|
# Include Juce headers (needed for compile)
|
|
include_directories(${LIBOPENSHOT_AUDIO_INCLUDE_DIRS})
|
|
|
|
################# QT5 ###################
|
|
# Find QT5 libraries
|
|
find_package(Qt5Widgets REQUIRED)
|
|
find_package(Qt5Core REQUIRED)
|
|
find_package(Qt5Gui REQUIRED)
|
|
find_package(Qt5Multimedia REQUIRED)
|
|
find_package(Qt5MultimediaWidgets REQUIRED)
|
|
|
|
# Include Qt headers (needed for compile)
|
|
include_directories(${Qt5Widgets_INCLUDE_DIRS})
|
|
include_directories(${Qt5Core_INCLUDE_DIRS})
|
|
include_directories(${Qt5Gui_INCLUDE_DIRS})
|
|
include_directories(${Qt5Multimedia_INCLUDE_DIRS})
|
|
include_directories(${Qt5MultimediaWidgets_INCLUDE_DIRS})
|
|
|
|
add_definitions(${Qt5Widgets_DEFINITIONS})
|
|
add_definitions(${Qt5Core_DEFINITIONS})
|
|
add_definitions(${Qt5Gui_DEFINITIONS})
|
|
add_definitions(${Qt5Multimedia_DEFINITIONS})
|
|
add_definitions(${Qt5MultimediaWidgets_DEFINITIONS})
|
|
|
|
SET(QT_LIBRARIES ${Qt5Widgets_LIBRARIES}
|
|
${Qt5Core_LIBRARIES}
|
|
${Qt5Gui_LIBRARIES}
|
|
${Qt5Multimedia_LIBRARIES}
|
|
${Qt5MultimediaWidgets_LIBRARIES})
|
|
|
|
# Set compiler flags for Qt
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS} ")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS} ")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Gui_EXECUTABLE_COMPILE_FLAGS} ")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Multimedia_EXECUTABLE_COMPILE_FLAGS} ")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5MultimediaWidgets_EXECUTABLE_COMPILE_FLAGS} ")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -ggdb ")
|
|
|
|
# Manually moc Qt files
|
|
qt5_wrap_cpp(MOC_FILES ${QT_HEADER_FILES})
|
|
|
|
|
|
################# BLACKMAGIC DECKLINK ###################
|
|
IF (ENABLE_BLACKMAGIC)
|
|
# Find BlackMagic DeckLinkAPI libraries
|
|
FIND_PACKAGE(BlackMagic)
|
|
|
|
IF (BLACKMAGIC_FOUND)
|
|
# Include Blackmagic headers (needed for compile)
|
|
include_directories(${BLACKMAGIC_INCLUDE_DIR})
|
|
ENDIF (BLACKMAGIC_FOUND)
|
|
ENDIF (ENABLE_BLACKMAGIC)
|
|
|
|
################### OPENMP #####################
|
|
# Check for OpenMP (used for multi-core processing)
|
|
FIND_PACKAGE(OpenMP)
|
|
|
|
if (OPENMP_FOUND)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS} ")
|
|
endif(OPENMP_FOUND)
|
|
|
|
################### ZEROMQ #####################
|
|
# Find ZeroMQ library (used for socket communication & logging)
|
|
FIND_PACKAGE(ZMQ REQUIRED)
|
|
|
|
# Include FFmpeg headers (needed for compile)
|
|
include_directories(${ZMQ_INCLUDE_DIRS})
|
|
|
|
################### JSONCPP #####################
|
|
# Include jsoncpp headers (needed for JSON parsing)
|
|
include_directories("../thirdparty/jsoncpp/include")
|
|
|
|
############### SET TEST SOURCE FILES #################
|
|
SET ( OPENSHOT_TEST_FILES tests.cpp )
|
|
|
|
IF (NOT DISABLE_TESTS)
|
|
SET ( OPENSHOT_TEST_FILES ${OPENSHOT_TEST_FILES}
|
|
Cache_Tests.cpp
|
|
Clip_Tests.cpp
|
|
Color_Tests.cpp
|
|
Coordinate_Tests.cpp
|
|
ReaderBase_Tests.cpp
|
|
ImageWriter_Tests.cpp
|
|
FFmpegReader_Tests.cpp
|
|
FFmpegWriter_Tests.cpp
|
|
Fraction_Tests.cpp
|
|
FrameMapper_Tests.cpp
|
|
KeyFrame_Tests.cpp
|
|
Point_Tests.cpp
|
|
Timeline_Tests.cpp )
|
|
ENDIF (NOT DISABLE_TESTS)
|
|
|
|
################ TESTER EXECUTABLE #################
|
|
# Create unit test executable (openshot-test)
|
|
add_executable(openshot-test
|
|
tests.cpp
|
|
${OPENSHOT_TEST_FILES} )
|
|
|
|
# Link libraries to the new executable
|
|
target_link_libraries(openshot-test openshot ${UNITTEST++_LIBRARY})
|
|
|
|
|
|
#################### MAKE TEST ######################
|
|
# Hook up the 'make test' target to the 'openshot-test' executable
|
|
ADD_CUSTOM_TARGET(test ${CMAKE_CURRENT_BINARY_DIR}/openshot-test) |