Salome HOME
Merge branch 'V9_9_BR'
[tools/documentation.git] / CMakeLists.txt
index 154d1e5eb6c2f7d46f36213e4dbfab09e98e4d2b..416662f6ec146345d3815e96b2479fe8b16d8369 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2022  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
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8 FATAL_ERROR)
-INCLUDE(CMakeDependentOption)
 
+# Project name
+# ============
+# original
 PROJECT(SalomeDOCUMENTATION)
-
-# Versioning
-# ========
-# Project name, upper case
+# upper case
 STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
 
-SET(${PROJECT_NAME_UC}_MAJOR_VERSION 7)
-SET(${PROJECT_NAME_UC}_MINOR_VERSION 2)
-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 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 NO_POLICY_SCOPE)
+ELSE()
+  MESSAGE(FATAL_ERROR "We absolutely need the Salome CMake configuration files, please define CONFIGURATION_ROOT_DIR !")
+ENDIF()
 
-# Our own set of macros:
-# ==================
-LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMakeModules")
-INCLUDE(SalomeMacros)
+# Versioning
+# ===========
+SALOME_SETUP_VERSION(9.9.0)
+MESSAGE(STATUS "Building ${PROJECT_NAME_UC} ${${PROJECT_NAME_UC}_VERSION} from \"${${PROJECT_NAME_UC}_GIT_SHA1}\"")
 
+# Platform setup
+# ==============
+LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
+INCLUDE(SalomeSetupPlatform)
+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)
 FIND_PACKAGE(SalomeGraphviz)
 FIND_PACKAGE(SalomeSphinx)
 
 # Directories
-# =========
-SET(SALOME_DOCUMENTATION_EXTRA_INSTALL extra CACHE PATH "Install path: SALOME Extra documentation")
-SET(SALOME_DOCUMENTATION_GIT_INSTALL dev/git CACHE PATH "Install path: SALOME Git documentation")
-SET(SALOME_DOCUMENTATION_CMAKE_INSTALL dev/cmake CACHE PATH "Install path: SALOME CMake documentation")
-SET(SALOME_DOCUMENTATION_GUI_INSTALL gui CACHE PATH "Install path: SALOME GUI documentation")
-SET(SALOME_DOCUMENTATION_TUI_INSTALL tui CACHE PATH "Install path: SALOME TUI 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_DOCUMENTATION_EXTRA_INSTALL
- SALOME_DOCUMENTATION_GIT_INSTALL
- SALOME_DOCUMENTATION_CMAKE_INSTALL
- SALOME_DOCUMENTATION_GUI_INSTALL 
- SALOME_DOCUMENTATION_TUI_INSTALL
+  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)