From 9a1a763c0446a8b4a389a02f580b5f4984628da4 Mon Sep 17 00:00:00 2001 From: akl Date: Tue, 5 Nov 2013 07:53:28 +0000 Subject: [PATCH] First adapted version for SALOME modules built by CMake. --- HYDRO_version.h.in | 22 ++++ SalomeHYDROConfig.cmake.in | 129 ++++++++++++++++++++ adm_local/CMakeLists.txt | 2 + adm_local/cmake_files/CMakeLists.txt | 10 ++ adm_local/cmake_files/FindSalomeHYDRO.cmake | 16 +++ 5 files changed, 179 insertions(+) create mode 100644 HYDRO_version.h.in create mode 100644 SalomeHYDROConfig.cmake.in create mode 100644 adm_local/CMakeLists.txt create mode 100644 adm_local/cmake_files/CMakeLists.txt create mode 100644 adm_local/cmake_files/FindSalomeHYDRO.cmake diff --git a/HYDRO_version.h.in b/HYDRO_version.h.in new file mode 100644 index 00000000..80e20801 --- /dev/null +++ b/HYDRO_version.h.in @@ -0,0 +1,22 @@ +#if !defined(__HYDRO_VERSION_H__) +#define __HYDRO_VERSION_H__ + +/*! + Specify version of SALOME HYDRO module, as follows + + HYDRO_VERSION_MAJOR : (integer) number identifying major version + HYDRO_VERSION_MINOR : (integer) number identifying minor version + HYDRO_VERSION_MAINTENANCE : (integer) number identifying maintenance version + HYDRO_VERSION_STR : (string) complete version number "major.minor.maintenance" + HYDRO_VERSION : (hex) complete version number (major << 16) + (minor << 8) + maintenance + HYDRO_DEVELOPMENT : (integer) indicates development version when set to 1 +*/ + +#define HYDRO_VERSION_MAJOR @SALOMEHYDRO_MAJOR_VERSION@ +#define HYDRO_VERSION_MINOR @SALOMEHYDRO_MINOR_VERSION@ +#define HYDRO_VERSION_MAINTENANCE @SALOMEHYDRO_PATCH_VERSION@ +#define HYDRO_VERSION_STR "@SALOMEHYDRO_VERSION@" +#define HYDRO_VERSION @SALOMEHYDRO_XVERSION@ +#define HYDRO_DEVELOPMENT @SALOMEHYDRO_VERSION_DEV@ + +#endif // __HYDRO_VERSION_H__ diff --git a/SalomeHYDROConfig.cmake.in b/SalomeHYDROConfig.cmake.in new file mode 100644 index 00000000..478dc783 --- /dev/null +++ b/SalomeHYDROConfig.cmake.in @@ -0,0 +1,129 @@ +# - Config file for the @PROJECT_NAME@ package +# It defines the following variables. +# Specific to the pacakge @PROJECT_NAME@ itself: +# @PROJECT_NAME_UC@_ROOT_DIR_EXP - the root path of the installation providing this CMake file +# + +############################################################### +# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# 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. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or +# email : webmaster.salome@opencascade.com +############################################################### +### Initialisation performed by CONFIGURE_PACKAGE_CONFIG_FILE: +@PACKAGE_INIT@ + +# Load the dependencies for the libraries of @PROJECT_NAME@ +# (contains definitions for IMPORTED targets). This is only +# imported if we are not built as a subproject (in this case targets are already there) +IF(NOT @PROJECT_NAME@_BINARY_DIR) + INCLUDE("@PACKAGE_SALOME_INSTALL_CMAKE_LOCAL@/@PROJECT_NAME@Targets.cmake") +ENDIF() + +# Package root dir: +SET_AND_CHECK(HYDRO_ROOT_DIR_EXP "@PACKAGE_CMAKE_INSTALL_PREFIX@") + +# Include directories +SET_AND_CHECK(HYDRO_INCLUDE_DIRS "${HYDRO_ROOT_DIR_EXP}/@SALOME_INSTALL_HEADERS@") +SET(HYDRO_INCLUDE_DIRS "${HYDRO_INCLUDE_DIRS};@_SalomeHYDRO_EXTRA_HEADERS@") +SET(HYDRO_DEFINITIONS) + +#### Now the specificities + +# Options exported by the package: +SET(SALOME_HYDRO_BUILD_DOC @SALOME_BUILD_DOC@) +SET(SALOME_HYDRO_BUILD_TESTS @SALOME_BUILD_TESTS@) + +# Advanced options +SET(SALOME_HYDRO_BUILD_GUI @SALOME_BUILD_GUI@) + +# Level 1 prerequisites: +SET_AND_CHECK(EXPAT_ROOT_DIR_EXP "@PACKAGE_EXPAT_ROOT_DIR@") + +# Optional level 1 prerequisites: +IF(SALOME_HYDRO_BUILD_GUI) + SET_AND_CHECK(GUI_ROOT_DIR_EXP "@PACKAGE_GUI_ROOT_DIR@") + LIST(APPEND HYDRO_DEFINITIONS "@GUI_DEFINITIONS@") +ENDIF() + +# For all prerequisites, load the corresponding targets if the package was used +# in CONFIG mode. This ensures dependent projects link correctly +# without having to set LD_LIBRARY_PATH: +SET(_PREREQ Expat QScintilla Qt4) +SET(_PREREQ_CONFIG_DIR "@Expat_DIR@" "@QScintilla_DIR@" "@Qt4_DIR@") +LIST(LENGTH _PREREQ_CONFIG_DIR _list_len) +# Another CMake stupidity - FOREACH(... RANGE r) generates r+1 numbers ... +MATH(EXPR _range "${_list_len}-1") +FOREACH(_p RANGE ${_range}) + LIST(GET _PREREQ ${_p} _pkg ) + LIST(GET _PREREQ_CONFIG_DIR ${_p} _pkg_dir) + IF(_pkg_dir) + MESSAGE(STATUS "===> Reloading targets from ${_pkg} ...") + FIND_PACKAGE(${_pkg} REQUIRED NO_MODULE + PATHS "${_pkg_dir}" + NO_DEFAULT_PATH) + ENDIF() +ENDFOREACH() + +# Installation directories +SET(SALOME_INSTALL_BINS "@SALOME_INSTALL_BINS@") +SET(SALOME_INSTALL_LIBS "@SALOME_INSTALL_LIBS@") +SET(SALOME_INSTALL_IDLS "@SALOME_INSTALL_IDLS@") +SET(SALOME_INSTALL_HEADERS "@SALOME_INSTALL_HEADERS@") +SET(SALOME_INSTALL_SCRIPT_SCRIPTS "@SALOME_INSTALL_SCRIPT_SCRIPTS@") +SET(SALOME_INSTALL_SCRIPT_DATA "@SALOME_INSTALL_SCRIPT_DATA@") +SET(SALOME_INSTALL_SCRIPT_PYTHON "@SALOME_INSTALL_SCRIPT_PYTHON@") +SET(SALOME_INSTALL_CMAKE "@SALOME_INSTALL_CMAKE@") +SET(SALOME_INSTALL_CMAKE_LOCAL "@SALOME_INSTALL_CMAKE_LOCAL@") +SET(SALOME_INSTALL_PYTHON "@SALOME_INSTALL_PYTHON@") +SET(SALOME_INSTALL_PYTHON_SHARED "@SALOME_INSTALL_PYTHON_SHARED@") +SET(SALOME_INSTALL_RES "@SALOME_INSTALL_RES@") +SET(SALOME_INSTALL_DOC "@SALOME_INSTALL_DOC@") +SET(SALOME_INSTALL_AMCONFIG_LOCAL "@SALOME_INSTALL_AMCONFIG_LOCAL@") + +IF(SALOME_HYDRO_BUILD_GUI) + # Include GUI targets if they were not already loaded: + IF(NOT (TARGET Event)) + INCLUDE("${GUI_ROOT_DIR_EXP}/${SALOME_INSTALL_CMAKE_LOCAL}/SalomeGUITargets.cmake") + ENDIF() +ELSE(SALOME_HYDRO_BUILD_GUI) + IF(SALOME_HYDRO_USE_KERNEL) + # Include KERNEL targets if they were not already loaded: + IF(NOT (TARGET SALOMEBasics)) + INCLUDE("${KERNEL_ROOT_DIR_EXP}/${SALOME_INSTALL_CMAKE}/SalomeKERNELTargets.cmake") + ENDIF() + ENDIF(SALOME_HYDRO_USE_KERNEL) +ENDIF(SALOME_HYDRO_BUILD_GUI) + +# Exposed HYDRO targets: +SET(HYDRO_HYDROloader HYDROloader) +SET(HYDRO_HYDROBases HYDROBases) +SET(HYDRO_HYDROlibEngine HYDROlibEngine) +SET(HYDRO_HYDRORuntimeSALOME HYDRORuntimeSALOME) +SET(HYDRO_HYDRODLTest HYDRODLTest) +SET(HYDRO_SalomeIDLHYDRO SalomeIDLHYDRO) +#TODO: +#SET(HYDRO_TestComponentLocal TestComponentLocal) +#SET(HYDRO_PluginSimplex PluginSimplex) +#SET(HYDRO_PluginOptEvTest1 PluginOptEvTest1) +SET(HYDRO_HMI HMI) +SET(HYDRO_GenericGui GenericGui) +SET(HYDRO_HYDRO HYDRO) +SET(HYDRO_SalomeWrap SalomeWrap) diff --git a/adm_local/CMakeLists.txt b/adm_local/CMakeLists.txt new file mode 100644 index 00000000..4425df42 --- /dev/null +++ b/adm_local/CMakeLists.txt @@ -0,0 +1,2 @@ + +ADD_SUBDIRECTORY(cmake_files) diff --git a/adm_local/cmake_files/CMakeLists.txt b/adm_local/cmake_files/CMakeLists.txt new file mode 100644 index 00000000..48d8df97 --- /dev/null +++ b/adm_local/cmake_files/CMakeLists.txt @@ -0,0 +1,10 @@ + +# =============================================================== +# Files to be installed +# =============================================================== + +# These files are data, module or lib files +SET(_adm_data + FindSalomeHYDRO.cmake +) +INSTALL(FILES ${_adm_data} DESTINATION ${SALOME_INSTALL_CMAKE_LOCAL}) diff --git a/adm_local/cmake_files/FindSalomeHYDRO.cmake b/adm_local/cmake_files/FindSalomeHYDRO.cmake new file mode 100644 index 00000000..1fe87573 --- /dev/null +++ b/adm_local/cmake_files/FindSalomeHYDRO.cmake @@ -0,0 +1,16 @@ + +IF(NOT SalomeHYDRO_FIND_QUIETLY) + MESSAGE(STATUS "Looking for Salome HYDRO ...") +ENDIF() + +SET(CMAKE_PREFIX_PATH "${HYDRO_ROOT_DIR}") + +SALOME_FIND_PACKAGE(SalomeHYDRO SalomeHYDRO CONFIG) + +IF(NOT SalomeHYDRO_FIND_QUIETLY) + MESSAGE(STATUS "Found Salome HYDRO: ${HYDRO_ROOT_DIR}") +ENDIF() + +FOREACH(_res ${SalomeHYDRO_EXTRA_ENV}) + SALOME_ACCUMULATE_ENVIRONMENT(${_res} "${SalomeHYDRO_EXTRA_ENV_${_res}}") +ENDFOREACH() \ No newline at end of file -- 2.39.2