diff --git a/bindings/python/CMakeLists.txt b/bindings/python/CMakeLists.txt index b020592bd..7d5889213 100644 --- a/bindings/python/CMakeLists.txt +++ b/bindings/python/CMakeLists.txt @@ -58,6 +58,26 @@ endif() set_property(SOURCE openshot.i PROPERTY CPLUSPLUS ON) set_property(SOURCE openshot.i PROPERTY SWIG_MODULE_NAME openshot) +# Set the SWIG_FLAGS from the library target, IFF its +# COMPILE_DEFINITIONS property is set (in practice, always true) +if(CMAKE_VERSION VERSION_GREATER 3.15) + set(_defs + $>) +elseif(CMAKE_VERSION VERSION_GREATER 3.12) + set(_defs $) +endif() +if(DEFINED _defs) + set_property(SOURCE openshot.i PROPERTY + COMPILE_DEFINITIONS ${_defs}) +else() + get_property(_defs TARGET openshot PROPERTY COMPILE_DEFINITIONS) + foreach(_d ${_defs}) + list(APPEND _flags -D${_d}) + endforeach() + set_property(SOURCE openshot.i PROPERTY + SWIG_FLAGS ${_flags}) +endif() + ### Suppress a ton of warnings in the generated SWIG C++ code set(SWIG_CXX_FLAGS "-Wno-unused-variable -Wno-unused-function \ -Wno-deprecated-copy -Wno-class-memaccess -Wno-cast-function-type \ @@ -65,13 +85,15 @@ set(SWIG_CXX_FLAGS "-Wno-unused-variable -Wno-unused-function \ separate_arguments(sw_flags UNIX_COMMAND ${SWIG_CXX_FLAGS}) set_property(SOURCE openshot.i PROPERTY GENERATED_COMPILE_OPTIONS ${sw_flags}) -### Take include dirs from target, automatically if possible -if (CMAKE_VERSION VERSION_GREATER 3.13) - set_property(SOURCE openshot.i PROPERTY USE_TARGET_INCLUDE_DIRECTORIES True) -elseif (CMAKE_VERSION VERSION_GREATER 3.12) - set_property(SOURCE openshot.i PROPERTY - INCLUDE_DIRECTORIES $) -endif () +### Take include dirs from target +if(CMAKE_VERSION VERSION_GREATER 3.15) + set(_inc $>) +elseif(CMAKE_VERSION VERSION_GREATER 3.12) + set(_inc $) +endif() +if (DEFINED _inc) + set_property(SOURCE openshot.i PROPERTY INCLUDE_DIRECTORIES ${_inc}) +endif() ### Add the SWIG interface file (which defines all the SWIG methods) if (CMAKE_VERSION VERSION_LESS 3.8.0) diff --git a/bindings/ruby/CMakeLists.txt b/bindings/ruby/CMakeLists.txt index 72d1a9857..b145494bd 100644 --- a/bindings/ruby/CMakeLists.txt +++ b/bindings/ruby/CMakeLists.txt @@ -74,6 +74,26 @@ endif() set_property(SOURCE openshot.i PROPERTY CPLUSPLUS ON) set_property(SOURCE openshot.i PROPERTY SWIG_MODULE_NAME openshot) +# Set the SWIG_FLAGS from the library target, IFF its +# COMPILE_DEFINITIONS property is set (in practice, always true) +if(CMAKE_VERSION VERSION_GREATER 3.15) + set(_defs + $>) +elseif(CMAKE_VERSION VERSION_GREATER 3.12) + set(_defs $) +endif() +if(DEFINED _defs) + set_property(SOURCE openshot.i PROPERTY + COMPILE_DEFINITIONS ${_defs}) +else() + get_property(_defs TARGET openshot PROPERTY COMPILE_DEFINITIONS) + foreach(_d ${_defs}) + list(APPEND _flags -D${_d}) + endforeach() + set_property(SOURCE openshot.i PROPERTY + SWIG_FLAGS ${_flags}) +endif() + ### Suppress a ton of warnings in the generated SWIG C++ code set(SWIG_CXX_FLAGS "-Wno-unused-variable -Wno-unused-function \ -Wno-deprecated-copy -Wno-class-memaccess -Wno-cast-function-type \ @@ -81,13 +101,15 @@ set(SWIG_CXX_FLAGS "-Wno-unused-variable -Wno-unused-function \ separate_arguments(sw_flags UNIX_COMMAND ${SWIG_CXX_FLAGS}) set_property(SOURCE openshot.i PROPERTY GENERATED_COMPILE_OPTIONS ${sw_flags}) -### Take include dirs from target, automatically if possible -if (CMAKE_VERSION VERSION_GREATER 3.13) - set_property(SOURCE openshot.i PROPERTY USE_TARGET_INCLUDE_DIRECTORIES True) -else () - set_property(SOURCE openshot.i PROPERTY - INCLUDE_DIRECTORIES $) -endif () +### Take include dirs from target +if(CMAKE_VERSION VERSION_GREATER 3.15) + set(_inc $>) +elseif(CMAKE_VERSION VERSION_GREATER 3.12) + set(_inc $) +endif() +if (DEFINED _inc) + set_property(SOURCE openshot.i PROPERTY INCLUDE_DIRECTORIES ${_inc}) +endif() ### Add the SWIG interface file (which defines all the SWIG methods) if (CMAKE_VERSION VERSION_LESS 3.8.0) diff --git a/cmake/Modules/FindResvg.cmake b/cmake/Modules/FindResvg.cmake index 452a81c8b..7a03c33ee 100644 --- a/cmake/Modules/FindResvg.cmake +++ b/cmake/Modules/FindResvg.cmake @@ -50,6 +50,7 @@ endif() find_path(Resvg_INCLUDE_DIRS ResvgQt.h PATHS + ${Resvg_ROOT} ${RESVGDIR} ${RESVGDIR}/include $ENV{RESVGDIR} @@ -65,6 +66,7 @@ find_path(Resvg_INCLUDE_DIRS find_library(Resvg_LIBRARIES NAMES resvg PATHS + ${Resvg_ROOT} ${RESVGDIR} ${RESVGDIR}/lib $ENV{RESVGDIR} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6b88e67d6..ee9adf56b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -212,7 +212,6 @@ if(ImageMagick_FOUND) # define a preprocessor macro (used in the C++ source) target_compile_definitions(openshot PUBLIC USE_IMAGEMAGICK=1) - list(APPEND CMAKE_SWIG_FLAGS -DUSE_IMAGEMAGICK=1) # Link with ImageMagick library target_link_libraries(openshot PUBLIC ImageMagick::Magick++) @@ -346,8 +345,7 @@ if (TARGET Resvg::Resvg) #include_directories(${Resvg_INCLUDE_DIRS}) target_link_libraries(openshot PUBLIC Resvg::Resvg) - target_compile_definitions(openshot PUBLIC -DUSE_RESVG=1) - list(APPEND CMAKE_SWIG_FLAGS -DUSE_RESVG=1) + target_compile_definitions(openshot PUBLIC USE_RESVG=1) set(HAVE_RESVG TRUE CACHE BOOL "Building with Resvg support" FORCE) mark_as_advanced(HAVE_RESVG) @@ -373,8 +371,7 @@ if (ENABLE_BLACKMAGIC) target_link_libraries(openshot PUBLIC ${BLACKMAGIC_LIBRARY_DIR}) # define a preprocessor macro (used in the C++) - target_compile_definitions(openshot PUBLIC -DUSE_BLACKMAGIC=1) - list(APPEND CMAKE_SWIG_FLAGS -DUSE_BLACKMAGIC=1) + target_compile_definitions(openshot PUBLIC USE_BLACKMAGIC=1) endif() endif()