diff --git a/BUILD.md b/BUILD.md index 95cec0a..07388a6 100644 --- a/BUILD.md +++ b/BUILD.md @@ -10,6 +10,10 @@ The presence of optional libraries on the system will trigger compilation of ext + [Cairo](http://cairographics.org) required for cairo- filters and mixers +## Optional build flags + + + `-DWITHOUT_FACERECOGNITION=ON` - Disable face recognition plugins (facedetect and facebl0r) to avoid protobuf conflicts with applications like MLT + It is recommended to use a separate `build` sub-folder. ``` @@ -18,6 +22,13 @@ cd build && cmake ../ make ``` +To disable face recognition plugins (recommended when using with MLT): +``` +mkdir -p build +cd build && cmake -DWITHOUT_FACERECOGNITION=ON ../ +make +``` + Also ninja and nmake are supported through cmake: ``` cmake -G 'Ninja' ../ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3787ac4..9bb5b8c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,8 @@ set (VERSION 2.5.1) include(GNUInstallDirs) option (WITHOUT_OPENCV "Disable plugins dependent upon OpenCV" OFF) +option (WITHOUT_FACERECOGNITION "Disable facedetect plugin to avoid protobuf conflicts" OFF) + if (NOT WITHOUT_OPENCV) find_package (OpenCV) endif () diff --git a/src/filter/facebl0r/CMakeLists.txt b/src/filter/facebl0r/CMakeLists.txt index 0cba89d..ca05a2a 100644 --- a/src/filter/facebl0r/CMakeLists.txt +++ b/src/filter/facebl0r/CMakeLists.txt @@ -1,13 +1,19 @@ -set (SOURCES facebl0r.cpp) -set (TARGET facebl0r) +# facebl0r filter - requires OpenCV (and protobuf) +# This filter can cause conflicts with applications that also use protobuf +# such as MLT, so it can be disabled with -DWITHOUT_FACERECOGNITION=ON -if (MSVC) - set (SOURCES ${SOURCES} ${FREI0R_DEF}) -endif (MSVC) +if (OpenCV_FOUND AND NOT WITHOUT_FACERECOGNITION) + set (SOURCES facebl0r.cpp) + set (TARGET facebl0r) -include_directories(${OpenCV_INCLUDE_DIRS}) -add_library (${TARGET} MODULE ${SOURCES}) -set_target_properties (${TARGET} PROPERTIES PREFIX "") -target_link_libraries(${TARGET} ${OpenCV_LIBS}) + if (MSVC) + set (SOURCES ${SOURCES} ${FREI0R_DEF}) + endif (MSVC) -install (TARGETS ${TARGET} LIBRARY DESTINATION ${LIBDIR}) + include_directories(${OpenCV_INCLUDE_DIRS}) + add_library (${TARGET} MODULE ${SOURCES}) + set_target_properties (${TARGET} PROPERTIES PREFIX "") + target_link_libraries(${TARGET} ${OpenCV_LIBS}) + + install (TARGETS ${TARGET} LIBRARY DESTINATION ${LIBDIR}) +endif() diff --git a/src/filter/facedetect/CMakeLists.txt b/src/filter/facedetect/CMakeLists.txt index b9ea1cd..ea17fcb 100644 --- a/src/filter/facedetect/CMakeLists.txt +++ b/src/filter/facedetect/CMakeLists.txt @@ -1,13 +1,19 @@ -set (SOURCES facedetect.cpp) -set (TARGET facedetect) +# facedetect filter - requires OpenCV (and protobuf) +# This filter can cause conflicts with applications that also use protobuf +# such as MLT, so it can be disabled with -DWITHOUT_FACERECOGNITION=ON -if (MSVC) - set (SOURCES ${SOURCES} ${FREI0R_DEF}) -endif (MSVC) +if (OpenCV_FOUND AND NOT WITHOUT_FACERECOGNITION) + set (SOURCES facedetect.cpp) + set (TARGET facedetect) -include_directories(${OpenCV_INCLUDE_DIRS}) -add_library (${TARGET} MODULE ${SOURCES}) -set_target_properties (${TARGET} PROPERTIES PREFIX "") -target_link_libraries(${TARGET} ${OpenCV_LIBS}) + if (MSVC) + set (SOURCES ${SOURCES} ${FREI0R_DEF}) + endif (MSVC) -install (TARGETS ${TARGET} LIBRARY DESTINATION ${LIBDIR}) + include_directories(${OpenCV_INCLUDE_DIRS}) + add_library (${TARGET} MODULE ${SOURCES}) + set_target_properties (${TARGET} PROPERTIES PREFIX "") + target_link_libraries(${TARGET} ${OpenCV_LIBS}) + + install (TARGETS ${TARGET} LIBRARY DESTINATION ${LIBDIR}) +endif()