### Manual Saxon6 Setup for Documentation Source: https://github.com/darktable-org/darktable/wiki/Build-instructions-for-Manjaro Provides manual steps to set up the `saxon6` dependency, which is required for building documentation but may not install correctly from AUR. This involves creating symbolic links and a script. ```bash cd /usr/share/java sudo ln -s /usr/share/java/saxon6/saxon.jar sudo ln -s /usr/share/java/saxon6/saxon-xml-apis.jar echo '#!/bin/sh' | sudo tee /usr/local/bin/saxon-xslt echo '' | sudo tee -a /usr/local/bin/saxon-xslt echo 'exec java -classpath /usr/share/java/saxon.jar com.icl.saxon.StyleSheet "@0"' | sudo tee -a /usr/local/bin/saxon-xslt sudo chmod a+x /usr/local/bin/saxon-xslt ``` -------------------------------- ### Build and Install Lua in One Step Source: https://github.com/darktable-org/darktable/blob/master/src/external/lua/doc/readme.html Combine building and installation by running 'make all install' or 'make xxx install', where 'xxx' is the specific platform name. ```bash make all install ``` ```bash make xxx install ``` -------------------------------- ### Install NSIS for Installer Building Source: https://github.com/darktable-org/darktable/blob/master/packaging/windows/README.md Install the Nullsoft Scriptable Install System (NSIS) for building the installer image. This is currently for x64 only. ```bash pacman -S --needed mingw-w64-ucrt-x86_64-nsis ``` -------------------------------- ### Easy Build and Install Darktable Source: https://github.com/darktable-org/darktable/blob/master/README.md Use the provided script for a simplified build and installation process. Specify installation prefix, build type, and installation options. ```bash ./build.sh --prefix /opt/darktable --build-type Release --install --sudo ``` -------------------------------- ### Build and Install Darktable (Easy Way) Source: https://github.com/darktable-org/darktable/blob/master/packaging/windows/README.md Build and install darktable using the provided build script. This installs to /opt/darktable. ```bash ./build.sh --prefix /opt/darktable --build-type Release --build-generator Ninja --install ``` -------------------------------- ### Install Lua System-Wide Source: https://github.com/darktable-org/darktable/blob/master/src/external/lua/doc/readme.html Use 'make install' to install Lua in the system's default locations. This may require administrator privileges, hence 'sudo make install' might be necessary. ```bash make install ``` ```bash sudo make install ``` -------------------------------- ### Build and Install Darktable (Manual Steps) Source: https://github.com/darktable-org/darktable/blob/master/packaging/windows/README.md Manually build and install darktable using CMake. This installs to /opt/darktable. ```bash cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/darktable -S . -B build cmake --build build cmake --install build ``` -------------------------------- ### Install Web Gallery Assets Source: https://github.com/darktable-org/darktable/blob/master/data/CMakeLists.txt Finds web gallery style files and installs them. ```cmake FILE(GLOB WEB_FILES "style/*") install(FILES ${WEB_FILES} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/darktable/style COMPONENT DTApplication) ``` -------------------------------- ### Install Darktable Source: https://github.com/darktable-org/darktable/wiki/Build-Instructions-for-Fedora Install the compiled darktable application to the specified installation prefix. ```bash sudo cmake --build obj --target install ``` -------------------------------- ### Install LaTeX Book Template Files Source: https://github.com/darktable-org/darktable/blob/master/data/CMakeLists.txt Finds and installs LaTeX book template support files. ```cmake FILE(GLOB WEB_FILES "latex/*") install(FILES ${WEB_FILES} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/darktable/latex COMPONENT DTApplication) ``` -------------------------------- ### Install Lua Locally to a Custom Directory Source: https://github.com/darktable-org/darktable/blob/master/src/external/lua/doc/readme.html To install Lua locally in a directory other than the default 'install', use 'make install INSTALL_TOP=xxx', where 'xxx' is the desired path. ```bash make install INSTALL_TOP=xxx ``` -------------------------------- ### Build and Install Darktable Source: https://github.com/darktable-org/darktable/blob/master/doc/README.md Execute these commands in the terminal to build and install darktable. Ensure you are in the darktable source directory before running the build script. Use 'sudo make install' if installing to a system-wide location. ```bash $ ./build.sh --prefix /usr --buildtype Release $ cd build && make install (or sudo make install) $ darktable ``` -------------------------------- ### Build Installer Image Source: https://github.com/darktable-org/darktable/blob/master/packaging/windows/README.md Build the installer image for darktable. This creates an installer in the current build directory (x64 only). ```bash cmake --build build --target package ``` -------------------------------- ### Install Lua Locally Source: https://github.com/darktable-org/darktable/blob/master/src/external/lua/doc/readme.html Execute 'make local' to install Lua into a local 'install' directory within the project, containing subdirectories for binaries, headers, and libraries. ```bash make local ``` -------------------------------- ### Install LibRaw Documentation Files Source: https://github.com/darktable-org/darktable/blob/master/src/external/LibRaw-cmake/CMakeLists.txt Installs documentation files such as COPYRIGHT and LICENSE. These are typically installed to a system documentation directory. ```cmake # Install doc data files. if(NOT MSVC) install(FILES ${LIBRAW_PATH}/COPYRIGHT ${LIBRAW_PATH}/LICENSE.CDDL ${LIBRAW_PATH}/LICENSE.LGPL ${LIBRAW_PATH}/Changelog.txt DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT main ) endif() ``` -------------------------------- ### Install Prerequisites using apt Source: https://github.com/darktable-org/darktable/wiki/Build-instructions-for-Ubuntu Installs essential packages required for building Darktable. Ensure your package list is up-to-date before running. ```bash sed -e '/^#\sdeb-src /s/^# *//;t;d' "/etc/apt/sources.list" \ | sudo tee /etc/apt/sources.list.d/darktable-sources-tmp.list > /dev/null \ && ( sudo apt-get update \ && sudo apt-get build-dep darktable \ ); sudo rm /etc/apt/sources.list.d/darktable-sources-tmp.list ``` ```bash sudo apt install cmake llvm clang clang-tools intltool xsltproc libsaxon-java libxml2-utils libimage-exiftool-perl zlib1g-dev libpugixml-dev libjpeg-dev libglib2.0-dev libgtk-3-dev libxml2-dev libsqlite3-dev librsvg2-dev libcurl4-openssl-dev libtiff-dev liblcms2-dev libjson-glib-dev libexiv2-dev ``` ```bash sudo apt install libgphoto2-dev liblensfun-dev libgmic-dev libcolord-dev libcolord-gtk-dev libgraphicsmagick1-dev liblua5.4-dev libedit-dev libimath-dev libavif-dev libportmidi-dev libopenjp2-7-dev libsecret-1-dev libsdl2-dev libopenexr-dev libosmgpsmap-1.0-dev libcups2-dev ``` -------------------------------- ### Install MSYS2 Toolchain and Git Source: https://github.com/darktable-org/darktable/blob/master/packaging/windows/README.md Install the necessary toolchain, developer tools, and git for building on MSYS2. ```bash pacman -S --needed base-devel git intltool po4a pacman -S --needed mingw-w64-ucrt-x86_64-{cc,cmake,gcc-libs,ninja,omp} ``` -------------------------------- ### Install Darktable Dependencies Source: https://github.com/darktable-org/darktable/blob/master/packaging/windows/README.md Install the required and recommended dependencies for building darktable. ```bash pacman -S --needed mingw-w64-ucrt-x86_64-{libxslt,python-jsonschema,curl,drmingw,exiv2,gettext,gmic,graphicsmagick,gtk3,icu,imath,iso-codes,lcms2,lensfun,libavif,libarchive,libgphoto2,libheif,libjpeg-turbo,libjxl,libpng,libraw,librsvg,libsecret,libtiff,libwebp,libxml2,lua54,openexr,openjpeg2,osm-gps-map,portmidi,potrace,pugixml,SDL2,sqlite3,webp-pixbuf-loader,zlib} ``` -------------------------------- ### Install Java and Documentation Tools (Gentoo) Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Installs necessary Java Development Kit and documentation utilities for darktable on Gentoo. ```bash emerge --ask virtual/jdk app-text/gnome-doc-utils dev-java/fop media-gfx/imagemagick app-text/docbook-xml-dtd app-text/docbook-xsl-stylesheets ``` -------------------------------- ### Install Minimal Dependencies on openSUSE Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Installs the essential packages required for building darktable on openSUSE. ```bash sudo zypper install cmake make gcc gcc-c++ intltool libxslt-tools gtk3-devel libxml2-devel libxml2-tools lensfun-devel librsvg-devel sqlite3-devel libcurl-devel libjpeg8-devel libtiff-devel liblcms2-devel json-glib-devel libexiv2-devel pugixml-devel ``` -------------------------------- ### Install Homebrew Dependencies Source: https://github.com/darktable-org/darktable/blob/master/packaging/macosx/BUILD_hb.txt Installs necessary packages for building darktable using Homebrew. Ensure Homebrew is installed first. ```bash 1_install_hb_dependencies.sh ``` -------------------------------- ### Installing Desktop Entry File in CMake Source: https://github.com/darktable-org/darktable/blob/master/data/CMakeLists.txt Installs the generated desktop entry file to the appropriate system directory for application launchers. ```cmake install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.darktable.darktable.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications COMPONENT DTApplication) ``` -------------------------------- ### Install PhotoSwipe Directory Source: https://github.com/darktable-org/darktable/blob/master/data/CMakeLists.txt Installs the PhotoSwipe (pswp) directory to the application data root. ```cmake install(DIRECTORY "pswp" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/darktable COMPONENT DTApplication) ``` -------------------------------- ### Build Darktable Without Installation Source: https://github.com/darktable-org/darktable/wiki/Getting-started Build darktable but skip the installation step. Useful for testing or when a custom installation path is desired. ```bash $ scbi --deps --update --no-install c-darktable ``` -------------------------------- ### Install Documentation Build Dependencies Source: https://github.com/darktable-org/darktable/wiki/Build-instructions-for-Manjaro Installs packages necessary for building Darktable's user manual and documentation. Some packages may require installation from the AUR using `yay`. ```bash sudo pacman -S --needed jdk11-openjdk fop imagemagick extra/docbook-xml extra/docbook-xsl perl-pod-parser yay yay -S --needed gnome-doc-utils saxon6 saxon-he docbook-xsl-saxon sudo pacman -S --needed po4a #if you want to build translated man pages ``` -------------------------------- ### Install Documentation Tools (Manjaro Linux) Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Installs documentation utilities required for darktable on Manjaro Linux. ```bash sudo pacman -S gnome-doc-utils fop docbook-xml docbook-xsl ``` -------------------------------- ### Install Minimal Dependencies (Gentoo) Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Installs the essential packages required for building darktable on Gentoo using emerge. ```bash emerge --ask dev-util/cmake dev-util/intltool dev-libs/libxslt x11-libs/gtk+ dev-libs/libxml2 media-libs/lensfun gnome-base/librsvg dev-db/sqlite net-misc/curl media-libs/libjpeg-turbo media-libs/tiff media-libs/lcms dev-libs/json-glib media-gfx/exiv2 dev-libs/pugixml ``` -------------------------------- ### Build and Install osm-gps-map from Source (Gentoo) Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Installs osm-gps-map from source when the Gentoo repository version is too old. Includes setting PKG_CONFIG_PATH. ```bash emerge --ask dev-libs/gobject-introspection x11-libs/cairo gnome-base/gnome-common dev-util/gtk-doc git clone git://github.com/nzjrs/osm-gps-map cd osm-gps-map ./autogen.sh make su make install export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH echo 'export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH' >> ~/.bash_profile ``` -------------------------------- ### Build Darktable with Custom Installation Path Source: https://github.com/darktable-org/darktable/wiki/Getting-started Build darktable and specify a custom installation directory using the --prefix option. ```bash $ scbi --prefix=/some/other/path --deps --update c-darktable ``` -------------------------------- ### Install Build Dependencies on openSUSE Source: https://github.com/darktable-org/darktable/wiki/Build-Instructions-for-Fedora Install the necessary build dependencies for darktable on openSUSE using zypper. ```bash sudo zypper si -d darktable ``` -------------------------------- ### Install and Set Oracle Java (Manjaro Linux) Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Installs Oracle Java from AUR and sets it as the default JDK using archlinux-java. ```bash sudo yaourt jdk archlinux-java status sudo archlinux-java set java-11-jdk ``` -------------------------------- ### Install Minimal Dependencies (Manjaro Linux) Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Installs the essential packages for building darktable on Manjaro Linux using pacman. ```bash sudo pacman -S cmake intltool libcurl-gnutls intltool llvm6 llvm6-libs clang ``` -------------------------------- ### Install Minimal Dependencies on Fedora Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Installs the essential packages required for building darktable on Fedora. ```bash sudo dnf install gcc-c++ cmake make perl intltool libxslt zlib-devel gtk3-devel libxml2-devel sqlite-devel librsvg2-devel libcurl-devel libjpeg-turbo-devel libtiff-devel lcms2-devel json-glib-devel exiv2-devel pugixml-devel ``` -------------------------------- ### Install po4a for Translated Man Pages (Gentoo) Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Installs the po4a package, which is used for translating man pages. ```bash emerge --ask app-text/po4a ``` -------------------------------- ### Install Minimal Dependencies on Ubuntu 20.04/20.10 Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Installs the essential packages required for building darktable on Ubuntu 20.04 and 20.10. ```bash sudo apt-get install gcc g++ cmake intltool xsltproc libgtk-3-dev libxml2-utils libxml2-dev liblensfun-dev librsvg2-dev libsqlite3-dev libcurl4-gnutls-dev libjpeg-dev libtiff5-dev liblcms2-dev libjson-glib-dev libexiv2-dev libpugixml-dev ``` -------------------------------- ### Open Translation File with Poedit Source: https://github.com/darktable-org/darktable/wiki/Translating-darktable Open the language-specific .po translation file using Poedit GUI to start translating strings. Ensure Poedit is installed. ```bash $ poedit CODE.po ``` -------------------------------- ### Start Darktable with Custom Schema and Data Directories Source: https://github.com/darktable-org/darktable/blob/master/packaging/macosx/BUILD-ARM64.txt Launches the darktable application, specifying custom directories for GLib schemas and XDG data. This is typically used after a custom installation. ```bash GSETTINGS_SCHEMA_DIR=/opt/local/share/glib-2.0/schemas/ XDG_DATA_DIRS=/opt/local/share darktable ``` -------------------------------- ### Install SCBI Tool Source: https://github.com/darktable-org/darktable/wiki/Getting-started Clone the SCBI repository, navigate into it, and run 'make' to install the tool. This adds a binary to $HOME/bin and plugins to ~/.config/scbi. ```bash $ git clone https://github.com/TurboGit/scbi $ cd scbi $ make ``` -------------------------------- ### Lua Stack Indexing Example Source: https://github.com/darktable-org/darktable/blob/master/src/external/lua/doc/manual.html Illustrates how to refer to elements on the Lua stack using indices. Positive indices start from 1 at the bottom, while negative indices count from -1 at the top. ```c /* Positive indices start at 1 (bottom of stack) */ /* Negative indices start at -1 (top of stack) */ ``` -------------------------------- ### Get introductory message for new users Source: https://github.com/darktable-org/darktable/wiki/Darktable-IRC This command provides a brief introduction for new users, including links to important resources. ```irc !newbie ``` -------------------------------- ### Install Lua System Scripts Source: https://github.com/darktable-org/darktable/blob/master/data/CMakeLists.txt Copies and installs Lua system scripts and configuration files if Lua support is enabled. ```cmake if(USE_LUA) # # lua system scripts # FILE(COPY lua luarc DESTINATION "${DARKTABLE_DATADIR}") install(DIRECTORY "lua" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/darktable COMPONENT DTApplication) install(FILES luarc DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/darktable COMPONENT DTApplication) endif(USE_LUA) ``` -------------------------------- ### Build Generic Installer Package Source: https://github.com/darktable-org/darktable/blob/master/packaging/windows/README.md Configure CMake to build a generic installer package that can run on different hardware and Windows versions. ```bash cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/darktable -DBINARY_PACKAGE_BUILD=ON -S . -B build ``` -------------------------------- ### Build and Install Darktable with CMake Source: https://github.com/darktable-org/darktable/wiki/Home Standard commands to configure, build, and install darktable using CMake. Ensure you are in the build directory. ```bash cmake .. make && sudo make install ``` -------------------------------- ### Include Directories and Definitions Source: https://github.com/darktable-org/darktable/blob/master/src/libs/CMakeLists.txt Sets up include directories and preprocessor definitions for the project. This is typically done at the beginning of a CMakeLists.txt file to configure the build environment. ```cmake include_directories("${DARKTABLE_BINDIR}/") include(manage-symbol-visibility) add_definitions(-include common/module_api.h) add_definitions(-include libs/lib_api.h) ``` -------------------------------- ### Example Path for Lua Module Loading Source: https://github.com/darktable-org/darktable/blob/master/src/external/lua/doc/manual.html Demonstrates the path format for searching Lua modules. It includes templates for different file extensions and directory structures. ```lua "./?.lua;./?.lc;/usr/local/?/init.lua" ``` -------------------------------- ### Install Plugin Pixmaps Source: https://github.com/darktable-org/darktable/blob/master/data/pixmaps/CMakeLists.txt Installs pixmaps for darkroom plugins. This ensures that plugin-specific graphics are correctly placed in the installation directory. The `DTApplication` component is used for installation. ```cmake FILE(GLOB DARKROOM_PLUGIN_PIXMAPS "plugins/darkroom/*.png" "plugins/darkroom/*.svg") install(FILES ${DARKROOM_PLUGIN_PIXMAPS} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/darktable/pixmaps/plugins/darkroom COMPONENT DTApplication) # Need to copy to have themes, icons, etc all in one path like after installing file(COPY ${DARKROOM_PLUGIN_PIXMAPS} DESTINATION ${DARKTABLE_DATADIR}/pixmaps/plugins/darkroom) ``` -------------------------------- ### Example C Path for Module Loading Source: https://github.com/darktable-org/darktable/blob/master/src/external/lua/doc/manual.html Illustrates the format of the C path used by package.searchpath for loading C libraries. It specifies directories and file extensions to search. ```lua "./?.so;./?.dll;/usr/local/?/init.so" ``` -------------------------------- ### Install Darktable Source: https://github.com/darktable-org/darktable/blob/master/packaging/macosx/BUILD.txt Install the compiled darktable application into the system using the CMake install command. ```shell sudo cmake --install . ``` -------------------------------- ### Install Documentation Files (CMake) Source: https://github.com/darktable-org/darktable/blob/master/doc/CMakeLists.txt Configures the installation of AUTHORS and LICENSE files. The destination path varies based on the operating system to ensure proper placement. ```cmake set(DOC_FILES ../AUTHORS ../LICENSE) if ((NOT WIN32) OR BUILD_MSYS2_INSTALL) install(FILES ${DOC_FILES} DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT DTDocuments) add_subdirectory(man) else() # Windows doesn't have a standardized location for apps doc subfolders like Linux does, # so we put the doc files in the root of installation folder for better visibility. # install(FILES ${DOC_FILES} DESTINATION ${CMAKE_INSTALL_BINDIR}/.. COMPONENT DTDocuments) endif() ``` -------------------------------- ### Build and Install openjpeg 1.x from Source (Gentoo) Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Installs openjpeg version 1.x from source when the Gentoo repository version is 2.1.0. Includes setting up pkgconfig path. ```bash git clone https://github.com/uclouvain/openjpeg.git cd openjpeg git tag # find latest 1.x tag git checkout version.1.5.2 # latest tag from previous line cmake . make su mkdir /usr/local/share/pkgconfig/ make install ``` -------------------------------- ### Build for Windows on Arm (WoA) Source: https://github.com/darktable-org/darktable/blob/master/packaging/windows/README.md Instructions for Windows on Arm (WoA) users. Use the CLANGARM64 environment and the appropriate package prefix. Note that building the installer image is not currently possible. ```bash # For WoA: # pacman -S --needed mingw-w64-clang-aarch64-{clang,llvm-openmp} # Build within the CLANGARM64 environment. ``` -------------------------------- ### Install Usermanual Dependencies on openSUSE Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Installs Java development kit and documentation tools required for building the user manual on openSUSE using zypper. ```bash sudo zypper install java-1_8_0-openjdk-devel gnome-doc-utils saxon6-scripts saxon6-fop imagemagick docbook_4 docbook-xsl-stylesheets ``` -------------------------------- ### Set default installation component Source: https://github.com/darktable-org/darktable/blob/master/CMakeLists.txt Sets the default component name for installation to 'DTApplication'. This ensures external modules install correctly. ```cmake set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME DTApplication) ``` -------------------------------- ### Install lua-scripts Source: https://github.com/darktable-org/darktable/blob/master/src/external/CMakeLists.txt Conditionally installs lua-scripts to the application data directory if the USE_LUA flag is enabled. It excludes Git-related files and directories from the installation. ```cmake if(USE_LUA) # # lua system scripts # FILE(COPY lua-scripts DESTINATION "${DARKTABLE_DATADIR}") install(DIRECTORY "lua-scripts" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/darktable COMPONENT DTApplication PATTERN "lua-scripts/.git/*" EXCLUDE PATTERN "lua-scripts/.git" EXCLUDE PATTERN "lua-scripts/.gitignore" EXCLUDE ) endif(USE_LUA) ``` -------------------------------- ### Build Darktable Documentation Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Run this script after the main build to compile all documentation. ```bash ./build-doc.sh ``` -------------------------------- ### Install Test Version of Darktable Source: https://github.com/darktable-org/darktable/blob/master/README.md Install a test version of darktable to a separate prefix, allowing it to coexist with a stable installation. Requires sudo privileges. ```bash ./build.sh --prefix /opt/darktable-test --build-type Release --install --sudo ``` -------------------------------- ### Install Darktable Dependencies with MacPorts Source: https://github.com/darktable-org/darktable/blob/master/packaging/macosx/BUILD-ARM64.txt Installs necessary libraries for darktable using MacPorts. Ensure MacPorts is installed and configured with the specified variants before running. ```bash sudo port install exiv2 libgphoto2 gtk-osx-application-gtk3 lensfun librsvg openexr json-glib GraphicsMagick openjpeg webp libsecret pugixml osm-gps-map adwaita-icon-theme intltool iso-codes libomp gmic-lib libheif portmidi libsdl2 libavif libjxl potrace ``` -------------------------------- ### Install ONNX Runtime GPU (Linux) Source: https://github.com/darktable-org/darktable/blob/master/tools/ai/README.md Execute the local install script for ONNX Runtime GPU on Linux. Use the --help flag to see all available options. ```bash ./tools/ai/install-ort-gpu.sh --help ./tools/ai/install-ort-gpu.sh ``` -------------------------------- ### Install Other Pixmaps Source: https://github.com/darktable-org/darktable/blob/master/data/pixmaps/CMakeLists.txt Installs general pixmaps, including JPG, PNG, and SVG files, to the main pixmaps directory. This is part of the `DTApplication` component installation. ```cmake FILE(GLOB OTHER_PIXMAPS "*.jpg" "*.png" "*.svg") install(FILES ${OTHER_PIXMAPS} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/darktable/pixmaps COMPONENT DTApplication) # Need to copy to have themes, icons, etc all in one path like after installing file(COPY ${OTHER_PIXMAPS} DESTINATION ${DARKTABLE_DATADIR}/pixmaps) ``` -------------------------------- ### Display SCBI Help Source: https://github.com/darktable-org/darktable/wiki/Getting-started Use this command to display the help information for the SCBI tool, showing available options and usage. ```bash $ scbi --help ``` -------------------------------- ### Example Verification Output Source: https://github.com/darktable-org/darktable/blob/master/tools/ai/README.md An example of the expected output when verifying AI and ONNX Runtime loading, showing the loaded ORT version, execution provider (e.g., CUDA), and successful GPU detection. ```text [darktable_ai] loaded ORT 1.24.4 from '/home/user/.local/lib/onnxruntime-cuda/libonnxruntime.so.1.24.4' [darktable_ai] execution provider: CUDA [darktable_ai] NVIDIA CUDA enabled successfully on device 0: NVIDIA GeForce RTX 4090 ``` -------------------------------- ### Install FindLibRaw CMake Module Source: https://github.com/darktable-org/darktable/blob/master/src/external/LibRaw-cmake/CMakeLists.txt Installs the FindLibRaw.cmake module. This module is used by client applications to locate and use the LibRaw library when it's installed on the system. ```cmake # Install find cmake script to the system for client applications. install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/FindLibRaw.cmake DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/libraw) ``` -------------------------------- ### Installing GDB Command File in CMake Source: https://github.com/darktable-org/darktable/blob/master/data/CMakeLists.txt Installs a GDB command file to the installation directory. This file likely contains helper commands for debugging darktable with GDB. ```cmake FILE(COPY gdb_commands DESTINATION "${DARKTABLE_DATADIR}") install(FILES gdb_commands DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/darktable COMPONENT DTApplication) ``` -------------------------------- ### Install Optional Dependencies on openSUSE Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Installs optional development libraries for various features like image processing, RAW file handling, and GUI elements on openSUSE using zypper. ```bash sudo zypper install libgphoto2-devel openexr-devel libwebp-devel libflickcurl-devel openjpeg-devel libsecret-devel GraphicsMagick-devel libcolord-devel libcolord-gtk-devel cups-devel libSDL-devel libSDL_image-devel libosmgpsmap-devel ``` -------------------------------- ### Install LibRaw Package Configuration Files Source: https://github.com/darktable-org/darktable/blob/master/src/external/LibRaw-cmake/CMakeLists.txt Installs the CMake package configuration files for LibRaw. These files are used by client applications to find and use the installed LibRaw library. ```cmake include(CMakePackageConfigHelpers) write_basic_package_version_file( cmake/${PROJECT_NAME}ConfigVersion.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion) configure_package_config_file( cmake/${PROJECT_NAME}Config.cmake.in cmake/${PROJECT_NAME}Config.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/) install(EXPORT ${PROJECT_NAME}Targets NAMESPACE libraw:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/) ``` -------------------------------- ### Install ONNX Runtime with OpenVINO on Linux Source: https://github.com/darktable-org/darktable/blob/master/tools/ai/README.md Installs the ONNX Runtime with OpenVINO support on Linux. It extracts the wheel and copies the necessary ONNX Runtime, OpenVINO, and TBB shared libraries, along with license files, to the target directory. ```bash unzip -q onnxruntime_openvino-*.whl -d wheel/ dst=~/.local/lib/onnxruntime-openvino mkdir -p "$dst" cp wheel/onnxruntime/capi/libonnxruntime*.so* "$dst"/ cp wheel/onnxruntime/capi/libopenvino*.so* "$dst"/ cp wheel/onnxruntime/capi/libtbb*.so* "$dst"/ cp wheel/onnxruntime/LICENSE "$dst"/ cp wheel/onnxruntime/ThirdPartyNotices.txt "$dst"/ ``` -------------------------------- ### Windows Installation Logic for Darktable Source: https://github.com/darktable-org/darktable/blob/master/packaging/CMakeLists.txt This CMake code block handles Windows-specific installation logic, differentiating between MSYS2 environments and others. It sets up installation directories and executable paths. ```cmake if(WIN32 AND NOT BUILD_MSYS2_INSTALL) set(plugin_dest_dir lib/darktable/plugins) set(APPS "${CMAKE_INSTALL_PREFIX}/bin/darktable.exe") # paths to executables get_filename_component(MINGW_PATH ${CMAKE_CXX_COMPILER} PATH) find_program(cygcheck_BIN cygcheck) if(CMAKE_SYSTEM_PROCESSOR MATCHES "ARM64" OR ${cygcheck_BIN} STREQUAL "cygcheck_BIN-NOTFOUND") # use the slower fixup_bundle set(DIRS ${MINGW_PATH}) # directories to search for prerequisites # run Bundle utilities install( CODE " file(GLOB_RECURSE DTPLUGINS \"${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/*${CMAKE_SHARED_LIBRARY_SUFFIX}\") list(APPEND DTPLUGINS \"${CMAKE_INSTALL_PREFIX}/bin/libdarktable.dll\") include(\"${CMAKE_ROOT}/Modules/BundleUtilities.cmake\") set(gp_tool \"objdump\") fixup_bundle(\"${APPS}\" \"${DTPLUGINS}\" \"${DIRS}\") " COMPONENT DTApplication) else() # use the fast cygcheck variant and pray that no dependencies are missed string(REPLACE "/" "\\\\") DIRS "${MINGW_PATH}") # add lots of escaping install( CODE " set(EXTRA_DEPS) function(process_file filename) execute_process(COMMAND \"${cygcheck_BIN}\" \"${filename}\" OUTPUT_VARIABLE FILES ERROR_QUIET) string(REGEX MATCHALL \"${DIRS}[^\n\r]*[dD][lL][lL]\") FILES_LIST \"${FILES}") set(EXTRA_DEPS ${EXTRA_DEPS} ${FILES_LIST} PARENT_SCOPE) endfunction() file(GLOB_RECURSE DTPLUGINS \"${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/*${CMAKE_SHARED_LIBRARY_SUFFIX}\") list(APPEND DTPLUGINS \"${CMAKE_INSTALL_PREFIX}/bin/libdarktable.dll\") process_file(\"${APPS}\") foreach(filename IN LISTS DTPLUGINS) process_file(\"${filename}\") endforeach() if(EXTRA_DEPS) list(REMOVE_DUPLICATES EXTRA_DEPS) endif() # install(...) doesn't work in here, and file(INSTALL ...) doesn't put anything into installers, # so we have to go over the list of files and do it manually foreach(filename IN LISTS EXTRA_DEPS) execute_process(COMMAND ${CMAKE_COMMAND} -E copy \"${filename}\" \"${CMAKE_INSTALL_PREFIX}/bin/\" ) endforeach() " COMPONENT DTApplication) endif() endif() ``` -------------------------------- ### Install ONNX Runtime with OpenVINO on Windows Source: https://github.com/darktable-org/darktable/blob/master/tools/ai/README.md Installs ONNX Runtime with OpenVINO support on Windows. This requires extracting two separate wheels (onnxruntime-openvino and openvino runtime) and copying the respective DLLs and license files to the designated local directory. ```powershell Expand-Archive .\onnxruntime_openvino-*.whl -DestinationPath ort\ Expand-Archive .\openvino-*-win_amd64.whl -DestinationPath rt\ $dst = "$env:LOCALAPPDATA\onnxruntime-openvino" New-Item -ItemType Directory $dst -Force | Out-Null Copy-Item ort\onnxruntime\capi\onnxruntime*.dll $dst Copy-Item rt\openvino\libs\*.dll $dst Copy-Item ort\onnxruntime\LICENSE, ort\onnxruntime\ThirdPartyNotices.txt $dst ``` -------------------------------- ### Installing OpenCL Kernel Source Files Source: https://github.com/darktable-org/darktable/blob/master/data/kernels/CMakeLists.txt Installs the discovered OpenCL kernel source files to the specified destination directory within the Darktable installation path, as part of the 'DTApplication' component. ```cmake install(FILES ${DT_OPENCL_KERNELS} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/darktable/kernels COMPONENT DTApplication) # Need to copy to have kernels all in one path like after installing file(COPY ${DT_OPENCL_KERNELS} DESTINATION ${DARKTABLE_DATADIR}/kernels) ``` -------------------------------- ### Install Optional Dependencies for Darktable Source: https://github.com/darktable-org/darktable/wiki/Build-instructions-for-Mint Installs recommended optional packages for a full darktable experience. Note that GMIC and LIBAVIF may require manual installation due to version constraints. ```bash sudo apt-get install libgphoto2-dev libsoup2.4-dev libopenexr-dev libwebp-dev libopenjp2-7-dev libsecret-1-dev libgraphicsmagick1-dev libcolord-dev libcolord-gtk-dev libcups2-dev libosmgpsmap-1.0-dev libopenjp2-7-dev python3-jsonschema llvm-11-dev clang libimage-exiftool-perl liblua5.3-dev libsaxon-java openjdk-14-jre imagemagick fop po4a clang-tools-11 ``` -------------------------------- ### Download and Prepare Pango Portfile Source: https://github.com/darktable-org/darktable/blob/master/packaging/macosx/BUILD.txt Create a directory for Pango files and download the specific Portfile and patch to use Pango version 1.52.2, which is required due to recent compatibility issues. ```shell mkdir -p ~/ports/devel/x11/pango/files curl -Lo ~/ports/x11/pango/Portfile https://github.com/macports/macports-ports/raw/26241fac142ac2bbe2a9071918ff20b301c66f4b/x11/pango/Portfile curl -Lo ~/ports/x11/pango/files/patch-meson-examples-tests.diff https://github.com/macports/macports-ports/raw/26241fac142ac2bbe2a9071918ff20b301c66f4b/x11/pango/files/patch-meson-examples-tests.diff portindex ~/ports ``` -------------------------------- ### Install ONNX Runtime GPU (Windows) Source: https://github.com/darktable-org/darktable/blob/master/tools/ai/README.md Execute the local install script for ONNX Runtime GPU on Windows using PowerShell. Use the -Help flag to see all available options. ```powershell ./tools/ai/install-ort-gpu.ps1 -Help ./tools/ai/install-ort-gpu.ps1 ``` -------------------------------- ### Run Darktable Source: https://github.com/darktable-org/darktable/wiki/Build-instructions-for-Mint Executes the installed darktable application from its default installation path. ```bash /opt/darktable/bin/darktable ``` -------------------------------- ### Install darktable-chart Executable Source: https://github.com/darktable-org/darktable/blob/master/src/chart/CMakeLists.txt Installs the darktable-chart executable to the binary directory with the DTApplication component. ```cmake install(TARGETS darktable-chart DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT DTApplication) ``` -------------------------------- ### Install Usermanual Dependencies on Debian/Ubuntu Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Installs Java development kit and documentation tools for building the user manual on Debian/Ubuntu using apt-get. ```bash apt-get install default-jdk gnome-doc-utils libsaxon-java fop imagemagick docbook-xml docbook-xsl ``` -------------------------------- ### Install Darktable Plugins with Platform-Specific Debug Info Source: https://github.com/darktable-org/darktable/blob/master/src/libs/CMakeLists.txt Iterates through modules to install Darktable plugins. On Windows, it detaches debug information. For other platforms, it sets the INSTALL_RPATH. Finally, it installs the target to the specified library directory. ```cmake foreach(module ${MODULES}) if(WIN32) _detach_debuginfo (${module} ${CMAKE_INSTALL_LIBDIR}/darktable/plugins/lighttable) else() set_target_properties(${module} PROPERTIES INSTALL_RPATH ${RPATH_ORIGIN}/../..) endif() install(TARGETS ${module} DESTINATION ${CMAKE_INSTALL_LIBDIR}/darktable/plugins/lighttable COMPONENT DTApplication) endforeach(module) ``` -------------------------------- ### Install Darktable Executable Source: https://github.com/darktable-org/darktable/blob/master/src/CMakeLists.txt Installs the darktable executable to the binary directory. This is part of the DTApplication component. ```cmake install(TARGETS darktable DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT DTApplication) ``` -------------------------------- ### Install Usermanual Dependencies on Linux Mint 18 Source: https://github.com/darktable-org/darktable/wiki/Building-darktable Installs Java development kit and documentation tools for building the user manual on Linux Mint 18 using apt-get. ```bash sudo apt-get install default-jdk gnome-doc-utils libsaxon-java fop imagemagick docbook-xml docbook-xsl ```