aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllen Winter <winter@kde.org>2007-01-20 23:57:46 +0000
committerAllen Winter <winter@kde.org>2007-01-20 23:57:46 +0000
commit334e5ff5439d76c03d57b57518ebd596067fb837 (patch)
tree851c8229c212c02c01a17f6862c6fa4e49f94c77
parent70c525d58ab923b19720edb3257d602b38d588c2 (diff)
downloadextra-cmake-modules-334e5ff5439d76c03d57b57518ebd596067fb837.tar.gz
extra-cmake-modules-334e5ff5439d76c03d57b57518ebd596067fb837.tar.bz2
New macros for creating and installing application handbooks.
To use, in your module/doc/app/CMakeLists.txt: kde4_create_handbook(index.docbook) kde4_install_handbook() Oh, this will probably not work for kdelibs/doc because we need to pass meinproc the --srcdir option in that module. CCMAIL: kde-buildsystem@kde.org svn path=/trunk/KDE/kdelibs/; revision=625750
-rw-r--r--modules/FindKDE4Internal.cmake10
-rw-r--r--modules/KDE4Macros.cmake51
2 files changed, 44 insertions, 17 deletions
diff --git a/modules/FindKDE4Internal.cmake b/modules/FindKDE4Internal.cmake
index 143c3ea0..6322bd75 100644
--- a/modules/FindKDE4Internal.cmake
+++ b/modules/FindKDE4Internal.cmake
@@ -181,8 +181,14 @@
# Installs all png and svgz files in the current directory to the icon
# directoy given in path, in the subdirectory for the given icon theme.
#
-# KDE4_CREATE_HTML_HANDBOOK( <docbookfile1> ... <docbookfileN>
-# Create the HTML documentation using meinproc from the listed docbook files
+# KDE4_CREATE_HANDBOOK( docbookfile )
+# Create the handbook from the docbookfile (using meinproc)
+#
+# KDE4_INSTALL_HANDBOOK()
+# Install the handbook documentation
+#
+# KDE4_CREATE_HTML_HANDBOOK( docbookfile )
+# Create HTML version of the handbook from the docbookfile (using meinproc)
#
# _KDE4_PLATFORM_INCLUDE_DIRS is used only internally
# _KDE4_PLATFORM_DEFINITIONS is used only internally
diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake
index 9caead7b..f76fa253 100644
--- a/modules/KDE4Macros.cmake
+++ b/modules/KDE4Macros.cmake
@@ -222,23 +222,44 @@ macro(KDE4_GET_AUTOMOC_FILES _list)
endforeach (_current_FILE)
endmacro(KDE4_GET_AUTOMOC_FILES)
-
-macro (KDE4_CREATE_HTML_HANDBOOK)
- set(_htmlOutputFiles)
- # iterate over all files
- foreach (_current_FILE ${ARGN})
- get_filename_component(_input ${_current_FILE} ABSOLUTE)
- set(_doc ${CMAKE_CURRENT_BINARY_DIR}/index.html)
- add_custom_command(OUTPUT ${_doc}
- COMMAND ${KDE4_MEINPROC_EXECUTABLE} -o ${_doc} ${_input}
- DEPENDS ${_input} ${_KDE4_MEINPROC_EXECUTABLE_DEP}
- )
- list(APPEND _htmlOutputFiles ${_doc})
- endforeach (_current_FILE)
- add_custom_target(htmlhandbook ALL DEPENDS ${_htmlOutputFiles} )
+macro (KDE4_INSTALL_HANDBOOK)
+ get_filename_component(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR} ABSOLUTE)
+ get_filename_component(_basename ${_tmp_FILE} NAME_WE)
+ file(GLOB _books *.docbook)
+ file(GLOB _images *.png)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/index.cache.bz2 ${_books} ${_images} DESTINATION ${HTML_INSTALL_DIR}/en/${_basename})
+ # TODO symlinks on non-unix platforms
+ if (UNIX)
+ ADD_CUSTOM_COMMAND(OUTPUT "${HTML_INSTALL_DIR}/en/${_basename}/common"
+ DEPENDS "${HTML_INSTALL_DIR}/en/common"
+ COMMAND /bin/ln
+ ARGS -s "${HTML_INSTALL_DIR}/en/common" "${HTML_INSTALL_DIR}/en/${_basename}/common"
+ COMMENT "Symlink")
+ FILE(MAKE_DIRECTORY ${HTML_INSTALL_DIR}/en/${_basename})
+ ADD_CUSTOM_TARGET(CreateSymlinks ALL DEPENDS ${HTML_INSTALL_DIR}/en/${_basename}/common)
+ endif (UNIX)
+endmacro (KDE4_INSTALL_HANDBOOK)
+
+macro (KDE4_CREATE_HANDBOOK _docbook)
+ get_filename_component(_input ${_docbook} ABSOLUTE)
+ set(_doc ${CMAKE_CURRENT_BINARY_DIR}/index.cache.bz2)
+ add_custom_command(OUTPUT ${_doc}
+ COMMAND ${KDE4_MEINPROC_EXECUTABLE} --check --cache ${_doc} ${_input}
+ DEPENDS ${_input} ${_KDE4_MEINPROC_EXECUTABLE_DEP}
+ )
+ add_custom_target(handbook ALL DEPENDS ${_doc})
+endmacro (KDE4_CREATE_HANDBOOK)
+
+macro (KDE4_CREATE_HTML_HANDBOOK _docbook)
+ get_filename_component(_input ${_docbook} ABSOLUTE)
+ set(_doc ${CMAKE_CURRENT_SOURCE_DIR}/index.html)
+ add_custom_command(OUTPUT ${_doc}
+ COMMAND ${KDE4_MEINPROC_EXECUTABLE} --check -o ${_doc} ${_input}
+ DEPENDS ${_input} ${_KDE4_MEINPROC_EXECUTABLE_DEP}
+ )
+ add_custom_target(htmlhandbook ALL DEPENDS ${_doc})
endmacro (KDE4_CREATE_HTML_HANDBOOK)
-
# only used internally by KDE4_INSTALL_ICONS
MACRO (_KDE4_ADD_ICON_INSTALL_RULE _install_SCRIPT _install_PATH _group _orig_NAME _install_NAME)