# Build the helper executable:

include_directories(${DEPS_INCLUDE_DIRS}
                    ${CMAKE_SOURCE_DIR}/src)

set(user_data_dir ${CMAKE_BINARY_DIR}/tests/data)
add_definitions(-DUSER_DATA_DIR="${user_data_dir}")
add_executable(generate-properties-schema-dox
               generate-properties-schema-dox.cpp)
target_link_libraries(generate-properties-schema-dox mediascanner)

# =============================================================================
# Check for Doxygen
# =============================================================================
find_package(Doxygen 1.8)
find_program(XSLTPROC xsltproc)

if(DOXYGEN_FOUND)
  # Generate the properties-schema.dox file,
  # used by doxygen.
  add_custom_target(run-generate-properties-schema-dox
                    COMMAND generate-properties-schema-dox > properties-schema.dox)
  add_dependencies(run-generate-properties-schema-dox
                   generate-properties-schema-dox
                   settingsdir)

if(XSLTPROC)
  # Generate the gschema.dox file,
  # used by doxygen.
  add_custom_target(run-generate-gschema-dox
                    COMMAND ${XSLTPROC} ${CMAKE_CURRENT_SOURCE_DIR}/gschema_xml_to_dox.xsl
                                        ${MEDIASCANNER_SETTINGS_FILE} > gschema.dox)
  add_dependencies(run-generate-gschema-dox ${MEDIASCANNER_SETTINGS_FILE})
else(XSLTPROC)
  message("xsltproc not found. Documentation will not be built completely")
endif(XSLTPROC)

  # Developer docs (for maintainers of the code):
  set(DOXYFILE ${CMAKE_CURRENT_BINARY_DIR}/developer/Doxyfile)
  configure_file(${CMAKE_CURRENT_SOURCE_DIR}/developer/Doxyfile.in ${DOXYFILE})
  add_custom_target(docs-developer
                    COMMAND rm -rf developer/html
                    COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE}
                    COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/images/*.png developer/html)
  add_dependencies(docs-developer
                   run-generate-properties-schema-dox
                   run-generate-gschema-dox
                   images/*.png)
  set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES developer/html)

  # API Reference docs (for users of the API):
  set(DOXYFILE ${CMAKE_CURRENT_BINARY_DIR}/reference/Doxyfile)
  configure_file(${CMAKE_CURRENT_SOURCE_DIR}/reference/Doxyfile.in ${DOXYFILE})
  add_custom_target(docs-reference
                    COMMAND rm -rf reference/html
                    COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE}
                    COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/images/*.png reference/html)
  add_dependencies(docs-reference
                   run-generate-properties-schema-dox
                   run-generate-gschema-dox
                   images/*.png)
  set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES reference/html)
  install(CODE "execute_process(COMMAND ${CMAKE_BUILD_TOOL} docs-reference)")
  install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/reference/html/
          DESTINATION ${CMAKE_INSTALL_DOCDIR}/reference)

  add_custom_target(docs DEPENDS docs-developer docs-reference)
else(DOXYGEN_FOUND)
  message("Doxygen not found. Documentation will not be built")
endif(DOXYGEN_FOUND)


