# SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
# SPDX-FileCopyrightText: 2009 Emmanuel Bouthenot <kolter@openics.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

if(ENABLE_MAN OR ENABLE_DOC)

  # Docs languages
  set(AUTOGEN_LANG de en fr it ja pl sr)
  set(MAN_LANG cs de en fr it ja pl ru sr)
  set(USER_LANG de en fr it ja pl sr)
  set(CHEATSHEET_LANG de en fr it ja pl sr)
  set(PLUGIN_API_LANG en fr it ja sr)
  set(SCRIPTING_LANG de en fr it ja pl sr)
  set(FAQ_LANG de en es fr it ja pl sr)
  set(QUICKSTART_LANG cs de en es fr it ja pl ru sr)
  set(RELAY_API_LANG en fr sr)
  set(RELAY_WEECHAT_LANG en fr ja sr)
  set(DEV_LANG en fr ja sr)

  find_package(Asciidoctor)
  if(ASCIIDOCTOR_FOUND)
    # Asciidoctor embeds the light style automatically; the dark stylesheet
    # is generated below and scoped via @media in docinfo.html.in.
    set(PYGMENTS_LIGHT_STYLE "default")
    set(PYGMENTS_DARK_STYLE "monokai")
    find_program(PYGMENTIZE_EXECUTABLE pygmentize)
    set(PYGMENTS_DARK_CSS "")
    if(PYGMENTIZE_EXECUTABLE)
      execute_process(
        COMMAND "${PYGMENTIZE_EXECUTABLE}" -O "classprefix=tok-" -f html -a "pre.pygments" -S "${PYGMENTS_DARK_STYLE}"
        OUTPUT_VARIABLE PYGMENTS_DARK_CSS
        RESULT_VARIABLE _pygmentize_result
      )
      if(NOT _pygmentize_result EQUAL 0)
        message(WARNING "Failed to generate pygments CSS for dark theme (style: ${PYGMENTS_DARK_STYLE}); doc will be built without dark theme syntax highlighting")
        set(PYGMENTS_DARK_CSS "")
      endif()
    else()
      message(WARNING "pygmentize not found (install python3-pygments); doc will be built without syntax highlighting colors")
    endif()
    configure_file(
      "${CMAKE_CURRENT_SOURCE_DIR}/docinfo.html.in"
      "${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
      @ONLY
    )

    # Common asciidoctor arguments
    set(ASCIIDOCTOR_ARGS
      -v
      -a experimental
      -a reproducible
      -a "prewrap!"
      -a "webfonts!"
      -a revnumber="${VERSION}"
      -a sectanchors
      -a source-highlighter=pygments
      -a pygments-style=${PYGMENTS_LIGHT_STYLE}
      -a docinfodir="${CMAKE_CURRENT_BINARY_DIR}"
      -a autogendir="${CMAKE_CURRENT_BINARY_DIR}/autogen"
    )

    # Asciidoctor arguments for user's guide
    set(ASCIIDOCTOR_USER_ARGS
      -a toc=left
      -a toclevels=3
      -a sectnums
      -a sectnumlevels=2
      -a docinfo1
    )

    # Asciidoctor arguments for cheat sheet
    # (the default stylesheet is replaced by a dedicated one, which displays
    # the keys in columns and is suited for printing)
    set(ASCIIDOCTOR_CHEATSHEET_ARGS
      -a stylesdir="${CMAKE_CURRENT_SOURCE_DIR}"
      -a stylesheet=cheatsheet.css
    )

    # Asciidoctor arguments for plugin API reference
    set(ASCIIDOCTOR_PLUGIN_API_ARGS
      -a toc=left
      -a toclevels=3
      -a sectnums
      -a sectnumlevels=2
      -a docinfo1
    )

    # Asciidoctor arguments for scripting guide
    set(ASCIIDOCTOR_SCRIPTING_ARGS
      -a toc=left
      -a toclevels=3
      -a sectnums
      -a sectnumlevels=2
      -a docinfo1
    )

    # Asciidoctor arguments for FAQ
    set(ASCIIDOCTOR_FAQ_ARGS
      -a toc=left
      -a toclevels=2
      -a sectnums
      -a sectnumlevels=2
      -a docinfo1
    )

    # Asciidoctor arguments for quickstart
    set(ASCIIDOCTOR_QUICKSTART_ARGS
      -a toc=left
      -a toclevels=2
      -a sectnums
      -a sectnumlevels=2
      -a docinfo1
    )

    # Asciidoctor arguments for relay "api"
    set(ASCIIDOCTOR_RELAY_API_ARGS
      -a toc=left
      -a toclevels=3
      -a sectnums
      -a sectnumlevels=2
      -a docinfo1
    )

    # Asciidoctor arguments for relay "weechat"
    set(ASCIIDOCTOR_RELAY_WEECHAT_ARGS
      -a toc=left
      -a toclevels=3
      -a sectnums
      -a sectnumlevels=2
      -a docinfo1
    )

    # Asciidoctor arguments for developer's guide
    set(ASCIIDOCTOR_DEV_ARGS
      -a toc=left
      -a toclevels=3
      -a sectnums
      -a sectnumlevels=2
      -a docinfo1
    )

    if(ENABLE_DOC)
      set(AUTOGEN_FILES "")
      foreach(lang ${AUTOGEN_LANG})
        LIST(APPEND AUTOGEN_FILES
          # Plugin API reference
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_completions.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_config_priority.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_hdata.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_infolists.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_infos.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_infos_hashtable.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_plugins_priority.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_url_options.${lang}.adoc"
          # User's guide
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_commands.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_default_aliases.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_irc_colors.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_options.${lang}.adoc"
          # Scripting guide
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_scripting_functions.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_scripting_constants.${lang}.adoc"
        )
      endforeach()
      add_custom_target(doc-autogen ALL
        COMMAND "${CMAKE_COMMAND}" -E env "WEECHAT_EXTRA_LIBDIR=${PROJECT_BINARY_DIR}/src" "WEECHAT_DOCGEN_LOCALEDIR=${PROJECT_BINARY_DIR}/po" "${CMAKE_BINARY_DIR}/src/gui/curses/headless/weechat-headless" --temp-dir --doc-gen "${CMAKE_CURRENT_BINARY_DIR}/autogen"
        DEPENDS
        # The headless binary is required.
        weechat-headless
        # Translations must be compiled.
        translations
        # All plugins must be loaded during doc generation.
        alias buflist charset exec fifo fset guile irc javascript logger lua perl php python relay ruby script spell tcl trigger typing xfer
        BYPRODUCTS ${AUTOGEN_FILES}
        WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
      )
    endif()

    if(ENABLE_MAN)
      foreach(lang ${MAN_LANG})
        if(${lang} STREQUAL "en")
          set(MANDIR_LANG "${MANDIR}/man1")
        else()
          set(MANDIR_LANG "${MANDIR}/${lang}/man1")
        endif()
        # Man page: weechat
        add_custom_command(
          OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat.${lang}.1"
          COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} -b manpage -o "weechat.${lang}.1" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat.1.${lang}.adoc"
          DEPENDS
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat.1.${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/cmdline_options.${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/man.${lang}.adoc"
          WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
          COMMENT "Building weechat.1 (${lang})"
        )
        add_custom_target(doc-man-weechat-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat.${lang}.1")
        install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat.${lang}.1" DESTINATION "${MANDIR_LANG}" RENAME "weechat.1")
        # Man page: weechat-headless
        if(ENABLE_HEADLESS)
          add_custom_command(
            OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.${lang}.1"
            COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} -b manpage -o "weechat-headless.${lang}.1" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat-headless.1.${lang}.adoc"
            DEPENDS
            "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat-headless.1.${lang}.adoc"
            "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/cmdline_options.${lang}.adoc"
            "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/man.${lang}.adoc"
            WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
            COMMENT "Building weechat-headless.1 (${lang})"
          )
          add_custom_target(doc-man-weechat-headless-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.${lang}.1")
          install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat-headless.${lang}.1" DESTINATION "${MANDIR_LANG}" RENAME "weechat-headless.1")
        endif()
      endforeach()
    endif()

    if(ENABLE_DOC)
      # User's guide
      foreach(lang ${USER_LANG})
        add_custom_command(
          OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_user.${lang}.html"
          COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_USER_ARGS} -o "weechat_user.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_user.${lang}.adoc"
          DEPENDS
          "${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_user.${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/cmdline_options.${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/key_bindings.${lang}.adoc"
          doc-autogen
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_commands.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_default_aliases.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_irc_colors.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_user_options.${lang}.adoc"
          WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
          COMMENT "Building weechat_user.${lang}.html"
        )
        add_custom_target(doc-user-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_user.${lang}.html")
        install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_user.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
      endforeach()
      # Cheat sheet
      foreach(lang ${CHEATSHEET_LANG})
        add_custom_command(
          OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_cheatsheet.${lang}.html"
          COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_CHEATSHEET_ARGS} -o "weechat_cheatsheet.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_cheatsheet.${lang}.adoc"
          DEPENDS
          "${CMAKE_CURRENT_SOURCE_DIR}/cheatsheet.css"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_cheatsheet.${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/key_bindings.${lang}.adoc"
          WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
          COMMENT "Building weechat_cheatsheet.${lang}.html"
        )
        add_custom_target(doc-cheatsheet-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_cheatsheet.${lang}.html")
        install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_cheatsheet.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
      endforeach()
      # Plugin API reference
      foreach(lang ${PLUGIN_API_LANG})
        add_custom_command(
          OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.${lang}.html"
          COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_PLUGIN_API_ARGS} -o "weechat_plugin_api.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_plugin_api.${lang}.adoc"
          DEPENDS
          "${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_plugin_api.${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
          doc-autogen
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_completions.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_config_priority.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_hdata.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_infolists.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_infos.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_infos_hashtable.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_plugins_priority.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_api_url_options.${lang}.adoc"
          WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
          COMMENT "Building weechat_plugin_api.${lang}.html"
        )
        add_custom_target(doc-plugin-api-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.${lang}.html")
        install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_plugin_api.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
      endforeach()
      # Scripting guide
      foreach(lang ${SCRIPTING_LANG})
        add_custom_command(
          OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.${lang}.html"
          COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_SCRIPTING_ARGS} -o "weechat_scripting.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_scripting.${lang}.adoc"
          DEPENDS
          "${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_scripting.${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
          doc-autogen
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_scripting_functions.${lang}.adoc"
          "${CMAKE_CURRENT_BINARY_DIR}/autogen/autogen_scripting_constants.${lang}.adoc"
          WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
          COMMENT "Building weechat_scripting.${lang}.html"
        )
        add_custom_target(doc-scripting-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.${lang}.html")
        install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_scripting.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
      endforeach()
      # FAQ
      foreach(lang ${FAQ_LANG})
        add_custom_command(
          OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.${lang}.html"
          COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_FAQ_ARGS} -o "weechat_faq.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_faq.${lang}.adoc"
          DEPENDS
          "${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_faq.${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
          WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
          COMMENT "Building weechat_faq.${lang}.html"
        )
        add_custom_target(doc-faq-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.${lang}.html")
        install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_faq.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
      endforeach()
      # Quickstart
      foreach(lang ${QUICKSTART_LANG})
        add_custom_command(
          OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.${lang}.html"
          COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_QUICKSTART_ARGS} -o "weechat_quickstart.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_quickstart.${lang}.adoc"
          DEPENDS
          "${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_quickstart.${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
          WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
          COMMENT "Building weechat_quickstart.${lang}.html"
        )
        add_custom_target(doc-quickstart-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.${lang}.html")
        install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_quickstart.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
      endforeach()
      # Relay "api"
      foreach(lang ${RELAY_API_LANG})
        add_custom_command(
          OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_api.${lang}.html"
          COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_RELAY_API_ARGS} -o "weechat_relay_api.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_api.${lang}.adoc"
          DEPENDS
          "${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_api.${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/relay.${lang}.adoc"
          WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
          COMMENT "Building weechat_relay_api.${lang}.html"
        )
        add_custom_target(doc-relay-api-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_api.${lang}.html")
        install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_api.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
      endforeach()
      # Relay "weechat"
      foreach(lang ${RELAY_WEECHAT_LANG})
        add_custom_command(
          OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_weechat.${lang}.html"
          COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_RELAY_WEECHAT_ARGS} -o "weechat_relay_weechat.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_weechat.${lang}.adoc"
          DEPENDS
          "${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_relay_weechat.${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/relay.${lang}.adoc"
          WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
          COMMENT "Building weechat_relay_weechat.${lang}.html"
        )
        add_custom_target(doc-relay-weechat-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_weechat.${lang}.html")
        install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_relay_weechat.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
      endforeach()
      # Developer's guide
      foreach(lang ${DEV_LANG})
        add_custom_command(
          OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.${lang}.html"
          COMMAND "${ASCIIDOCTOR_EXECUTABLE}" ARGS ${ASCIIDOCTOR_ARGS} ${ASCIIDOCTOR_DEV_ARGS} -o "weechat_dev.${lang}.html" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_dev.${lang}.adoc"
          DEPENDS
          "${CMAKE_CURRENT_BINARY_DIR}/docinfo.html"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/weechat_dev.${lang}.adoc"
          "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/includes/attributes-${lang}.adoc"
          WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
          COMMENT "Building weechat_dev.${lang}.html"
        )
        add_custom_target(doc-dev-${lang} ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.${lang}.html")
        install(FILES "${CMAKE_CURRENT_BINARY_DIR}/weechat_dev.${lang}.html" DESTINATION "${DATAROOTDIR}/doc/${PROJECT_NAME}")
      endforeach()
    endif()

  else()
    message(SEND_ERROR "Asciidoctor not found")
  endif()

endif()
