Salome HOME
Merge remote-tracking branch 'origin/V9_10_BR'
[tools/documentation.git] / cmake / DocumentationMacros.cmake
1 # ==============================================================================
2 # SALOME_CREATE_SYMLINK macro creates symbolic link during installation step
3 #
4 # USAGE: SALOME_CREATE_SYMLINK(src_path link_path)
5 #
6 # ARGUMENTS:
7 #
8 # src_path     Source path to the file or directory.
9 # link_path    Target symbolic link path.
10 #
11 # WARNING:     Link is created only on those platforms which support this.
12 #
13 # ==============================================================================
14
15 MACRO(SALOME_CREATE_SYMLINK src_path link_path)
16   IF(SALOME_RELATIVE_SYMLINKS)
17     FILE(RELATIVE_PATH _link "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${link_path}/.." "${src_path}")
18   ELSE()
19     SET(_link "${src_path}")
20   ENDIF()
21   INSTALL(CODE "
22           IF(EXISTS \"${src_path}\")
23             MESSAGE(STATUS \"Creating symbolic link \$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${link_path}\")
24             GET_FILENAME_COMPONENT(_path \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${link_path}\" DIRECTORY)
25             EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory
26                     \"\${_path}\")
27             EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink
28                     \"${_link}\" \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${link_path}\"
29                     WORKING_DIRECTORY \"${_path}\")
30           ENDIF()
31           ")
32 ENDMACRO()
33
34 # ==============================================================================
35 # SALOME_INSTALL_MODULE_DOC macro creates symbolic link during installation step
36 #
37 # USAGE: SALOME_INSTALL_MODULE_DOC(src ... DESTINATION dest_dir [INDEX index_dir ...])
38 #
39 # ARGUMENTS:
40 #
41 # src          Directory of file to install.
42 # dest_dir     Target directory.
43 # index_dir    Sub-directory(-ies) to put stub index file.
44 #
45 # ==============================================================================
46
47 MACRO(SALOME_INSTALL_MODULE_DOC)
48   CMAKE_PARSE_ARGUMENTS(_SALOME_INSTALL_MODULE_DOC "" "DESTINATION" "INDEX" ${ARGN})
49   SET(_args ${_SALOME_INSTALL_MODULE_DOC_UNPARSED_ARGUMENTS})
50   IF(SALOME_INSTALL_MODULES_DOC)
51     FOREACH(_arg ${_args})
52       GET_FILENAME_COMPONENT(_arg_name ${_arg} NAME)
53       IF(EXISTS "${_arg}")
54         IF(NOT WIN32 AND SALOME_CREATE_SYMLINKS)
55           SALOME_CREATE_SYMLINK("${_arg}" "${_SALOME_INSTALL_MODULE_DOC_DESTINATION}/${_arg_name}")
56         ELSE()
57           IF(IS_DIRECTORY "${_arg}")
58             INSTALL(DIRECTORY "${_arg}"
59                     DESTINATION "${_SALOME_INSTALL_MODULE_DOC_DESTINATION}")
60           ELSE()
61             INSTALL(FILES "${_arg}"
62                     DESTINATION "${_SALOME_INSTALL_MODULE_DOC_DESTINATION}")
63           ENDIF()
64         ENDIF()
65       ELSE()
66         IF(_SALOME_INSTALL_MODULE_DOC_INDEX)
67           FOREACH(_index ${_SALOME_INSTALL_MODULE_DOC_INDEX})
68             SET(_install_dir "${_SALOME_INSTALL_MODULE_DOC_DESTINATION}/${_arg_name}/${_index}")
69             INSTALL(FILES ${CMAKE_SOURCE_DIR}/cmake/dummy_index.html DESTINATION "${_install_dir}" RENAME index.html)
70           ENDFOREACH()
71         ELSE()
72           SET(_install_dir "${_SALOME_INSTALL_MODULE_DOC_DESTINATION}/${_arg_name}")
73           INSTALL(FILES ${CMAKE_SOURCE_DIR}/cmake/dummy_index.html DESTINATION "${_install_dir}" RENAME index.html)
74         ENDIF()
75       ENDIF()
76     ENDFOREACH()
77   ENDIF()
78   UNSET(_args)
79 ENDMACRO()