- Fix VERSION. - Make plugins that depend upon cairo optional. - Add logic so extra plugins can build without installing base components. --- CMakeLists.txt.orig 2025-12-02 16:23:47 UTC +++ CMakeLists.txt @@ -7,6 +7,8 @@ include(GNUInstallDirs) include(GNUInstallDirs) +option (BUILD_EXTRA_PLUGINS "Build plugins with optional dependencies" ON) + option (WITHOUT_OPENCV "Disable plugins dependent upon OpenCV" OFF) option (WITHOUT_FACERECOGNITION "Disable facedetect plugin to avoid protobuf conflicts" OFF) @@ -14,7 +16,10 @@ endif () find_package (OpenCV) endif () -find_package (Cairo) +option (WITHOUT_CAIRO "Disable plugins dependent upon cairo" OFF) +if (NOT WITHOUT_CAIRO) + find_package (Cairo) +endif () include(FindPkgConfig) option (WITHOUT_GAVL "Disable plugins dependent upon gavl" OFF) @@ -37,17 +42,24 @@ INCLUDE( cmake/modules/TargetDistclean.cmake OPTIONAL) # --- custom targets: --- INCLUDE( cmake/modules/TargetDistclean.cmake OPTIONAL) -install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +if (NOT BUILD_EXTRA_PLUGINS) + install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) # For code documentation run: doxygen doc/Doxyfile # add_subdirectory (doc) -add_subdirectory (src) + add_subdirectory (src) +else () + add_subdirectory (src/filter) + add_subdirectory (src/mixer2) +endif () # Generate frei0r.pc and install it. set (prefix "${CMAKE_INSTALL_PREFIX}") set (exec_prefix "${CMAKE_INSTALL_PREFIX}") set (libdir "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") set (includedir "${CMAKE_INSTALL_PREFIX}/include") -configure_file ("frei0r.pc.in" "frei0r.pc" @ONLY) -install (FILES "${CMAKE_CURRENT_BINARY_DIR}/frei0r.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") +if (NOT BUILD_EXTRA_PLUGINS) + configure_file ("frei0r.pc.in" "frei0r.pc" @ONLY) + install (FILES "${CMAKE_CURRENT_BINARY_DIR}/frei0r.pc" DESTINATION "libdata/pkgconfig") +endif ()