Salome HOME
bos #24474 Add possibility to create relative symbolic links
[tools/documentation.git] / CMakeLists.txt
index a0e66644a08c0ffc93f3d1e1b4b3e3f4bf85a5d1..9957c65cb5bb14d41271cb37e40ae3340fcf212f 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2021  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8 FATAL_ERROR)
-INCLUDE(CMakeDependentOption)
 
 PROJECT(SalomeDOCUMENTATION)
 
 # Versioning
-# ========
+# ==========
 # Project name, upper case
 STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
 
 SET(${PROJECT_NAME_UC}_MAJOR_VERSION 9)
-SET(${PROJECT_NAME_UC}_MINOR_VERSION 2)
-SET(${PROJECT_NAME_UC}_PATCH_VERSION 2)
+SET(${PROJECT_NAME_UC}_MINOR_VERSION 7)
+SET(${PROJECT_NAME_UC}_PATCH_VERSION 0)
 SET(${PROJECT_NAME_UC}_VERSION
   ${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION})
-SET(${PROJECT_NAME_UC}_VERSION_DEV 0)
+SET(${PROJECT_NAME_UC}_VERSION_DEV 1)
 
 # Common CMake macros
 # ===================
 SET(CONFIGURATION_ROOT_DIR $ENV{CONFIGURATION_ROOT_DIR} CACHE PATH "Path to the Salome CMake configuration files")
 IF(EXISTS ${CONFIGURATION_ROOT_DIR})
   LIST(APPEND CMAKE_MODULE_PATH "${CONFIGURATION_ROOT_DIR}/cmake")
-  INCLUDE(SalomeMacros)
+  INCLUDE(SalomeMacros NO_POLICY_SCOPE)
 ELSE()
   MESSAGE(FATAL_ERROR "We absolutely need the Salome CMake configuration files, please define CONFIGURATION_ROOT_DIR !")
 ENDIF()
 
+# Platform setup
+# ==============
+LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
 INCLUDE(SalomeSetupPlatform)
-INCLUDE(SalomeMacros)
+INCLUDE(SalomeDocumentationMacros)
+INCLUDE(DocumentationMacros)
+
+# User options
+# ============
+INCLUDE(CMakeDependentOption)
+OPTION(SALOME_INSTALL_MODULES_DOC "Install documentation of SALOME modules" OFF)
+CMAKE_DEPENDENT_OPTION(SALOME_CREATE_SYMLINKS "Create symlinks instead of installing docs" OFF
+                       "NOT WIN32;SALOME_INSTALL_MODULES_DOC" OFF)
+CMAKE_DEPENDENT_OPTION(SALOME_RELATIVE_SYMLINKS "Make relative symlinks instead of absolute ones" OFF
+                       "NOT WIN32;SALOME_INSTALL_MODULES_DOC;SALOME_CREATE_SYMLINKS" OFF)
 
 # Find prerequisites needed to documentation generation
-# ==================================================
+# =====================================================
 FIND_PACKAGE(SalomePythonInterp)
 FIND_PACKAGE(SalomePythonLibs)
 FIND_PACKAGE(SalomeDoxygen)
@@ -55,29 +68,41 @@ FIND_PACKAGE(SalomeGraphviz)
 FIND_PACKAGE(SalomeSphinx)
 
 # Directories
-# =========
-SET(SALOME_INSTALL_DOC_GUI   gui   CACHE PATH "Install path: user documentation")
-SET(SALOME_INSTALL_DOC_TUI   tui   CACHE PATH "Install path: developer documentation")
-SET(SALOME_INSTALL_DOC_DEV   dev   CACHE PATH "Install path: additional developer documentation")
-SET(SALOME_INSTALL_DOC_EXTRA extra CACHE PATH "Install path: extra documentation")
+# ===========
+SET(SALOME_INSTALL_DOC share/doc/salome
+    CACHE PATH "Install path: SALOME documentation")
+SET(SALOME_INSTALL_DOC_MAIN ${SALOME_INSTALL_DOC}
+    CACHE PATH "Install path: main documentation")
+SET(SALOME_INSTALL_DOC_GUI ${SALOME_INSTALL_DOC}/gui
+    CACHE PATH "Install path: user documentation")
+SET(SALOME_INSTALL_DOC_TUI ${SALOME_INSTALL_DOC}/tui
+    CACHE PATH "Install path: developer documentation")
+SET(SALOME_INSTALL_DOC_DEV ${SALOME_INSTALL_DOC}/dev
+    CACHE PATH "Install path: additional developer documentation")
+SET(SALOME_INSTALL_DOC_EXAMPLES ${SALOME_INSTALL_DOC}/examples
+    CACHE PATH "Install path: examples")
+SET(SALOME_INSTALL_DOC_EXTRA ${SALOME_INSTALL_DOC}/extra
+    CACHE PATH "Install path: extra documentation")
 
 MARK_AS_ADVANCED(
- SALOME_INSTALL_DOC_GUI 
- SALOME_INSTALL_DOC_TUI
- SALOME_INSTALL_DOC_DEV
- SALOME_INSTALL_DOC_EXTRA
+  SALOME_INSTALL_DOC
+  SALOME_INSTALL_DOC_MAIN
+  SALOME_INSTALL_DOC_GUI 
+  SALOME_INSTALL_DOC_TUI
+  SALOME_INSTALL_DOC_DEV
+  SALOME_INSTALL_DOC_EXAMPLES
+  SALOME_INSTALL_DOC_EXTRA
 )
 
-# Sources 
-# =====
+# Sources
+# =======
+IF(SALOME_INSTALL_MODULES_DOC)
+  ADD_SUBDIRECTORY(main)
+ELSE()
+  ADD_SUBDIRECTORY(no_main)
+ENDIF()
 ADD_SUBDIRECTORY(tui)
 ADD_SUBDIRECTORY(gui)
-ADD_SUBDIRECTORY(extra)
+ADD_SUBDIRECTORY(examples)
 ADD_SUBDIRECTORY(dev)
-
-# Install rules
-# ==========
-FILE(GLOB COMMON_HTML_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.html")
-FILE(GLOB COMMON_PNG_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.png")
-
-INSTALL(FILES ${COMMON_HTML_FILES} ${COMMON_PNG_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX})
+ADD_SUBDIRECTORY(extra)