From 965de9df5bdd1597858d533128b7091128ab9358 Mon Sep 17 00:00:00 2001 From: "FeRD (Frank Dana)" Date: Sat, 3 Oct 2020 20:23:42 -0400 Subject: [PATCH 1/2] Add ENABLE_MAGICK CMake option (default ON) --- CMakeLists.txt | 1 + src/CMakeLists.txt | 48 +++++++++++++++++++------------------ tests/CMakeLists.txt | 57 ++++++++++++++++++++++---------------------- 3 files changed, 55 insertions(+), 51 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 94b09879b..77aede7d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,6 +77,7 @@ 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) +option(ENABLE_MAGICK "Use ImageMagick, if available" ON) # Legacy commandline override if (DISABLE_TESTS) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index dec7c8535..04121c225 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -65,29 +65,31 @@ 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} ) -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) - -# 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 ) - list(APPEND CMAKE_SWIG_FLAGS "-DUSE_IMAGEMAGICK=1") - - set(HAVE_IMAGEMAGICK TRUE CACHE BOOL "Building with ImageMagick support" FORCE) - mark_as_advanced(HAVE_IMAGEMAGICK) +if(ENABLE_MAGICK) + 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) + + # 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 ) + list(APPEND CMAKE_SWIG_FLAGS "-DUSE_IMAGEMAGICK=1") + + set(HAVE_IMAGEMAGICK TRUE CACHE BOOL "Building with ImageMagick support" FORCE) + mark_as_advanced(HAVE_IMAGEMAGICK) + endif() endif() ################# LIBOPENSHOT-AUDIO ################### diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 3d0dd2d48..78d4ae972 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -58,35 +58,36 @@ set_package_properties(UnitTest++ PROPERTIES PURPOSE "Unit testing framework") ################ 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() - add_definitions( -DMAGICKCORE_QUANTUM_DEPTH=16 ) -endif() - -if(MAGICKCORE_HDRI_ENABLE) - add_definitions( -DMAGICKCORE_HDRI_ENABLE=${MAGICKCORE_HDRI_ENABLE} ) -else() - add_definitions( -DMAGICKCORE_HDRI_ENABLE=0 ) +if(ENABLE_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() + add_definitions( -DMAGICKCORE_QUANTUM_DEPTH=16 ) + endif() + + if(MAGICKCORE_HDRI_ENABLE) + add_definitions( -DMAGICKCORE_HDRI_ENABLE=${MAGICKCORE_HDRI_ENABLE} ) + else() + add_definitions( -DMAGICKCORE_HDRI_ENABLE=0 ) + endif() + + if(OPENSHOT_IMAGEMAGICK_COMPATIBILITY) + add_definitions( -DOPENSHOT_IMAGEMAGICK_COMPATIBILITY=${OPENSHOT_IMAGEMAGICK_COMPATIBILITY} ) + else() + add_definitions( -DOPENSHOT_IMAGEMAGICK_COMPATIBILITY=0 ) + endif() + + # 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 ) + endif() endif() - -if(OPENSHOT_IMAGEMAGICK_COMPATIBILITY) - add_definitions( -DOPENSHOT_IMAGEMAGICK_COMPATIBILITY=${OPENSHOT_IMAGEMAGICK_COMPATIBILITY} ) -else() - add_definitions( -DOPENSHOT_IMAGEMAGICK_COMPATIBILITY=0 ) -endif() - -# 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 ) -endif() - ################# LIBOPENSHOT-AUDIO ################### # Find JUCE-based openshot Audio libraries find_package(OpenShotAudio 0.2.0 REQUIRED) From 172c3c0e0f1623297137c88bc23112805f0c0256 Mon Sep 17 00:00:00 2001 From: "FeRD (Frank Dana)" Date: Sat, 3 Oct 2020 20:24:13 -0400 Subject: [PATCH 2/2] CMake: Switch default build type to Release --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 77aede7d8..38abe4f30 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -130,9 +130,9 @@ add_feature_info("Coverage" ENABLE_COVERAGE "analyze test coverage and generate # -DDEBUG for debug builds. We'll do this for all OSes, even # though only MacOS requires it. set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG") -# Make sure we've picked some build type, default to debug +# Make sure we've picked some build type, default to release if(NOT DEFINED CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "") - set(CMAKE_BUILD_TYPE "Debug") + set(CMAKE_BUILD_TYPE "Release") endif() ############## PROCESS src/ DIRECTORIES ##############