The Extra Cmake Modules package contains extra CMake modules used by KDE Frameworks and other packages.
![[Note]](../images/note.png) 
          Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Download (HTTP): https://download.kde.org/stable/frameworks/6.17/extra-cmake-modules-6.17.0.tar.xz
Download MD5 sum: c6c6e39f1bba551a21401cd5fbba1c1a
Download size: 324 KB
Estimated disk space required: 9.9 MB
Estimated build time: less than 0.1 SBU
sphinx-8.2.3 (for building documentation), PyQt (experimental support for building KDE Python bindings), and ReuseTool (for running internal tests)
First, fix the package to be compatible with the latest Python release:
patch -Np1 -i ../extra-cmake-modules-6.17.0-upstream_fix-1.patch
Install Extra Cmake Modules by running the following commands:
sed -i '/"lib64"/s/64//' kde-modules/KDEInstallDirsCommon.cmake &&
sed -e '/PACKAGE_INIT/i set(SAVE_PACKAGE_PREFIX_DIR "${PACKAGE_PREFIX_DIR}")' \
    -e '/^include/a set(PACKAGE_PREFIX_DIR "${SAVE_PACKAGE_PREFIX_DIR}")' \
    -i ECMConfig.cmake.in &&
mkdir build &&
cd    build &&
cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D BUILD_WITH_QT6=ON         \
      -D DOC_INSTALL_DIR=/usr/share/doc/extra-cmake-modules-6.17.0 \
      .. &&
make
        This package does not come with a test suite.
![[Note]](../images/note.png) 
          Unlike other KF6 packages, this module is installed in /usr because it can be used by some non-KF6 packages.
          Now, as the root user:
        
make install
          sed ...
          Modules/KDEInstallDirs.cmake: This command disables
          applications using cmake from attempting to install files in a
          lib64 sub-directory.
        
          sed ...
          ECMConfig.cmake.in: This command protects the
          global cmake variable PACKAGE_PREFIX_DIR from being changed when checking
          ECM presence: since we install ECM into /usr, the check would set that variable to
          /usr, while most KDE packages expect
          it to be set to /opt/kf6 and would
          fail to build if it is set to something else.
        
          -D
          DOC_INSTALL-DIR=/usr/share/doc/extra...: This switch
          allows installing the documentation (which is built if sphinx-8.2.3 is installed) in a versioned
          directory.