- Fix VERSION. - Make plugins that depend upon cairo optional. - Add logic so extra plugins can build without installing base components. --- CMakeLists.txt.orig 2025-09-03 14:34:34 UTC +++ CMakeLists.txt @@ -3,16 +3,21 @@ project (frei0r) list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) project (frei0r) -set (VERSION 1.8) +set (VERSION 2.4.0) include(GNUInstallDirs) +option (BUILD_EXTRA_PLUGINS "Build plugins with optional dependencies" ON) + option (WITHOUT_OPENCV "Disable plugins dependent upon OpenCV" OFF) if (NOT WITHOUT_OPENCV) 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) @@ -35,17 +40,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 ()