Salome HOME
Porting HELLO module to cmake build system: initial version.
authorrnv <rnv@opencascade.com>
Thu, 26 Sep 2013 10:17:16 +0000 (10:17 +0000)
committerrnv <rnv@opencascade.com>
Thu, 26 Sep 2013 10:17:16 +0000 (10:17 +0000)
39 files changed:
CMakeLists.txt [new file with mode: 0755]
HELLO_version.h.in
Makefile.am [deleted file]
adm_local/CMakeLists.txt [new file with mode: 0755]
adm_local/Makefile.am [deleted file]
adm_local/cmake_files/CMakeLists.txt [new file with mode: 0755]
adm_local/cmake_files/FindHELLO.cmake [new file with mode: 0644]
adm_local/cmake_files/FindSalomeHELLO.cmake [new file with mode: 0644]
adm_local/cmake_files/SalomeHELLOConfig.cmake.in [new file with mode: 0644]
adm_local/unix/CMakeLists.txt [new file with mode: 0755]
adm_local/unix/Makefile.am [deleted file]
adm_local/unix/config_files/CMakeLists.txt [new file with mode: 0755]
adm_local/unix/config_files/Makefile.am [deleted file]
adm_local/unix/make_common_starter.am [deleted file]
bin/CMakeLists.txt [new file with mode: 0755]
bin/Makefile.am [deleted file]
bin/VERSION.in
build_configure [deleted file]
clean_configure [deleted file]
configure.ac [deleted file]
doc/CMakeLists.txt [new file with mode: 0755]
doc/Makefile.am [deleted file]
doc/doxyfile.in
doc/index.doc [deleted file]
doc/input/index.doc [new file with mode: 0644]
doc/static/header.html.in
idl/CMakeLists.txt [new file with mode: 0755]
idl/Makefile.am [deleted file]
resources/CMakeLists.txt [new file with mode: 0755]
resources/HELLOCatalog.xml.in
resources/Makefile.am [deleted file]
resources/SalomeApp.xml.in
src/CMakeLists.txt [new file with mode: 0755]
src/HELLO/CMakeLists.txt [new file with mode: 0644]
src/HELLO/HELLO.cxx
src/HELLO/Makefile.am [deleted file]
src/HELLOGUI/CMakeLists.txt [new file with mode: 0644]
src/HELLOGUI/Makefile.am [deleted file]
src/Makefile.am [deleted file]

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..153cb94
--- /dev/null
@@ -0,0 +1,192 @@
+# Copyright (C) 2012-2013  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.
+#
+# 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
+#
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8 FATAL_ERROR)
+PROJECT(SalomeHELLO C CXX)
+
+# Ensure a proper linker behavior:
+CMAKE_POLICY(SET CMP0003 NEW)
+
+# Versioning
+# ===========
+# Project name, 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)
+
+# Find KERNEL
+# ===========
+SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR} CACHE PATH "Path to the Salome KERNEL")
+IF(EXISTS ${KERNEL_ROOT_DIR})
+  LIST(APPEND CMAKE_MODULE_PATH "${KERNEL_ROOT_DIR}/salome_adm/cmake_files")
+  INCLUDE(SalomeMacros)
+  FIND_PACKAGE(SalomeKERNEL REQUIRED)
+ELSE(EXISTS ${KERNEL_ROOT_DIR})
+  MESSAGE(FATAL_ERROR "We absolutely need a Salome KERNEL, please define KERNEL_ROOT_DIR")
+ENDIF(EXISTS ${KERNEL_ROOT_DIR})
+
+IF(SALOME_LIGHT_ONLY)
+  MESSAGE(FATAL_ERROR "HELLO module can't be built in Light mode (without CORBA)")
+ENDIF()
+
+# Platform setup
+# ==============
+INCLUDE(SalomeSetupPlatform)   # From KERNEL
+# Always build libraries as shared objects:
+SET(BUILD_SHARED_LIBS TRUE)
+# Local macros:
+LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/adm_local/cmake_files")
+
+# User options
+# (some options have already been defined in KERNEL) 
+# ============
+#OPTION(SALOME_BUILD_TESTS "Build SALOME tests" ${SALOME_BUILD_TESTS}) For use in the future
+OPTION(SALOME_BUILD_DOC "Generate SALOME HELLO documentation" ${SALOME_BUILD_DOC})
+  
+IF(SALOME_BUILD_DOC)
+  FIND_PACKAGE(SalomeDoxygen)
+  SALOME_LOG_OPTIONAL_PACKAGE(Doxygen SALOME_BUILD_DOC)
+ENDIF()
+  
+# Find GUI
+# ===========
+
+SET(GUI_ROOT_DIR $ENV{GUI_ROOT_DIR} CACHE PATH "Path to the Salome GUI")
+IF(EXISTS ${GUI_ROOT_DIR})
+  LIST(APPEND CMAKE_MODULE_PATH "${GUI_ROOT_DIR}/adm_local/cmake_files")
+  FIND_PACKAGE(SalomeGUI REQUIRED)
+ELSE(EXISTS ${GUI_ROOT_DIR})
+  MESSAGE(FATAL_ERROR "We absolutely need a Salome GUI, please define GUI_ROOT_DIR")
+ENDIF(EXISTS ${GUI_ROOT_DIR})
+
+##
+## HELLO specifics
+##
+
+FIND_PACKAGE(SalomePython REQUIRED)
+FIND_PACKAGE(SalomeOmniORB REQUIRED)
+FIND_PACKAGE(SalomeOmniORBPy REQUIRED)
+
+# Qt4
+FIND_PACKAGE(SalomeQt4 REQUIRED COMPONENTS QtCore QtGui)
+INCLUDE(${QT_USE_FILE})
+# OCCT
+FIND_PACKAGE(SalomeCAS)
+
+# Detection summary:
+SALOME_PACKAGE_REPORT_AND_CHECK()
+
+# Directories
+# (default values taken from KERNEL)
+# ===========
+SET(SALOME_INSTALL_BINS "${SALOME_INSTALL_BINS}" CACHE PATH "Install path: SALOME binaries")
+SET(SALOME_INSTALL_LIBS "${SALOME_INSTALL_LIBS}" CACHE PATH "Install path: SALOME libs")
+SET(SALOME_INSTALL_IDLS "${SALOME_INSTALL_IDLS}" CACHE PATH "Install path: SALOME IDL files")
+SET(SALOME_INSTALL_HEADERS "${SALOME_INSTALL_HEADERS}" CACHE PATH "Install path: SALOME headers")
+SET(SALOME_INSTALL_SCRIPT_SCRIPTS "${SALOME_INSTALL_SCRIPT_SCRIPTS}" CACHE PATH 
+   "Install path: SALOME scripts")
+SET(SALOME_INSTALL_SCRIPT_DATA "${SALOME_INSTALL_SCRIPT_DATA}" CACHE PATH 
+   "Install path: SALOME script data")
+SET(SALOME_INSTALL_SCRIPT_PYTHON "${SALOME_INSTALL_SCRIPT_PYTHON}" CACHE PATH 
+   "Install path: SALOME Python scripts")
+SET(SALOME_INSTALL_APPLISKEL_SCRIPTS "${SALOME_INSTALL_APPLISKEL_SCRIPTS}" CACHE PATH 
+   "Install path: SALOME application skeleton - scripts")
+SET(SALOME_INSTALL_APPLISKEL_PYTHON "${SALOME_INSTALL_APPLISKEL_PYTHON}" CACHE PATH 
+   "Install path: SALOME application skeleton - Python")
+SET(SALOME_INSTALL_PYTHON "${SALOME_INSTALL_PYTHON}" CACHE PATH "Install path: SALOME Python stuff")
+SET(SALOME_INSTALL_PYTHON_SHARED "${SALOME_INSTALL_PYTHON_SHARED}" CACHE PATH 
+   "Install path: SALOME Python shared modules")
+SET(SALOME_INSTALL_CMAKE_LOCAL "${SALOME_INSTALL_CMAKE_LOCAL}" CACHE PATH 
+    "Install path: local SALOME CMake files") 
+SET(SALOME_INSTALL_AMCONFIG_LOCAL "${SALOME_INSTALL_AMCONFIG_LOCAL}" CACHE PATH
+  "Install path: local SALOME config files (obsolete, to be removed)")
+SET(SALOME_INSTALL_RES "${SALOME_INSTALL_RES}" CACHE PATH "Install path: SALOME resources")
+SET(SALOME_INSTALL_DOC "${SALOME_INSTALL_DOC}" CACHE PATH "Install path: SALOME documentation")
+
+# Specific to HELLO:
+SET(SALOME_HELLO_INSTALL_RES_DATA "${SALOME_INSTALL_RES}/hello" CACHE PATH 
+    "Install path: SALOME HELLO specific data")
+
+MARK_AS_ADVANCED(SALOME_INSTALL_BINS SALOME_INSTALL_LIBS SALOME_INSTALL_IDLS SALOME_INSTALL_HEADERS)
+MARK_AS_ADVANCED(SALOME_INSTALL_SCRIPT_SCRIPTS SALOME_INSTALL_SCRIPT_DATA SALOME_INSTALL_SCRIPT_PYTHON)
+MARK_AS_ADVANCED(SALOME_INSTALL_APPLISKEL_SCRIPTS  SALOME_INSTALL_APPLISKEL_PYTHON SALOME_INSTALL_CMAKE_LOCAL SALOME_INSTALL_RES)
+MARK_AS_ADVANCED(SALOME_INSTALL_PYTHON SALOME_INSTALL_PYTHON_SHARED)
+MARK_AS_ADVANCED(SALOME_INSTALL_AMCONFIG_LOCAL SALOME_INSTALL_DOC)
+MARK_AS_ADVANCED(SALOME_HELLO_INSTALL_RES_DATA)
+
+# Sources 
+# ========
+
+ADD_SUBDIRECTORY(idl)
+ADD_SUBDIRECTORY(adm_local)
+ADD_SUBDIRECTORY(resources)
+ADD_SUBDIRECTORY(src)
+ADD_SUBDIRECTORY(bin)
+ADD_SUBDIRECTORY(doc)
+
+# Header configuration
+# ====================
+SALOME_XVERSION(${PROJECT_NAME})
+SALOME_CONFIGURE_FILE(HELLO_version.h.in HELLO_version.h INSTALL ${SALOME_INSTALL_HEADERS})
+
+# Configuration export
+# (here only the level 1 prerequisites are exposed)
+# ====================
+INCLUDE(CMakePackageConfigHelpers)
+
+# List of targets in this project we want to make visible to the rest of the world.
+# They all have to be INSTALL'd with the option "EXPORT ${PROJECT_NAME}TargetGroup"
+SET(_${PROJECT_NAME}_exposed_targets 
+  HELLOEngine HELLO SalomeIDLHELLO
+)
+
+# Add all targets to the build-tree export set
+EXPORT(TARGETS ${_${PROJECT_NAME}_exposed_targets}
+  FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake)
+
+# Create the configuration files:
+#   - in the build tree:
+
+# Ensure the variables are always defined for the configure:
+SET(GUI_ROOT_DIR "${GUI_ROOT_DIR}")
+SET(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/include" "${PROJECT_BINARY_DIR}/include")
+CONFIGURE_PACKAGE_CONFIG_FILE(adm_local/cmake_files/${PROJECT_NAME}Config.cmake.in 
+    ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
+    INSTALL_DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}"
+    PATH_VARS CONF_INCLUDE_DIRS SALOME_INSTALL_CMAKE_LOCAL CMAKE_INSTALL_PREFIX
+    GUI_ROOT_DIR)
+
+WRITE_BASIC_PACKAGE_VERSION_FILE(${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
+    VERSION ${${PROJECT_NAME_UC}_VERSION}
+    COMPATIBILITY AnyNewerVersion)
+  
+# Install the CMake configuration files:
+INSTALL(FILES
+  "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+  "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
+  DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}")
+
+# Install the export set for use with the install-tree
+INSTALL(EXPORT ${PROJECT_NAME}TargetGroup DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}" 
+  FILE ${PROJECT_NAME}Targets.cmake)
index e10c630761eecd0eacbcab54dfcc3f4dc3b76be6..036f68878219030482b2afcac43f7843b942f67c 100644 (file)
 #if !defined(__HELLO_VERSION_H__)
 #define __HELLO_VERSION_H__
 
-/*
-  HELLO_VERSION is (major << 16) + (minor << 8) + patch.
+/*!
+  Specify version of SALOME HELLO module, as follows
+
+  HELLO_VERSION_MAJOR       : (integer) number identifying major version
+  HELLO_VERSION_MINOR       : (integer) number identifying minor version
+  HELLO_VERSION_MAINTENANCE : (integer) number identifying maintenance version
+  HELLO_VERSION_STR         : (string)  complete version number "major.minor.maintenance"
+  HELLO_VERSION             : (hex)     complete version number (major << 16) + (minor << 8) + maintenance
+  HELLO_DEVELOPMENT         : (integer) indicates development version when set to 1
 */
 
-#define HELLO_VERSION_STR "@VERSION@"
-#define HELLO_VERSION     @XVERSION@
-#define HELLO_DEVELOPMENT @VERSION_DEV@
+#define HELLO_VERSION_MAJOR       @SALOMEHELLO_MAJOR_VERSION@
+#define HELLO_VERSION_MINOR       @SALOMEHELLO_MINOR_VERSION@
+#define HELLO_VERSION_MAINTENANCE @SALOMEHELLO_PATCH_VERSION@
+#define HELLO_VERSION_STR         "@SALOMEHELLO_VERSION@"
+#define HELLO_VERSION             @SALOMEHELLO_XVERSION@
+#define HELLO_DEVELOPMENT         @SALOMEHELLO_VERSION_DEV@
 
 #endif // __HELLO_VERSION_H__
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644 (file)
index bcc51bc..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright (C) 2007-2013  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.
-#
-# 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
-#
-
-# -* Makefile *-
-# Author : Patrick GOLDBRONN (CEA)
-# Date : 28/06/2001
-#  Modified by : Alexander BORODIN (OCN) - autotools usage
-# $Header:
-#
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-
-if HELLO_ENABLE_GUI
-  ACLOCAL_AMFLAGS = -I adm_local/unix/config_files \
-                    -I ${GUI_ROOT_DIR}/adm_local/unix/config_files \
-                    -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files
-else !HELLO_ENABLE_GUI
-  ACLOCAL_AMFLAGS = -I adm_local/unix/config_files \
-                    -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files
-endif
-
-SUBDIRS = idl adm_local resources src bin doc
-
-DISTCLEANFILES = a.out aclocal.m4 configure local-install.sh hack_libtool
-
-salomeinclude_DATA = HELLO_version.h
-
-EXTRA_DIST +=          \
-       build_configure \
-       clean_configure
-
-dist-hook:
-       rm -rf `find $(distdir) -name CVS`
-
-usr_docs:
-       (cd doc && $(MAKE) $(AM_MAKEFLAGS) usr_docs)
-
-docs: usr_docs
-
-dev_docs:
-       (cd doc && $(MAKE) $(AM_MAKEFLAGS) dev_docs)
-
-
diff --git a/adm_local/CMakeLists.txt b/adm_local/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..84d97c2
--- /dev/null
@@ -0,0 +1,24 @@
+# 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
+#
+
+ADD_SUBDIRECTORY(unix)
+ADD_SUBDIRECTORY(cmake_files)
diff --git a/adm_local/Makefile.am b/adm_local/Makefile.am
deleted file mode 100644 (file)
index a8acbbd..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright (C) 2007-2013  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.
-#
-# 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
-#
-
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-
-SUBDIRS = unix
diff --git a/adm_local/cmake_files/CMakeLists.txt b/adm_local/cmake_files/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..c8e2264
--- /dev/null
@@ -0,0 +1,29 @@
+# Copyright (C) 2012-2013  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.
+#
+# 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
+#
+
+# ===============================================================
+# Files to be installed
+# ===============================================================
+
+# These files are data, module or lib files
+SET(_adm_data
+  FindHELLO.cmake
+  FindSalomeHELLO.cmake
+)
+INSTALL(FILES ${_adm_data} DESTINATION ${SALOME_INSTALL_CMAKE_LOCAL})
diff --git a/adm_local/cmake_files/FindHELLO.cmake b/adm_local/cmake_files/FindHELLO.cmake
new file mode 100644 (file)
index 0000000..060eff8
--- /dev/null
@@ -0,0 +1,25 @@
+# Copyright (C) 2007-2013  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.
+#
+# 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
+#
+#
+
+SET(HELLO_CXXFLAGS -I${HELLO_ROOT_DIR}/include/salome)
+
+FIND_LIBRARY(HELLOEngine HELLOEngine ${HELLO_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(HELLO HELLO ${HELLO_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(SalomeIDLHELLO SalomeIDLHELLO ${HELLO_ROOT_DIR}/lib/salome)
diff --git a/adm_local/cmake_files/FindSalomeHELLO.cmake b/adm_local/cmake_files/FindSalomeHELLO.cmake
new file mode 100644 (file)
index 0000000..89fae80
--- /dev/null
@@ -0,0 +1,31 @@
+# Copyright (C) 2007-2013  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.
+#
+# 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
+#
+#
+
+IF(NOT SalomeHELLO_FIND_QUIETLY)
+  MESSAGE(STATUS "Looking for Salome HELLO ...")
+ENDIF()
+
+SET(CMAKE_PREFIX_PATH "${HELLO_ROOT_DIR}")
+
+SALOME_FIND_PACKAGE(SalomeHELLO SalomeHELLO CONFIG)
+
+IF(NOT SalomeHELLO_FIND_QUIETLY)
+  MESSAGE(STATUS "Found Salome HELLO: ${HELLO_ROOT_DIR}")
+ENDIF()
diff --git a/adm_local/cmake_files/SalomeHELLOConfig.cmake.in b/adm_local/cmake_files/SalomeHELLOConfig.cmake.in
new file mode 100644 (file)
index 0000000..ee68d74
--- /dev/null
@@ -0,0 +1,100 @@
+# - 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 TARGET HELLOEngine AND NOT @PROJECT_NAME@_BINARY_DIR)
+  INCLUDE("@PACKAGE_SALOME_INSTALL_CMAKE_LOCAL@/@PROJECT_NAME@Targets.cmake")
+ENDIF()
+
+# Package root dir:
+SET_AND_CHECK(HELLO_ROOT_DIR_EXP "@PACKAGE_CMAKE_INSTALL_PREFIX@")
+
+# Include directories
+SET_AND_CHECK(HELLO_INCLUDE_DIRS "${HELLO_ROOT_DIR_EXP}/@SALOME_INSTALL_HEADERS@")
+
+#### Now the specificities
+
+# Options exported by the package:
+#SET(SALOME_BUILD_TESTS @SALOME_BUILD_TESTS@)
+SET(SALOME_BUILD_DOC   @SALOME_BUILD_DOC@)
+
+# Level 1 prerequisites:
+SET_AND_CHECK(GUI_ROOT_DIR_EXP "@PACKAGE_GUI_ROOT_DIR@")
+
+# 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)
+SET(_PREREQ_CONFIG_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_APPLISKEL_SCRIPTS "@SALOME_INSTALL_APPLISKEL_SCRIPTS@")
+SET(SALOME_INSTALL_APPLISKEL_PYTHON "@SALOME_INSTALL_APPLISKEL_PYTHON@") 
+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@")
+
+# Include GUI targets if they were not already loaded:
+IF(NOT (TARGET Event)) 
+  INCLUDE("${GUI_ROOT_DIR_EXP}/${SALOME_INSTALL_CMAKE}/SalomeGUITargets.cmake")
+ENDIF()
+
+# Exposed HELLO targets:
+SET(HELLO_HELLOEngine HELLOEngine)
+SET(HELLO_HELLO HELLO)
+SET(HELLO_SalomeIDLHELLO SalomeIDLHELLO)
\ No newline at end of file
diff --git a/adm_local/unix/CMakeLists.txt b/adm_local/unix/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..2f895ae
--- /dev/null
@@ -0,0 +1,20 @@
+# Copyright (C) 2012-2013  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.
+#
+# 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
+#
+
+ADD_SUBDIRECTORY(config_files)
diff --git a/adm_local/unix/Makefile.am b/adm_local/unix/Makefile.am
deleted file mode 100644 (file)
index c68bae1..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright (C) 2007-2013  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.
-#
-# 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
-#
-
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-
-SUBDIRS = config_files
diff --git a/adm_local/unix/config_files/CMakeLists.txt b/adm_local/unix/config_files/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..89d13b9
--- /dev/null
@@ -0,0 +1,27 @@
+# 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
+#
+
+SET(_m4_data
+  check_HELLO.m4
+)
+            
+INSTALL(FILES ${_m4_data} DESTINATION ${SALOME_INSTALL_AMCONFIG_LOCAL}/config_files)
diff --git a/adm_local/unix/config_files/Makefile.am b/adm_local/unix/config_files/Makefile.am
deleted file mode 100644 (file)
index 9ddd80e..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright (C) 2007-2013  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.
-#
-# 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
-#
-
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-
-dist_admlocalm4_DATA = \
-       check_HELLO.m4
diff --git a/adm_local/unix/make_common_starter.am b/adm_local/unix/make_common_starter.am
deleted file mode 100644 (file)
index e6cf13e..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright (C) 2007-2013  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.
-#
-# 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
-#
-
-# ============================================================
-# The following is to avoid PACKAGE_... env variable
-# redefinition compilation warnings
-# ============================================================
-#
-AM_CXXFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h
-AM_CPPFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h
-
-# ============================================================
-# This file defines the common definitions used in several
-# Makefile. This file must be included, if needed, by the file
-# Makefile.am.
-# ============================================================
-# Standard directory for installation
-#
-salomeincludedir   = $(includedir)/salome
-libdir             = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome
-bindir             = $(prefix)/bin/salome
-salomescriptdir    = $(bindir)
-salomepythondir    = $(pythondir)/salome
-salomepyexecdir    = $(pyexecdir)/salome
-
-# Directory for installing idl files
-salomeidldir       = $(prefix)/idl/salome
-
-# Directory for installing resource files
-salomeresdir       = $(prefix)/share/salome/resources/@MODULE_NAME@
-
-# Directories for installing admin files
-admlocaldir        = $(prefix)/adm_local
-admlocalunixdir    = $(admlocaldir)/unix
-admlocalm4dir      = $(admlocaldir)/unix/config_files
-
-# Shared modules installation directory
-sharedpkgpythondir = $(salomepythondir)/shared_modules
-
-# Documentation directory
-docdir             = $(datadir)/doc/salome
-
-# common rules
-
-# meta object implementation files generation (moc)
-%_moc.cxx: %.h
-       $(MOC) $< -o $@
-
-# translation (*.qm) files generation (lrelease)
-%.qm: %.ts
-       $(LRELEASE) $< -qm $@
-
-# resource files generation (qrcc)
-qrc_%.cxx: %.qrc
-       $(QRCC) $< -o $@ -name $(*F)
-
-# qt forms files generation (uic)
-ui_%.h: %.ui
-       $(UIC) -o $@ $<
-
-# extra distributed files
-EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \
-             $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=%.ts)
-
-# customize clean operation
-mostlyclean-local:
-       rm -f @builddir@/*_moc.cxx
-       rm -f @builddir@/*.qm
-       rm -f @builddir@/ui_*.h
-       rm -f @builddir@/qrc_*.cxx
-
-# tests
-tests: unittest
-
-unittest: $(UNIT_TEST_PROG)
-       @if test "x$(UNIT_TEST_PROG)" != "x"; then \
-           $(UNIT_TEST_PROG);                     \
-       fi;
diff --git a/bin/CMakeLists.txt b/bin/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..ffdf7b4
--- /dev/null
@@ -0,0 +1,31 @@
+# Copyright (C) 2012-2013  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.
+#
+# 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
+#
+
+SALOME_CONFIGURE_FILE(VERSION.in VERSION INSTALL ${SALOME_INSTALL_BINS})
+SALOME_CONFIGURE_FILE(runAppli.in runAppli INSTALL ${SALOME_INSTALL_BINS})
+
+# ===============================================================
+# Files to be installed
+# ===============================================================
+
+SET(_bin_scripts
+  myrunSalome.py
+)
+
+SALOME_INSTALL_SCRIPTS("${_bin_scripts}" ${SALOME_INSTALL_SCRIPT_SCRIPTS})
diff --git a/bin/Makefile.am b/bin/Makefile.am
deleted file mode 100644 (file)
index 57baf6e..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright (C) 2007-2013  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.
-#
-# 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
-#
-
-# -* Makefile *- 
-# Author : Guillaume Boulant (CSSI)
-# Module : COMPONENT
-#
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-
-dist_salomescript_SCRIPTS = \
-       myrunSalome.py
-
-nodist_salomescript_SCRIPTS = \
-        runAppli
-
-nodist_salomescript_DATA = \
-       VERSION
index 3d5f95f671a5f9bb13a54c7b1ca030dbfc1f2dd4..bc0972d77dab39c5185d7482f230e80ec558d955 100755 (executable)
@@ -1,3 +1,3 @@
-[SALOME HELLO] : @VERSION@
-[DEVELOPMENT]  : @VERSION_DEV@
+[SALOME HELLO] : @SALOMEHELLO_VERSION@
+[DEVELOPMENT]  : @SALOMEHELLO_VERSION_DEV@
 [DESCRIPTION]  : Sample SALOME module
diff --git a/build_configure b/build_configure
deleted file mode 100755 (executable)
index 098b097..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/bin/bash
-# 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
-#
-
-# Tool for updating list of .in file for the SALOME project 
-# and regenerating configure script
-# Author : 
-# Modified by : Alexander BORODIN (OCN) - autotools usage
-# Date : 10/10/2002
-#
-ORIG_DIR=`pwd`
-CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"`
-
-########################################################################
-# Test if the KERNEL_ROOT_DIR is set correctly
-
-if test ! -d "${KERNEL_ROOT_DIR}"; then
-    echo "failed : KERNEL_ROOT_DIR variable is not correct !"
-    exit
-fi
-
-
-########################################################################
-# Test if the GUI_ROOT_DIR is set correctly
-
-#if test ! -d "${GUI_ROOT_DIR}"; then
-#    echo "failed : GUI_ROOT_DIR variable is not correct !"
-#    exit
-#fi
-
-cd ${CONF_DIR}
-ABS_CONF_DIR=`pwd`
-
-########################################################################
-
-# ____________________________________________________________________
-# aclocal creates the aclocal.m4 file from the standard macro and the
-# custom macro embedded in the directory adm_local/unix/config_files
-# and KERNEL config_files directory.
-# output:
-#   aclocal.m4
-#   autom4te.cache (directory)
-echo "======================================================= aclocal"
-
-if test -d "${GUI_ROOT_DIR}"; then
-       aclocal -I adm_local/unix/config_files \
-               -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \
-               -I ${GUI_ROOT_DIR}/adm_local/unix/config_files || exit 1
-else
-       aclocal -I adm_local/unix/config_files \
-               -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files || exit 1
-fi
-
-# ____________________________________________________________________
-# libtoolize creates some configuration files (ltmain.sh,
-# config.guess and config.sub). It only depends on the libtool
-# version. The files are created in the directory specified with the
-# AC_CONFIG_AUX_DIR(<mydir>) tag (see configure.ac).
-# output:
-#   adm_local/unix/config_files/config.guess
-#   adm_local/unix/config_files/config.sub
-#   adm_local/unix/config_files/ltmain.sh
-echo "==================================================== libtoolize"
-
-libtoolize --force --copy --automake || exit 1
-
-# ____________________________________________________________________
-# autoconf creates the configure script from the file configure.ac (or
-# configure.in if configure.ac doesn't exist)
-# output:
-#   configure
-echo "====================================================== autoconf"
-
-autoconf
-
-# ____________________________________________________________________
-# automake creates some scripts used in building process
-# (install-sh, missing, ...). It only depends on the automake
-# version. The files are created in the directory specified with the
-# AC_CONFIG_AUX_DIR(<mydir>) tag (see configure.ac). This step also
-# creates the Makefile.in files from the Makefile.am files.
-# output:
-#   adm_local/unix/config_files/compile
-#   adm_local/unix/config_files/depcomp
-#   adm_local/unix/config_files/install-sh
-#   adm_local/unix/config_files/missing
-#   adm_local/unix/config_files/py-compile
-#   Makefile.in (from Makefile.am)
-echo "====================================================== automake"
-
-automake --copy --gnu --add-missing
diff --git a/clean_configure b/clean_configure
deleted file mode 100755 (executable)
index 2a63bf2..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-# Copyright (C) 2007-2013  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.
-#
-# 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
-#
-
-rm -rf autom4te.cache aclocal.m4 configure make_config
-find . -name "*~" -print -exec rm {} \;
-find . -name "*.pyc" -print -exec rm {} \;
-#exit
-# ==================== ON SORT AVANT
-
-find . -name Makefile.in | xargs rm -f
-( cd adm_local/unix/config_files && rm -f config.* depcomp install-sh ltmain.sh missing py-compile )
diff --git a/configure.ac b/configure.ac
deleted file mode 100644 (file)
index 0a07e21..0000000
+++ /dev/null
@@ -1,348 +0,0 @@
-# Copyright (C) 2007-2013  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.
-#
-# 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
-#
-
-#  PLEASE DO NOT MODIFY configure.in FILE
-#  ALL CHANGES WILL BE DISCARDED BY THE NEXT
-#  build_configure COMMAND
-#  CHANGES MUST BE MADE IN configure.in.base FILE
-# Author : Marc Tajchman (CEA)
-# Date : 28/06/2001
-# Modified by : Patrick GOLDBRONN (CEA)
-# Modified by : Marc Tajchman (CEA)
-# Created from configure.in.base
-#
-AC_INIT([Salome2 Project HELLO module],[7.2.0], [webmaster.salome@opencascade.com], [SalomeHELLO])
-AC_CONFIG_AUX_DIR(adm_local/unix/config_files)
-AC_CANONICAL_HOST
-AC_CANONICAL_TARGET
-AM_INIT_AUTOMAKE([-Wno-portability])
-
-XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'`
-AC_SUBST(XVERSION)
-VERSION_DEV=0
-AC_SUBST(VERSION_DEV)
-
-# set up MODULE_NAME variable for dynamic construction of directories (resources, etc.)
-MODULE_NAME=hello
-AC_SUBST(MODULE_NAME)
-
-dnl
-dnl Initialize source and build root directories
-dnl
-
-ROOT_BUILDDIR=`pwd`
-ROOT_SRCDIR=`echo $0 | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
-cd $ROOT_SRCDIR
-ROOT_SRCDIR=`pwd`
-cd $ROOT_BUILDDIR
-
-AC_SUBST(ROOT_SRCDIR)
-AC_SUBST(ROOT_BUILDDIR)
-
-echo
-echo Source root directory : $ROOT_SRCDIR
-echo Build  root directory : $ROOT_BUILDDIR
-echo
-echo
-
-AC_CHECK_PROG(SHELL,sh)
-AC_SUBST(SHELL)
-
-if test -z "$AR"; then
-   AC_CHECK_PROGS(AR,ar xar,:,$PATH)
-fi
-AC_SUBST(AR)
-
-dnl Export the AR macro so that it will be placed in the libtool file
-dnl correctly.
-export AR
-
-echo
-echo ---------------------------------------------
-echo testing make
-echo ---------------------------------------------
-echo
-
-AC_PROG_MAKE_SET
-AC_PROG_INSTALL
-AC_LOCAL_INSTALL
-dnl 
-dnl libtool macro check for CC, LD, NM, LN_S, RANLIB, STRIP + for shared libraries
-
-AC_ENABLE_DEBUG(yes)
-AC_DISABLE_PRODUCTION
-
-echo ---------------------------------------------
-echo testing libtool
-echo ---------------------------------------------
-
-dnl first, we set static to no!
-dnl if we want it, use --enable-static
-AC_ENABLE_STATIC(no)
-
-AC_LIBTOOL_DLOPEN
-AC_PROG_LIBTOOL
-
-dnl Fix up the INSTALL macro if it s a relative path. We want the
-dnl full-path to the binary instead.
-case "$INSTALL" in
-   *install-sh*)
-      INSTALL='\${KERNEL_ROOT_DIR}'/adm_local/unix/config_files/install-sh
-      ;;
-esac
-
-echo
-echo ---------------------------------------------
-echo testing C/C++
-echo ---------------------------------------------
-echo
-
-cc_ok=no
-dnl inutil car libtool
-dnl AC_PROG_CC
-AC_PROG_CXX
-AC_CXX_WARNINGS
-AC_CXX_TEMPLATE_OPTIONS
-AC_DEPEND_FLAG
-# AC_CC_WARNINGS([ansi])
-cc_ok=yes
-
-dnl Library libdl :
-AC_CHECK_LIB(dl,dlopen)
-
-dnl Library librt : for alpha/osf
-AC_CHECK_LIB(rt,nanosleep)
-
-dnl add library libm :
-AC_CHECK_LIB(m,ceil)
-
-AC_CXX_USE_STD_IOSTREAM
-AC_CXX_HAVE_SSTREAM
-
-dnl
-dnl ---------------------------------------------
-dnl testing linker
-dnl ---------------------------------------------
-dnl
-
-AC_LINKER_OPTIONS
-
-echo
-echo ---------------------------------------------
-echo testing threads
-echo ---------------------------------------------
-echo
-
-ENABLE_PTHREADS
-
-echo
-echo ---------------------------------------------
-echo testing python
-echo ---------------------------------------------
-echo
-
-CHECK_PYTHON
-
-AM_PATH_PYTHON(2.3)
-
-echo
-echo ---------------------------------------------
-echo Testing GUI
-echo ---------------------------------------------
-echo
-
-CHECK_GUI_MODULE
-
-gui_ok=no
-if test "${SalomeGUI_need}" != "no" -a "${FullGUI_ok}" = "yes" ; then 
-  gui_ok=yes
-fi
-
-AM_CONDITIONAL(HELLO_ENABLE_GUI, [test "${gui_ok}" = "yes"])
-
-if test "${SalomeGUI_need}" == "yes"; then
-  if test "${FullGUI_ok}" != "yes"; then
-    AC_MSG_WARN(For configure HELLO module necessary full GUI!)
-  fi
-elif test "${SalomeGUI_need}" == "auto"; then
-  if test "${FullGUI_ok}" != "yes"; then
-    AC_MSG_WARN(Full GUI not found. Build will be done without GUI!)
-  fi
-elif test "${SalomeGUI_need}" == "no"; then
-  echo Build without GUI option has been chosen
-fi
-
-if test "${gui_ok}" = "yes"; then
-       echo
-       echo ---------------------------------------------
-       echo testing QT
-       echo ---------------------------------------------
-       echo
-
-       CHECK_QT
-       
-fi
-
-echo
-echo ---------------------------------------------
-echo testing MPI
-echo ---------------------------------------------
-echo
-
-CHECK_MPI
-
-echo
-echo ---------------------------------------------
-echo testing HDF5
-echo ---------------------------------------------
-echo
-
-CHECK_HDF5
-
-echo
-echo ---------------------------------------------
-echo BOOST Library
-echo ---------------------------------------------
-echo
-
-CHECK_BOOST
-
-echo
-echo ---------------------------------------------
-echo Testing OpenCascade
-echo ---------------------------------------------
-echo
-
-CHECK_CAS
-
-echo
-echo ---------------------------------------------
-echo testing omniORB
-echo ---------------------------------------------
-echo
-
-CHECK_OMNIORB
-
-echo
-echo ---------------------------------------------
-echo default ORB : omniORB
-echo ---------------------------------------------
-echo
-
-DEFAULT_ORB=omniORB
-CHECK_CORBA
-
-AC_SUBST_FILE(CORBA)
-corba=make_$ORB
-CORBA=adm_local/unix/$corba
-
-echo
-echo ---------------------------------------------
-echo Testing html generators
-echo ---------------------------------------------
-echo
-
-CHECK_HTML_GENERATORS
-
-echo
-echo ---------------------------------------------
-echo Testing Kernel
-echo ---------------------------------------------
-echo
-
-CHECK_KERNEL
-
-echo
-echo ---------------------------------------------
-echo Summary
-echo ---------------------------------------------
-echo
-
-echo Configure
-
-if test "${gui_ok}" = "yes"; then
-  variables="cc_ok threads_ok boost_ok python_ok omniORB_ok qt_ok hdf5_ok doxygen_ok Kernel_ok gui_ok"
-elif test "${SalomeGUI_need}" != "no"; then
-  variables="cc_ok threads_ok boost_ok python_ok omniORB_ok hdf5_ok doxygen_ok Kernel_ok gui_ok"
-else
-  variables="cc_ok threads_ok boost_ok python_ok omniORB_ok hdf5_ok doxygen_ok Kernel_ok"
-fi
-
-for var in $variables
-do
-   printf "   %10s : " `echo \$var | sed -e "s,_ok,,"`
-   eval echo \$$var
-done
-
-echo
-echo "Default ORB   : $DEFAULT_ORB"
-echo
-
-dnl We don t need to say when we re entering directories if we re using
-dnl GNU make becuase make does it for us.
-if test "X$GMAKE" = "Xyes"; then
-   AC_SUBST(SETX) SETX=":"
-else
-   AC_SUBST(SETX) SETX="set -x"
-fi
-echo
-echo ---------------------------------------------
-echo generating Makefiles and configure files
-echo ---------------------------------------------
-echo
-
-AC_OUTPUT_COMMANDS([ \
-      chmod +x ./bin/*; \
-])
-
-AC_HACK_LIBTOOL
-AC_CONFIG_COMMANDS([hack_libtool],[
-sed -i "s%^CC=\"\(.*\)\"%hack_libtool (){ \n\
-  $(pwd)/hack_libtool \1 \"\$[@]\" \n\
-}\n\
-CC=\"hack_libtool\"%g" libtool
-sed -i "s%\(\s*\)for searchdir in \$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path; do%\1searchdirs=\"\$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path\"\n\1for searchdir in \$searchdirs; do%g" libtool
-sed -i "s%\(\s*\)searchdirs=\"\$newlib_search_path \$lib_search_path \(.*\)\"%\1searchdirs=\"\$newlib_search_path \$lib_search_path\"\n\1sss_beg=\"\"\n\1sss_end=\"\2\"%g" libtool
-sed -i "s%\(\s*\)\(for searchdir in \$searchdirs; do\)%\1for sss in \$searchdirs; do\n\1  if ! test -d \$sss; then continue; fi\n\1  ssss=\$(cd \$sss; pwd)\n\1  if test \"\$ssss\" != \"\" \&\& test -d \$ssss; then\n\1    case \$ssss in\n\1      /usr/lib | /usr/lib64 ) ;;\n\1      * ) sss_beg=\"\$sss_beg \$ssss\" ;;\n\1    esac\n\1  fi\n\1done\n\1searchdirs=\"\$sss_beg \$sss_end\"\n\1\2%g" libtool
-],[])
-
-# This list is initiated using autoscan and must be updated manually
-# when adding a new file <filename>.in to manage. When you execute
-# autoscan, the Makefile list is generated in the output file configure.scan.
-# This could be helpfull to update de configuration.
-AC_OUTPUT([ \
-  adm_local/Makefile \
-  adm_local/unix/Makefile \
-  adm_local/unix/config_files/Makefile \
-  bin/VERSION \
-  bin/runAppli \
-  bin/Makefile \
-  doc/Makefile \
-  doc/doxyfile \
-  doc/static/header.html \
-  HELLO_version.h \
-  resources/HELLOCatalog.xml \
-  resources/SalomeApp.xml \
-  src/Makefile \
-  src/HELLO/Makefile \
-  src/HELLOGUI/Makefile \
-  resources/Makefile \
-  idl/Makefile \
-  Makefile \
-])
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..71f8180
--- /dev/null
@@ -0,0 +1,32 @@
+# 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
+#
+
+SALOME_CONFIGURE_FILE(doxyfile.in doxyfile)
+SALOME_CONFIGURE_FILE(static/header.html.in static/header.html)
+                
+ADD_CUSTOM_TARGET(usr_docs ${DOXYGEN_EXECUTABLE})
+
+ADD_DEPENDENCIES(usr_docs html_docs)
+
+INSTALL(CODE "EXECUTE_PROCESS(COMMAND \"${CMAKE_COMMAND}\" --build ${PROJECT_BINARY_DIR} --target usr_docs)")
+INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/HELLO DESTINATION ${SALOME_INSTALL_DOC}/gui)
+INSTALL(FILES images/head.png DESTINATION ${SALOME_INSTALL_DOC}/gui/HELLO)
\ No newline at end of file
diff --git a/doc/Makefile.am b/doc/Makefile.am
deleted file mode 100755 (executable)
index dee4f30..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright (C) 2007-2013  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.
-#
-# 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
-#
-
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-
-EXTRA_DIST += images static/footer.html static/salome_extra.css
-
-guidocdir = $(docdir)/gui/HELLO
-guidoc_DATA = images/head.png
-
-usr_docs: doxyfile
-       $(DOXYGEN) doxyfile
-
-docs: usr_docs
-
-dev_docs:
-
-clean-local:
-       @for filen in `find . -maxdepth 1` ; do                 \
-         case $${filen} in                                     \
-           ./Makefile | ./doxyfile ) ;;                        \
-           . | .. | ./static) ;;                               \
-           *) echo "Removing $${filen}" ; rm -rf $${filen} ;;  \
-         esac ;                                                \
-       done ;
-
-install-data-local: usr_docs
-       $(INSTALL) -d $(DESTDIR)$(docdir)/gui/HELLO
-       @for filen in `find . -maxdepth 1` ; do                 \
-         case $${filen} in                                     \
-           ./Makefile | ./doxyfile | ./doxyfile.bak ) ;;       \
-           . | .. | ./static ) ;;                              \
-           *) echo "Installing $${filen}" ; cp -rp $${filen} $(DESTDIR)$(docdir)/gui/HELLO ;;  \
-         esac ;                                                                                \
-       done ;
-
-uninstall-local:
-       rm -rf $(DESTDIR)$(docdir)/gui/HELLO
index 2a517046e2fda13b245cb344c3744003cec7311c..907c21108def32e9a973b643331954de956eae95 100755 (executable)
@@ -23,8 +23,8 @@
 #---------------------------------------------------------------------------
 # Project related configuration options
 #---------------------------------------------------------------------------
-PROJECT_NAME      = "HELLO sample module reference manual v.@VERSION@"
-OUTPUT_DIRECTORY  = .
+PROJECT_NAME      = "HELLO sample module reference manual v.@SALOMEHELLO_VERSION@"
+OUTPUT_DIRECTORY  = HELLO
 CREATE_SUBDIRS   = NO
 OUTPUT_LANGUAGE   = English
 TAB_SIZE          = 5
@@ -38,10 +38,10 @@ WARNINGS          = YES
 #---------------------------------------------------------------------------
 #Input related options
 #---------------------------------------------------------------------------
-INPUT             = @srcdir@
+INPUT             = @CMAKE_CURRENT_SOURCE_DIR@/input
 FILE_PATTERNS     = *.doc
 EXCLUDE           = 
-IMAGE_PATH        = @srcdir@/images
+IMAGE_PATH        = @CMAKE_CURRENT_SOURCE_DIR@/images
 EXAMPLE_PATH      = 
 
 #---------------------------------------------------------------------------
@@ -49,9 +49,9 @@ EXAMPLE_PATH      =
 #---------------------------------------------------------------------------
 GENERATE_HTML     = YES
 HTML_OUTPUT       = .
-HTML_HEADER       = @builddir@/static/header.html
-HTML_FOOTER       = @srcdir@/static/footer.html
-HTML_EXTRA_STYLESHEET   = @srcdir@/static/salome_extra.css
+HTML_HEADER       = @CMAKE_CURRENT_BINARY_DIR@/static/header.html
+HTML_FOOTER       = @CMAKE_CURRENT_SOURCE_DIR@/static/footer.html
+HTML_EXTRA_STYLESHEET   = @CMAKE_CURRENT_SOURCE_DIR@/static/salome_extra.css
 TOC_EXPAND        = YES
 DISABLE_INDEX     = NO
 GENERATE_TREEVIEW = YES
diff --git a/doc/index.doc b/doc/index.doc
deleted file mode 100644 (file)
index 8ae85b1..0000000
+++ /dev/null
@@ -1,1065 +0,0 @@
-/*!
-
-\mainpage Introduction to HELLO sample module
-
-The purpose of the \b HELLO module is to describe briefly the different
-steps in the development of a SALOME module in C++.  
-
-Contents:
-- \subpage dev_steps
-- \subpage tree_structure
-- \subpage build_proc_files
-- \subpage idl_dir
-- \subpage src_dir
-- \subpage bin_dir
-- \subpage doc_dir
-- \subpage build_procedure
-- \subpage run_procedure
-- \subpage load_module
-- \subpage catalog_def
-- \subpage load_lcc
-- \subpage load_iapp
-
-\ref dev_steps ">> Next"
-
-\page dev_steps Steps in construction of the example module
-
-The example module chosen to illustrate the process of SALOME module
-development is very simple. The module contains a single
-component and this component provides several services called \b
-hello and \b goodbye. 
-Each of these functions accepts a reference to the SALOME study and
-a character string as the arguments and returns the status of the operation.
-The component also provides a simple GUI.
-
-The steps in the development are as follows:
-- create a module tree structure
-- create a SALOME component that can be loaded by a C++ SALOME container
-- configure the module so that the component is known to SALOME
-- add a GUI
-
-\ref index "<< Previous"<br>\ref tree_structure ">> Next"
-
-\page tree_structure Create the module tree structure
-
-The first step in the development process is the creation of the
-module tree file hierarchy. The typical SALOME module usually includes
-some set of the configuration files (used in the build procedure of a
-module), Makefiles, IDL file that provides a definition of a CORBA
-services implemented in a module and a set of source files which are
-compiled by the build procedure to the module CORBA engine library and
-(optionally) GUI library.
-
-The following file structure is typical for the SALOME module:
-
-<pre>
-+ HELLO1_SRC
-   + build_configure
-   + clean_configure
-   + configure.ac
-   + Makefile.am
-   + HELLO_version.h.in
-   + AUTHORS
-   + COPYING
-   + ChangeLog
-   + INSTALL
-   + NEWS
-   + README
-   + adm_local
-     + Makefile.am
-     + unix
-       + Makefile.am
-       + make_common_starter.am
-       + config_files
-         + Makefile.am
-         + check_GUI.m4
-         + check_HELLO.m4
-   + bin
-     + Makefile.am
-     + VERSION.in
-     + runAppli.in
-     + myrunSalome.py
-   + idl
-     + Makefile.am
-     + HELLO_Gen.idl
-   + src
-     + Makefile.am
-     + HELLO
-       + Makefile.am
-       + HELLO.hxx
-       + HELLO.cxx
-     + HELLOGUI
-       + Makefile.am
-       + HELLOGUI.h
-       + HELLOGUI.cxx
-       + HELLO_msg_en.ts
-       + HELLO_icons.ts
-   + resources
-     + Makefile.am
-     + HELLO.png
-     + goodbye.png
-     + handshake.png
-     + testme.png
-     + HELLOCatalog.xml.in
-     + SalomeApp.xml.in
-   + doc
-     + Makefile.am
-     + doxyfile.in
-     + index.doc
-     + images
-       + head.png
-     + static
-       + doxygen.css
-       + footer.html
-       + header.html.in
-</pre>
-
-Note that other files can be optionally present. 
-
-The usual way of the sources directory tree structure initial creation
-is to copy it from the existing SALOME module.
-
-\warning The files of the platform base module (KERNEL) must not be
-copied to initialise a module tree structure. It is usually preferable
-to copy files from another module such as GEOM or MED.
-
-The module name is HELLO, the component name is HELLO and all the
-files are put in a directory named HELLO1_SRC.
-Below is a short description of these files. Note, that files with .in
-suffix are the autoconf templates from which the actual files are
-generated during the build procedure.
-
-- \c build_configure
-- \c configure.ac
-- \c Makefile.am
-- \c make_common_starter.am
-- \c clean_configure
-
-These files are a part of the build system based on GNU
-automake/autoconf auto-tools. These files define the build procedure,
-namely, compilation and installation rules like compiler and linker
-options, installation destination folder, package version etc.
-
-- \c AUTHORS
-- \c COPYING
-- \c ChangeLog
-- \c INSTALL
-- \c NEWS
-- \c README
-
-These files are also a usual part of the GNU auto-tools based build
-procedure. These files are used by developers to provide an additional
-information on a product, like license, authors and distribution
-information, change log between versions of a product, installation
-hints, etc.
-
-- \c HELLO_version.h.in 
-
-This is an optional C++ header file, specifying the version
-macro-definitions which can be used, for example, in other modules to
-check the version of the SALOME module (HELLO module in this
-case).
-
-- \c adm_local
-
-This directory contains additional administrative files used by the
-build procedure.
-
-- \c adm_local/unix/config_files/check_GUI.m4
-- \c adm_local/unix/config_files/check_HELLO.m4
-
-These files are another part of the GNU auto-tools based build
-procedure. The scripts written in m4 language are usually used to test
-an availability of some 3rd-party pre-requisite product, compiler
-feature, different configuration options. For example, check_GUI.m4
-file provides a procedure to test availability of SALOME GUI
-module and thus specify if GUI library of HELLO module should be built
-or no.
-
-- \c bin
-
-This directory usually contains different scripts.
-
-- \c bin/VERSION.in
-
-This file is used to document the module, it must give its version (at
-least) and (optionally) compatibilities or incompatibilities with
-other modules. This file is strongly recommended but is not essential
-for operation of the module.
-
-- \c bin/runAppli.in
-- \c bin/myrunSalome.py
-
-These files are not essential but make the example easier to
-use. These are scripts that can be used to run SALOME session with
-HELLO module.
-
-- \c idl
-
-This directory contains IDL files that specify the CORBA services
-supplied by SALOME module.
-
-- \c idl/HELLO_Gen.idl
-
-This is the CORBA IDL definition of the services implemented by SALOME
-HELLO module.
-
-- \c src
-
-This is a root directory of the module source codes. Usually it contains
-one or more sub-directories that provide an implementation of module
-libraries, executables, Python API modules, etc. The hierarchy of the
-sources tree is arbitrary; it follows the specific module needs.
-
-- \c src/HELLO
-
-This directory provides implementation of engine library.
-
-- \c src/HELLO/HELLO.hxx
-- \c src/HELLO/HELLO.cxx
-
-These files provide the implementation of a CORBA engine library of
-the HELLO module. In particular, this is an implementation of the
-services defined in the \c HELLO_Gen.idl file.
-
-- \c HELLOGUI
-
-It is an optional directory that provides an implementation of HELLO
-module's GUI library.
-
-Strictly speaking, the GUI library is optional for each SALOME module.
-In some cases it's enough to implement CORBA engine only. Then,
-the services of the module will be avaiable in a CORBA environment.
-The module can be loaded to the SALOME container and its services
-can be used in the SALOME supervision computation schemas, in Python
-scripts or/and in C++ implementation of other modules.
-
-A GUI library is necessary only if it is planned to access the module
-functionality from the SALOME GUI session via menu actions, dialog boxes
-and so on. 
-
-- \c src/HELLOGUI/HELLOGUI.h
-- \c src/HELLOGUI/HELLOGUI.cxx
-
-These files provide the implementation of a GUI library of
-the HELLO module. In particular, these files specify menus, toolbars,
-dialog boxes and other such staff.
-
-- \c src/HELLOGUI/HELLO_msg_en.ts
-- \c src/HELLOGUI/HELLO_icons.ts
-
-These files provide a description (internationalization) of GUI
-resources of the HELLO module. \c HELLO_msg_en.ts provides an English
-translation of the string resources used in a module (there can be also
-translation files for other languages, for instance French; these files
-are distinguished by the language suffix). \c HELLO_icons.ts
-defines images and icons resources used within the GUI library of
-HELLO module. Please refer to Qt linguist documentation for more
-details.
-
-- \c resources
-
-This optional directory usually contains different resources files
-required for the correct operation of SALOME module.
-
-- \c resources/HELLO.png
-- \c resources/handshake.png
-- \c resources/goodbye.png
-- \c resources/testme.png
-
-These are different module icon files. \c HELLO.png file provides main icon
-of HELLO module to be shown in the SALOME GUI desktop. Other files are
-the icons for the functions implemented by the module; they are used
-in the menus and toolbars.
-
-- \c resources/HELLOCatalog.xml.in
-
-The XML description of the CORBA services provided by the HELLO
-module. This file is parsed by SALOME supervision module (YACS) to generate
-the list of service nodes to be used in the calculation schemas. The
-simplest way to create this file is to use Catalog Generator utility
-provided by the SALOME KERNEL module, that can automatically generate
-XML description file from the IDL file. In GUI, this utility is available
-via the Tools main menu.
-
-- \c resources/SalomeApp.xml.in
-
-This file is essential for each SALOME module. It provides some parameters of
-the module which define its behavior in SALOME. In particular it
-should provide a section with the name corresponding to the name of a
-module ("HELLO" in our case) with the following parameters:
-\code
-  <section name="HELLO">
-    <parameter name="name"          value="Hello"/>
-    <parameter name="icon"          value="HELLO.png"/>
-    <parameter name="version"       value="@VERSION@"/>
-    <parameter name="documentation" value="hello_help"/>
-  </section>
-\endcode
-
-The \a "name" parameter defines GUI name of a module. The \a "icon"
-parameter defines a GUI icon of a module. Optional \a "version" parameter
-defines the version fo the module. The \a "documentation" parameter
-provides a name for the help-related resource section (see below).
-
-The section \a "resources" of a file specifies the directory that contains
-resources of a module (icons, translation files, etc).
-
-\code
-  <section name="resources">
-    <parameter name="HELLO" value="%HELLO_ROOT_DIR%/share/salome/resources/hello"/>
-  </section>
-\endcode
-
-The section \a "hello_help" provides information on the location of 
-the help page(s) and the eventual sub-menu in the Help menu. The name of this section
-can be arbitrary, in such a case it should be specified in the main module's resources
-section (see above). Alternatively, this section's name can have syntax
-\a "<module_name>_documentation", where \a module_name is a name of the module.
-If such section is present in the resource file, it is not necessary to specify it
-in the module's main section.
-
-Parameter \a "sub_menu" of the documentation section allows sepecifying the name of the
-sub-menu in the Help main menu where the documentation materials of a module should be
-put.
-
-\code
-  <section name="hello_help" >
-    <parameter name="sub_menu"        value="Samples"/>
-    <parameter name="%1 User's Guide" value="%HELLO_ROOT_DIR%/share/doc/salome/gui/HELLO/index.html"/>
-  </section>
-\endcode
-
-- \c doc
-
-This directory containes the files related to the module's documentation.
-
-- \c doc/doxyfile.in
-
-The \b Doxygen configuration file. The Doxygen is used to build this
-documentation. The file \c doxyfile.in provides a rules for the
-generation of module documentation.
-
-- \c doc/index.doc
-
-An input file for the Doxygen, which provides a source of this documentation.
-
-- \c doc/images
-
-This sub-folder contains images used in the documentation.
-
-- \c doc/static
-
-This sub-folder contains auxiliary files used when generating documentation
-by Doxygen, like header (\c header.html.in) and footer (\c footer.html)
-of the HTML pages, style sheet (\c doxygen.css) etc.
-
-\ref dev_steps "<< Previous"<br>\ref build_proc_files ">> Next"
-
-\page build_proc_files Build procedure input files
-
-In most cases SALOME uses \b autoconf, \b automake and other GNU auto-tools
-to build the modules. The \c configure script is used for the build procedure
-to test the system configuration and to pre-configure the module construction
-\c Makefile files. 
-
-The \c build_configure script provides a procedure that uses
-\c configure.ac and set of \c Makefile.am files as input and uses \b autoconf
-to generate the \c configure script and \b automake to generate \c Makefile.in
-files. 
-
-The files with an \c .in extension are the skeletons that are the input
-of the \c configure script (to be more precise, these files should be
-listed in the end of the \c configure.ac file in the \c AC_OUTPUT()
-autoconf macro) and are transformed to the resulting files during the
-configuration process.
-
-Almost all files used for this process are located in SALOME
-base module KERNEL that is referenced by the \c KERNEL_ROOT_DIR
-environment variable, namely in its \c salome_adm sub-folder.
-Similarly, the \c GUI_ROOT_DIR environment variable is used for the
-graphical user interface (GUI) module of SALOME; this module also
-provides a set of configuration utilities (m4 files) in its 
-\c adm_local folder. However, some files must be modified as a
-function of the target module. This is the case for \c build_configure
-and \c configure.ac files which usually need to be adapted to the module needs. 
-
-The file \c make_common_starter.am file in the \c adm_local directory of
-the HELLO module provides basic build rules to be used in other
-\c Makefile.am files. To refer to this file in any \c Makefile.am it is
-necessary to use \a "include" clause:
-
-\code
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-\endcode
-
-The \c adm_local/unix/config_files is a directory in which the m4 files
-that are used to test the configuration of the system in the configuration
-process can be placed. If the \c salome_adm files are not sufficient,
-additional configuration files can be put to the \c adm_local directory.
-
-\ref tree_structure "<< Previous"<br>\ref idl_dir ">> Next"
-
-\page idl_dir The idl directory
-
-The \c idl directory requires a \c Makefile.am that must make the
-compilation of the CORBA IDL \c HELLO_Gen.idl file and install all the
-generated files into the correct module installation directories. The
-\a BASEIDL_FILES target has to be modified to reach this goal.
-
-The IDL file itself must define a CORBA component for which the name must
-be different from the module name to avoid name conflicts and define a
-CORBA interface that is derived at least from the \a EngineComponent interface  
-of the \a Engines module. In case of HELLO module, the name of the CORBA 
-component is \b HELLO_ORB and the name of the interface is \b HELLO_Gen. 
-
-\ref build_proc_files "<< Previous"<br>\ref src_dir ">> Next"
-
-\page src_dir The src directory
-
-The \c src directory contains all source files required to build CORBA engine and
-(optionally) GUI libraries of the module. Each of these entities usually
-has (but this is not actually obligatory) its own directory.
-
-The \c Makefile.am simply triggers the path of sub-directories described
-by the \a SUBDIRS target.
-
-- \c src/HELLO sub-directory
-
-This sub-directory contains the C++ source files that implement the engine
-library of the module. The \c Makefile.am defines the rules used to build
-the engine library from these source files. The name of the module
-engine library is predefined and should be set as \c lib\<MODULE\>Engine.so
-where \c MODULE is a name of the module. In the case of the HELLO
-module, the name of the engine library should be \c libHELLOEngine.so.
-
-The \c HELLO.h, \c HELLO.cxx files implement \a HELLO class that is derived
-from the \a HELLO_Gen interface of the \a POA_HELLO_ORB CORBA module and the
-\a SALOME_Component_i class (base implementation of SALOME module engine
-exported by the KERNEL module).
-
-In particular, \a HELLO class implements \a hello() and \a goodbye() functions
-that are defined in the IDL interface \a HELLO_ORB::HELLO_Gen.
-
-\code
-HELLO_ORB::status HELLO::hello( SALOMEDS::Study_ptr study, const char* name )
-{
-...
-}
-HELLO_ORB::status HELLO::goodbye( SALOMEDS::Study_ptr study, const char* name )
-{
-...
-}
-\endcode
-
-In addition, \c HELLO.cxx implements a factory function which is used by
-the SALOME container to create an instance of the HELLO CORBA engine
-by demand:
-
-\code
-extern "C"
-{
-  PortableServer::ObjectId* HELLOEngine_factory(
-    CORBA::ORB_ptr orb,
-    PortableServer::POA_ptr poa,
-    PortableServer::ObjectId* contId,
-    const char* instanceName,
-    const char* interfaceName)
-  {
-    HELLO* myHELLO = new HELLO(orb, poa, contId, instanceName, interfaceName);
-    return myHELLO->getId();
-  }
-}
-\endcode
-
-- \c src/HELLOGUI sub-directory
-
-This directory contains the C++ source files that implement the GUI
-library of HELLO module. By default, the name of the module
-GUI library is predefined and should be set as \c lib\<MODULE\>.so
-where \c MODULE is a name of the module. In the case of the HELLO
-module, the name of the GUI library should be \c libHELLO.so. It is
-also possible to use custom name of the GUI library of a module, but
-in this case, in order to be possible to use this module in SALOME GUI
-desktop, the name of the GUI library should be defined in the
-\c SalomeApp.xml file, in the module's main section, using \a "library"
-parameter, for example:
-
-\code
-  <section name="HELLO">
-    <parameter name="name" value="Hello"/>
-    <parameter name="icon" value="HELLO.png"/>
-    <parameter name="library" value="libMyHelloGUIlibrary.so"/>
-  </section>
-\endcode
-
-The implementation of GUI library of the HELLO module should be done
-according to the architecture and rules specified by the SALOME GUI
-module. The main GUI module class (a\ HELLOGUI in our case) should be
-derived from the \a SalomeApp_Module class.
-
-The developer has to redefine a set of methods which define the
-module behavior in GUI, for example, create menus, toolbars, define
-context popup menus, objects selection behavior, implement dialog
-boxes etc.
-Here below is a short description of these methods. For more details
-please refer to the SALOME GUI module documentation.
-
-- \a initialize() - module initialization; usually used to create
-  GUI actions, menus, toolbars and so on;
-- \a activateModule() - module activation; perform actions which should
-  be done when the module is activated by the user, for example, show
-  related menus and toolbars;
-- \a deactivateModule() - module deactivation; perform actions which should
-  be done when the module is deactivated by the user, for example,
-  hide related menus and toolbars;
-- \a windows() - get a list and a position of the dockable windows to be
-  associated with the module; these windows will be automatically
-  opened and positioned according to the settings defined by the value
-  returned by this function;
-- \a viewManagers() - get a list of the compatible viewers; these viewers
-  will be automatically opened/raised on the module activation;
-- \a contextMenuPopup() - create and return context popup menu according
-  to the current selection;
-- \a createPreferences() - initialize module's preferences;
-- \a preferencesChanged() - callback function that is called when some
-  module's preference is changed by the user; allows to perform the
-  corresponding actions;
-- \a createSelection() - create and return menu selection object; this is
-  a part of the context popup menu definition API;
-- \a engineIOR() - get the reference to the module CORBA engine;
-- \a moduleIcon() and \a iconName() - these methods can be used to customize
-  the module's main icon;
-- \a displayer() - get the reference to the module's \a Displayer class; this
-  is the part of common Show/Hide functionality mechanism;
-- \a storeVisualParameters() and \a restoreVisualParameters() - these methods
-  can be redefined to store/restore different visualization attributes of the 
-  presentable data if it is supported by the module, for example transparency,
-  colors, display mode and other presentable parameters;
-- \a canCopy(), \a copy(), \a canPaste(), \a paste() - these methods are the
-  part of the common Copy/Paste functionality;
-- \a isDraggable(), \a isDropAccepted(), \a dropObjects() - these methods
-  are the part of the common Drag-n-Drop functionality;
-- \a createOperation() - this function can be used as a part of the
-  transaction-based operations mechanism.
-- \a renameAllowed(), \a renameObject() - can be used for in-place (Object
-  browser) renaming of the data entities, if it is supported by the module.
-
-Note, that all of these methods are optional and need not be
-obligatory implemented because \a SalomeApp_Module class provides a
-base implementation of these functions. It's sometimes enough to
-implement only some of them, depending on the module needs.
-
-In the case of HELLO module, only the following methods are
-implemented (other ones are just stubs, added for sample reasons):
-
-- \a engineIOR() that initializes HELLO module's engine:
-
-\code
-QString HELLOGUI::engineIOR() const
-{
-  init(); // initialize engine, if necessary
-  CORBA::String_var anIOR = getApp()->orb()->object_to_string( myEngine.in() );
-  return QString( anIOR.in() );
-}
-\endcode
-
-- \a initialize() that creates actions, menus and toolbars for module's services
-  service:
-
-\code
-void HELLOGUI::initialize( CAM_Application* app )
-{
-  // call the parent implementation
-  SalomeApp_Module::initialize( app );
-
-  // get reference to the desktop (used as a parent for actions)
-  QWidget* dsk = app->desktop();
-  // get resources manager
-  SUIT_ResourceMgr* resMgr = app->resourceMgr();
-
-  // create actions
-  // ... Test me operation
-  createAction( OpTestMe,                                               // operation id
-                tr( "TLT_OP_TESTME" ),                                  // tooltip
-                resMgr->loadPixmap( "HELLO",tr( "ICON_OP_TESTME" ) ),   // icon
-                tr( "MEN_OP_TESTME" ),                                  // menu title
-                tr( "STS_OP_TESTME" ),                                  // status tip
-                0,                                                      // accelerator (not set)
-                dsk,                                                    // parent
-                false,                                                  // togglable flag (no)
-                this,                                                   // action receiver
-                SLOT( testMe() ) );                                     // action slot
-  // create other actions ............
-
-  // create menus
-  int menuId;
-  menuId = createMenu( tr( "MEN_FILE" ), -1, -1 );                      // File menu
-  createMenu( separator(), menuId, -1, 10 );                            // add separator to File menu
-  menuId = createMenu( tr( "MEN_FILE_HELLO" ), menuId, -1, 10 );        // File - Hello submenu
-  createMenu( OpTestMe, menuId );                                       // File - Hello - Test me
-  // create other menus ............
-
-  // create toolbars
-  int aToolId;
-  aToolId = createTool ( tr( "TOOL_TEST" ) );                           // Test toolbar
-  createTool( OpTestMe, aToolId );                                      // Test - Test me
-  // create other toolbars ............
-
-  // set-up popup menu
-  QtxPopupMgr* mgr = popupMgr();
-  mgr->insert( action( OpHello ),   -1, -1 );                           // Hello
-  mgr->setRule( action( OpHello ),   baseRule + " and isComponent",  QtxPopupMgr::VisibleRule );
-  // create other popup menu commands ............
-}
-\endcode
-
-- \a activateModule() that activates menus and toolbars
-\code
-bool HELLOGUI::activateModule( SUIT_Study* theStudy )
-{
-  // call parent implementation
-  bool bOk = SalomeApp_Module::activateModule( theStudy );
-
-  // show own menus
-  setMenuShown( true );
-  // show own toolbars
-  setToolShown( true );
-
-  // return the activation status
-  return bOk;
-}
-\endcode
-
-- \a deactivateModule() that deactivates menus and toolbars
-
-\code
-bool HELLOGUI::deactivateModule( SUIT_Study* theStudy )
-{
-  // hide own menus
-  setMenuShown( false );
-  // hide own toolbars
-  setToolShown( false );
-
-  // call parent implementation and return the activation status
-  return SalomeApp_Module::deactivateModule( theStudy );
-}
-\endcode
-
-- \a windows() that set-ups dockable windows requested by the module
-
-\code
-void HELLOGUI::windows( QMap<int, int>& theMap ) const
-{
-  // want Object browser, in the left area
-  theMap.insert( SalomeApp_Application::WT_ObjectBrowser,
-                Qt::LeftDockWidgetArea );
-  // want Python console, in the bottom area
-  theMap.insert( SalomeApp_Application::WT_PyConsole,
-                Qt::BottomDockWidgetArea );
-}
-\endcode
-
-- \a isDragable(), \a isDropAccepted() and \a dropObjects() methods that handle
-the Drag-n-Drop operation
-
-\code
-bool HELLOGUI::isDragable( const SUIT_DataObject* what ) const
-{
-  // we allow dragging any HELLO object, except the top-level component
-  const SalomeApp_ModuleObject* aModObj = dynamic_cast<const SalomeApp_ModuleObject*>( what );
-  return ( aModObj == 0 );
-}
-
-bool HELLOGUI::isDropAccepted( const SUIT_DataObject* where ) const
-{
-  // we allow dropping of all objects
-  return true;
-}
-
-void HELLOGUI::dropObjects( const DataObjectList& what, SUIT_DataObject* where,
-                           const int row, Qt::DropAction action )
-{
-  if (action != Qt::CopyAction && action != Qt::MoveAction)
-    return; // unsupported action
-
-  // get parent object
-  SalomeApp_DataObject* dataObj = dynamic_cast<SalomeApp_DataObject*>( where );
-  if ( !dataObj ) return; // wrong parent
-  _PTR(SObject) parentObj = dataObj->object();
-
-  // collect objects being dropped
-  HELLO_ORB::object_list_var objects = new HELLO_ORB::object_list();
-  objects->length( what.count() );
-  int count = 0;
-  for ( int i = 0; i < what.count(); i++ ) {
-    dataObj = dynamic_cast<SalomeApp_DataObject*>( what[i] );
-    if ( !dataObj ) continue;  // skip wrong objects
-    _PTR(SObject) sobj = dataObj->object();
-    objects[i] = _CAST(SObject, sobj)->GetSObject();
-    count++;
-  }
-  objects->length( count );
-
-  // call engine function
-  engine()->copyOrMove( objects.in(),                              // what
-                       _CAST(SObject, parentObj)->GetSObject(),   // where
-                       row,                                       // row
-                       action == Qt::CopyAction );                // isCopy
-
-  // update Object browser
-  getApp()->updateObjectBrowser( false );
-}
-\endcode
-
-An implemention of the \a hello() and \a goodbye() methods is quite simple. 
-These operations show the dialog box proposing the user to enter the name and
-pass the name entered by the user to the engine side, using the corresponding
-CORBA service.
-
-\code
-void HELLOGUI::hello()
-{
-  SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( application()->activeStudy() );
-  _PTR(Study) studyDS = study->studyDS();
-
-  // request user name
-  bool ok;
-  QString name = QInputDialog::getText( getApp()->desktop(), tr( "QUE_HELLO_TITLE" ), tr( "QUE_ENTER_NAME" ),
-                                       QLineEdit::Normal, QString::null, &ok );
-
-  if ( ok && !name.trimmed().isEmpty() ) {
-    // say hello to SALOME
-    HELLO_ORB::status status = engine()->hello( _CAST(Study, studyDS)->GetStudy(), (const char*)name.toLatin1() );
-
-    // update Object browser
-    getApp()->updateObjectBrowser(true);
-
-    // process operation status
-    switch( status ) {
-    case HELLO_ORB::OP_OK:
-      // everything's OK
-      SUIT_MessageBox::information( getApp()->desktop(),
-                                   tr( "INF_HELLO_TITLE" ), 
-                                   tr( "INF_HELLO_MSG" ).arg( name ),
-                                   tr( "BUT_OK" ) );
-      break;
-    case HELLO_ORB::OP_ERR_ALREADY_MET:
-      // error: already said hello
-      SUIT_MessageBox::warning( getApp()->desktop(),
-                               tr( "INF_HELLO_TITLE" ), 
-                               tr( "ERR_HELLO_ALREADY_MET" ).arg( name ),
-                               tr( "BUT_OK" ) );
-      break;
-    case HELLO_ORB::OP_ERR_UNKNOWN:
-    default:
-      // other errors
-      SUIT_MessageBox::critical( getApp()->desktop(),
-                                tr( "INF_HELLO_TITLE" ), 
-                                tr( "ERR_ERROR" ),
-                                tr( "BUT_OK" ) );
-      break;
-    }
-  }
-}
-
-void HELLOGUI::goodbye()
-{
-  SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( application() );
-  SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( application()->activeStudy() );
-  _PTR(Study) studyDS = study->studyDS();
-  LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
-
-  QString name;
-
-  // get selection
-  SALOME_ListIO selected;
-  aSelMgr->selectedObjects( selected );
-  if ( selected.Extent() == 1 ) {
-    Handle(SALOME_InteractiveObject) io = selected.First();
-    _PTR(SObject) so = studyDS->FindObjectID( io->getEntry() );
-    if ( so ) { 
-      _PTR(SComponent) comp = so->GetFatherComponent();
-      if ( comp && comp->ComponentDataType() == "HELLO" && io->getEntry() != comp->GetID() ) {
-       name = so->GetName().c_str();
-      }
-    }
-  }
-
-  // request user name if not specified
-  if ( name.isEmpty() ) {
-    bool ok;
-    name = QInputDialog::getText( getApp()->desktop(), tr( "QUE_GOODBYE_TITLE" ), tr( "QUE_ENTER_NAME" ),
-                                 QLineEdit::Normal, QString::null, &ok );
-  }
-
-  if ( !name.trimmed().isEmpty() ) {
-    // say goodby to SALOME
-    HELLO_ORB::status status = engine()->goodbye( _CAST(Study, studyDS)->GetStudy(), (const char*)name.toLatin1() );
-
-    // update Object browser
-    getApp()->updateObjectBrowser(true);
-
-    // process operation status
-    switch( status ) {
-    case HELLO_ORB::OP_OK:
-      // everything's OK
-      SUIT_MessageBox::information( getApp()->desktop(),
-                                   tr( "INF_GOODBYE_TITLE" ), 
-                                   tr( "INF_GOODBYE_MSG" ).arg( name ),
-                                   tr( "BUT_OK" ) );
-      break;
-    case HELLO_ORB::OP_ERR_DID_NOT_MEET:
-      // error: did not say hello yet
-      SUIT_MessageBox::warning( getApp()->desktop(),
-                               tr( "INF_GOODBYE_TITLE" ), 
-                               tr( "ERR_GOODBYE_DID_NOT_MEET" ).arg( name ),
-                               tr( "BUT_OK" ) );
-      break;
-    case HELLO_ORB::OP_ERR_UNKNOWN:
-    default:
-      // other errors
-      SUIT_MessageBox::critical( getApp()->desktop(),
-                                tr( "INF_GOODBYE_TITLE" ), 
-                                tr( "ERR_ERROR" ),
-                                tr( "BUT_OK" ) );
-      break;
-    }
-  }
-}
-\endcode
-
-Also, \c HELLOGUI.cxx provide an implementation of a factory function that is used
-by the SALOME GUI to create an instance of the HELLO GUI class by demand.
-It implements also another factory function to retrieve the
-version number of the module (in the About dialog box for example):
-
-\code
-extern "C" {
-  CAM_Module* createModule()
-  {
-    return new HELLOGUI();
-  }
-
-  char* getModuleVersion() 
-  {
-    return (char*)HELLO_VERSION_STR;
-  }
-}
-\endcode
-
-\ref idl_dir "<< Previous"<br>\ref bin_dir ">> Next"
-
-\page bin_dir The bin directory
-
-The file \c VERSION.in is used to document the module, it must define its
-version and (optionally) its compatibilities or incompatibilities with
-other modules. Therefore, it is strongly recommended but is not
-essential for correct operation of the module.
-
-The \c runAppli.in file is the equivalent of the \c runSalome script
-distributed by the KERNEL module but configured to start SALOME
-session with HELLO module only.
-
-The \c myrunSalome.py file reuses part of functionality provided by the
-KERNEL's \c runSalome.py script. It is used to run SALOME session and
-start HELLO module in this session. 
-
-\ref src_dir "<< Previous"<br>\ref doc_dir ">> Next"
-
-\page doc_dir The doc directory
-
-This directory provides documentation files of the module. The
-documentation of the module can be implemented in the arbitrary
-way. But if you want your documentation to appear in the SALOME GUI
-desktop's Help menu, some specific actions should be done as follows.
-
-The documentation should be generated in the HTML format. For example,
-the documentation of the HELLO module is generated using Doxygen
-tool. It allows to generate structured set of HTML pages from the set
-of input plain text files. Input source files should include Doxygen
-tags and optionally direct HTML tags. For more details please refer to
-the Doxygen documentation.
-
-The resulting documentation of a module should include at least one
-file \c index.html. All the HTML and image files should be exported by
-the build procedure to the following directory:
-\c \<module_installation_dir\>/share/doc/salome/gui/\<MODULE\>
-where \c module_installation_dir is a module installation folder and
-\c MODULE is its name. For example, for HELLO module, at least one file
-should exist:
-\c \<HELLO_module_installation_dir\>/share/doc/salome/gui/HELLO/index.html. 
-
-The SALOME GUI automatically searches for the index.html file in the
-mentioned module directory. If the file is found, the corresponding
-menu command is automatically added to the Help menu of the SALOME GUI
-desktop.
-
-\ref bin_dir "<< Previous"<br>\ref build_procedure ">> Next"
-
-\page build_procedure Construction, installation
-
-Before building HELLO module, please ensure that SALOME environment is
-set properly. Assume that SALOME environment is set in env_products.sh
-script. In order to build and install HELLO module, you have to
-perform several steps:
-
-<pre>
-[bash% ] source env_products.sh
-[bash% ] mkdir HELLO_BUILD
-[bash% ] cd HELLO_BUILD
-[bash% ] ../HELLO1_SRC/build_configure
-[bash% ] ../HELLO1_SRC/configure --prefix=\<HELLO_module_installation_dir\>
-[bash% ] make
-[bash% ] make install
-</pre>
-
-The first command creates a build directory for the HELLO module. Then
-next step is to cd to this build directory. From this directory you
-sequentially invoke \c build_configure, \c configure, \c make and \c make install
-commands. On each step, you have to ensure that the operation is
-finished correctly (no errors raised).
-
-The \c \<HELLO_module_installation_dir\> variable above defines the
-destination directory to which the HELLO module should be
-installed. After the last step is finished, the HELLO module is built
-and installed to the \c \<HELLO_module_installation_dir\> directory.
-
-\ref doc_dir "<< Previous"<br>\ref run_procedure ">> Next"
-
-\page run_procedure Running SALOME
-
-Go to the the \c \<HELLO_module_installation_dir\> directory and type:
-
-<pre>
-[bash% ] ./bin/salome/runAppli
-</pre>
-
-This command runs SALOME session configured for KERNEL and the HELLO
-module. At the end of running, the user will be prompted by the
-Python interpreter command line configured for SALOME that provides
-access to SALOME Python API (including CORBA interfaces).
-
-The \c runAppli file is a shell script that executes a Python commands
-running SALOME session by passing arguments to it in a command line:
-       
-<pre>
-${KERNEL_ROOT_DIR}/bin/salome/envSalome.py python -i $HELLO_ROOT_DIR/bin/salome/myrunSalome.py --modules=HELLO --killall
-</pre>
-
-These arguments state that the \c myrunSalome.py script located in the
-HELLO module will be used, that the HELLO component will be
-activated and all previously running SALOME sessions should be
-shutdowned.
-
-This command will not function unless the following environment
-variables have previously been set:
-
-<pre>
-export KERNEL_ROOT_DIR=\<KERNEL_module_installation_dir\>
-export HELLO_ROOT_DIR=\<HELLO_module_installation_dir\>
-</pre>
-
-\warning It is possible that the SALOME run will not reach the end.
-In some circumstances, the time to start CORBA servers may be long and
-could exceed the timeout. If the reasons is that the time to
-load dynamic libraries is long, it is possible that a second run
-immediately afterwards will be successful.
-\ref build_procedure "<< Previous"<br>\ref load_module ">> Next"
-
-\page load_module Loading HELLO component
-
-The \a HELLO_ORB module has to be imported before making a request to
-load the component into the container, to obtain access to methods of
-the component.  This container is made accessible in the \c myrunSalome.py
-by means of the \a container variable:
-
-<pre>
->> import salome
->> salome.salome_init()
->> import HELLO_ORB
->> c = container.load_impl("HELLO", "HELLO")
->> c.hello(salome.myStudy, "Christian")
-</pre>
-
-The last instruction invokes HELLO module's service \a hello(). Proceed as
-follows to see the CORBA objects created by these actions:
-
-<pre>
->> clt.showNS()
-</pre>
-
-\ref run_procedure "<< Previous"<br>\ref catalog_def ">> Next"
-
-\page catalog_def HELLO module catalog definition
-
-In the example from the previous chapter, the HELLO component was
-loaded by making a direct request to the SALOME container. This is not
-the standard method for loading of a component. The normal way uses
-the SALOME LifeCycle service that invokes SALOME Module Catalog
-services to identify the component and its properties and then calls
-the requested container to load the component. 
-
-Before this method can be used, the component must be declared in a
-catalog in the XML format, for which the name must be
-\c \<MODULE\>Catalog.xml. In our case, it will be \c HELLOCatalog.xml.
-Usually this catalog is put to the resources sub-directory of the
-directory tree. The simplest way to create this file is to use Catalog
-Generator utility provided by the SALOME KERNEL module, that can
-automatically generate XML description file from the IDL file.
-
-\ref load_module "<< Previous"<br>\ref load_lcc ">> Next"
-
-\page load_lcc Loading HELLO component via LifeCycle service
-
-The method of loading the component is not very different from that
-is described above. The services of the LifeCycle module are used in
-this case instead of calling the container directly. The call sequence
-is contained in the \c myrunSalome.py \a test() function.
-
-<pre>
-    import salome
-    salome.salome_init()
-    c = test(clt)
-    c.hello(salome.myStudy, "Christian")
-</pre>
-
-The test function creates the LifeCycle object. It then asks for the
-HELLO component to be loaded in the \a FactoryServer container:
-
-\code
-def test(clt):
-    """
-    Test function that creates an instance of HELLO component
-    usage : hello=test(clt)
-    """
-    import LifeCycleCORBA
-    lcc = LifeCycleCORBA.LifeCycleCORBA(clt.orb)
-    import HELLO_ORB
-    hello = lcc.FindOrLoadComponent("FactoryServer", "HELLO")
-    return hello
-\endcode
-
-\ref catalog_def "<< Previous"<br>\ref load_iapp ">> Next"
-
-\page load_iapp Loading from the GUI (IAPP)
-
-In order to activate HELLO module in the SALOME GUI desktop, the user
-should press the HELLO module's button on the \a Modules toolbar or
-select the name of the module in the combo box on this toolbar.
-
-The image file to be used as an icon of a module should be exported by
-the module build procedure. The icon file name is defined in \c SalomeApp.xml:
-\code
-  <section name="HELLO">
-    <parameter name="name" value="Hello"/>
-    <parameter name="icon" value="HELLO.png"/>
-  </section>
-\endcode
-
-\ref load_lcc "<< Previous"
-
-*/
diff --git a/doc/input/index.doc b/doc/input/index.doc
new file mode 100644 (file)
index 0000000..8d26cf9
--- /dev/null
@@ -0,0 +1,1065 @@
+/*!
+
+\mainpage Introduction to HELLO sample module
+
+The purpose of the \b HELLO module is to describe briefly the different
+steps in the development of a SALOME module in C++.  
+
+Contents:
+- \subpage dev_steps
+- \subpage tree_structure
+- \subpage build_proc_files
+- \subpage idl_dir
+- \subpage src_dir
+- \subpage bin_dir
+- \subpage doc_dir
+- \subpage build_procedure
+- \subpage run_procedure
+- \subpage load_module
+- \subpage catalog_def
+- \subpage load_lcc
+- \subpage load_iapp
+
+\ref dev_steps ">> Next"
+
+\page dev_steps Steps in construction of the example module
+
+The example module chosen to illustrate the process of SALOME module
+development is very simple. The module contains a single
+component and this component provides several services called \b
+hello and \b goodbye. 
+Each of these functions accepts a reference to the SALOME study and
+a character string as the arguments and returns the status of the operation.
+The component also provides a simple GUI.
+
+The steps in the development are as follows:
+- create a module tree structure
+- create a SALOME component that can be loaded by a C++ SALOME container
+- configure the module so that the component is known to SALOME
+- add a GUI
+
+\ref index "<< Previous"<br>\ref tree_structure ">> Next"
+
+\page tree_structure Create the module tree structure
+
+The first step in the development process is the creation of the
+module tree file hierarchy. The typical SALOME module usually includes
+some set of the configuration files (used in the build procedure of a
+module), Makefiles, IDL file that provides a definition of a CORBA
+services implemented in a module and a set of source files which are
+compiled by the build procedure to the module CORBA engine library and
+(optionally) GUI library.
+
+The following file structure is typical for the SALOME module:
+
+<pre>
++ HELLO1_SRC
+   + build_configure
+   + clean_configure
+   + configure.ac
+   + Makefile.am
+   + HELLO_version.h.in
+   + AUTHORS
+   + COPYING
+   + ChangeLog
+   + INSTALL
+   + NEWS
+   + README
+   + adm_local
+     + Makefile.am
+     + unix
+       + Makefile.am
+       + make_common_starter.am
+       + config_files
+         + Makefile.am
+         + check_GUI.m4
+         + check_HELLO.m4
+   + bin
+     + Makefile.am
+     + VERSION.in
+     + runAppli.in
+     + myrunSalome.py
+   + idl
+     + Makefile.am
+     + HELLO_Gen.idl
+   + src
+     + Makefile.am
+     + HELLO
+       + Makefile.am
+       + HELLO.hxx
+       + HELLO.cxx
+     + HELLOGUI
+       + Makefile.am
+       + HELLOGUI.h
+       + HELLOGUI.cxx
+       + HELLO_msg_en.ts
+       + HELLO_icons.ts
+   + resources
+     + Makefile.am
+     + HELLO.png
+     + goodbye.png
+     + handshake.png
+     + testme.png
+     + HELLOCatalog.xml.in
+     + SalomeApp.xml.in
+   + doc
+     + Makefile.am
+     + doxyfile.in
+     + index.doc
+     + images
+       + head.png
+     + static
+       + doxygen.css
+       + footer.html
+       + header.html.in
+</pre>
+
+Note that other files can be optionally present. 
+
+The usual way of the sources directory tree structure initial creation
+is to copy it from the existing SALOME module.
+
+\warning The files of the platform base module (KERNEL) must not be
+copied to initialise a module tree structure. It is usually preferable
+to copy files from another module such as GEOM or MED.
+
+The module name is HELLO, the component name is HELLO and all the
+files are put in a directory named HELLO1_SRC.
+Below is a short description of these files. Note, that files with .in
+suffix are the autoconf templates from which the actual files are
+generated during the build procedure.
+
+- \c build_configure
+- \c configure.ac
+- \c Makefile.am
+- \c make_common_starter.am
+- \c clean_configure
+
+These files are a part of the build system based on GNU
+automake/autoconf auto-tools. These files define the build procedure,
+namely, compilation and installation rules like compiler and linker
+options, installation destination folder, package version etc.
+
+- \c AUTHORS
+- \c COPYING
+- \c ChangeLog
+- \c INSTALL
+- \c NEWS
+- \c README
+
+These files are also a usual part of the GNU auto-tools based build
+procedure. These files are used by developers to provide an additional
+information on a product, like license, authors and distribution
+information, change log between versions of a product, installation
+hints, etc.
+
+- \c HELLO_version.h.in 
+
+This is an optional C++ header file, specifying the version
+macro-definitions which can be used, for example, in other modules to
+check the version of the SALOME module (HELLO module in this
+case).
+
+- \c adm_local
+
+This directory contains additional administrative files used by the
+build procedure.
+
+- \c adm_local/unix/config_files/check_GUI.m4
+- \c adm_local/unix/config_files/check_HELLO.m4
+
+These files are another part of the GNU auto-tools based build
+procedure. The scripts written in m4 language are usually used to test
+an availability of some 3rd-party pre-requisite product, compiler
+feature, different configuration options. For example, check_GUI.m4
+file provides a procedure to test availability of SALOME GUI
+module and thus specify if GUI library of HELLO module should be built
+or no.
+
+- \c bin
+
+This directory usually contains different scripts.
+
+- \c bin/VERSION.in
+
+This file is used to document the module, it must give its version (at
+least) and (optionally) compatibilities or incompatibilities with
+other modules. This file is strongly recommended but is not essential
+for operation of the module.
+
+- \c bin/runAppli.in
+- \c bin/myrunSalome.py
+
+These files are not essential but make the example easier to
+use. These are scripts that can be used to run SALOME session with
+HELLO module.
+
+- \c idl
+
+This directory contains IDL files that specify the CORBA services
+supplied by SALOME module.
+
+- \c idl/HELLO_Gen.idl
+
+This is the CORBA IDL definition of the services implemented by SALOME
+HELLO module.
+
+- \c src
+
+This is a root directory of the module source codes. Usually it contains
+one or more sub-directories that provide an implementation of module
+libraries, executables, Python API modules, etc. The hierarchy of the
+sources tree is arbitrary; it follows the specific module needs.
+
+- \c src/HELLO
+
+This directory provides implementation of engine library.
+
+- \c src/HELLO/HELLO.hxx
+- \c src/HELLO/HELLO.cxx
+
+These files provide the implementation of a CORBA engine library of
+the HELLO module. In particular, this is an implementation of the
+services defined in the \c HELLO_Gen.idl file.
+
+- \c HELLOGUI
+
+It is an optional directory that provides an implementation of HELLO
+module's GUI library.
+
+Strictly speaking, the GUI library is optional for each SALOME module.
+In some cases it's enough to implement CORBA engine only. Then,
+the services of the module will be avaiable in a CORBA environment.
+The module can be loaded to the SALOME container and its services
+can be used in the SALOME supervision computation schemas, in Python
+scripts or/and in C++ implementation of other modules.
+
+A GUI library is necessary only if it is planned to access the module
+functionality from the SALOME GUI session via menu actions, dialog boxes
+and so on. 
+
+- \c src/HELLOGUI/HELLOGUI.h
+- \c src/HELLOGUI/HELLOGUI.cxx
+
+These files provide the implementation of a GUI library of
+the HELLO module. In particular, these files specify menus, toolbars,
+dialog boxes and other such staff.
+
+- \c src/HELLOGUI/HELLO_msg_en.ts
+- \c src/HELLOGUI/HELLO_icons.ts
+
+These files provide a description (internationalization) of GUI
+resources of the HELLO module. \c HELLO_msg_en.ts provides an English
+translation of the string resources used in a module (there can be also
+translation files for other languages, for instance French; these files
+are distinguished by the language suffix). \c HELLO_icons.ts
+defines images and icons resources used within the GUI library of
+HELLO module. Please refer to Qt linguist documentation for more
+details.
+
+- \c resources
+
+This optional directory usually contains different resources files
+required for the correct operation of SALOME module.
+
+- \c resources/HELLO.png
+- \c resources/handshake.png
+- \c resources/goodbye.png
+- \c resources/testme.png
+
+These are different module icon files. \c HELLO.png file provides main icon
+of HELLO module to be shown in the SALOME GUI desktop. Other files are
+the icons for the functions implemented by the module; they are used
+in the menus and toolbars.
+
+- \c resources/HELLOCatalog.xml.in
+
+The XML description of the CORBA services provided by the HELLO
+module. This file is parsed by SALOME supervision module (YACS) to generate
+the list of service nodes to be used in the calculation schemas. The
+simplest way to create this file is to use Catalog Generator utility
+provided by the SALOME KERNEL module, that can automatically generate
+XML description file from the IDL file. In GUI, this utility is available
+via the Tools main menu.
+
+- \c resources/SalomeApp.xml.in
+
+This file is essential for each SALOME module. It provides some parameters of
+the module which define its behavior in SALOME. In particular it
+should provide a section with the name corresponding to the name of a
+module ("HELLO" in our case) with the following parameters:
+\code
+  <section name="HELLO">
+    <parameter name="name"          value="Hello"/>
+    <parameter name="icon"          value="HELLO.png"/>
+    <parameter name="version"       value="@SALOMEHELLO_VERSION@"/>
+    <parameter name="documentation" value="hello_help"/>
+  </section>
+\endcode
+
+The \a "name" parameter defines GUI name of a module. The \a "icon"
+parameter defines a GUI icon of a module. Optional \a "version" parameter
+defines the version fo the module. The \a "documentation" parameter
+provides a name for the help-related resource section (see below).
+
+The section \a "resources" of a file specifies the directory that contains
+resources of a module (icons, translation files, etc).
+
+\code
+  <section name="resources">
+    <parameter name="HELLO" value="%HELLO_ROOT_DIR%/share/salome/resources/hello"/>
+  </section>
+\endcode
+
+The section \a "hello_help" provides information on the location of 
+the help page(s) and the eventual sub-menu in the Help menu. The name of this section
+can be arbitrary, in such a case it should be specified in the main module's resources
+section (see above). Alternatively, this section's name can have syntax
+\a "<module_name>_documentation", where \a module_name is a name of the module.
+If such section is present in the resource file, it is not necessary to specify it
+in the module's main section.
+
+Parameter \a "sub_menu" of the documentation section allows sepecifying the name of the
+sub-menu in the Help main menu where the documentation materials of a module should be
+put.
+
+\code
+  <section name="hello_help" >
+    <parameter name="sub_menu"        value="Samples"/>
+    <parameter name="%1 User's Guide" value="%HELLO_ROOT_DIR%/share/doc/salome/gui/HELLO/index.html"/>
+  </section>
+\endcode
+
+- \c doc
+
+This directory containes the files related to the module's documentation.
+
+- \c doc/doxyfile.in
+
+The \b Doxygen configuration file. The Doxygen is used to build this
+documentation. The file \c doxyfile.in provides a rules for the
+generation of module documentation.
+
+- \c doc/index.doc
+
+An input file for the Doxygen, which provides a source of this documentation.
+
+- \c doc/images
+
+This sub-folder contains images used in the documentation.
+
+- \c doc/static
+
+This sub-folder contains auxiliary files used when generating documentation
+by Doxygen, like header (\c header.html.in) and footer (\c footer.html)
+of the HTML pages, style sheet (\c doxygen.css) etc.
+
+\ref dev_steps "<< Previous"<br>\ref build_proc_files ">> Next"
+
+\page build_proc_files Build procedure input files
+
+In most cases SALOME uses \b autoconf, \b automake and other GNU auto-tools
+to build the modules. The \c configure script is used for the build procedure
+to test the system configuration and to pre-configure the module construction
+\c Makefile files. 
+
+The \c build_configure script provides a procedure that uses
+\c configure.ac and set of \c Makefile.am files as input and uses \b autoconf
+to generate the \c configure script and \b automake to generate \c Makefile.in
+files. 
+
+The files with an \c .in extension are the skeletons that are the input
+of the \c configure script (to be more precise, these files should be
+listed in the end of the \c configure.ac file in the \c AC_OUTPUT()
+autoconf macro) and are transformed to the resulting files during the
+configuration process.
+
+Almost all files used for this process are located in SALOME
+base module KERNEL that is referenced by the \c KERNEL_ROOT_DIR
+environment variable, namely in its \c salome_adm sub-folder.
+Similarly, the \c GUI_ROOT_DIR environment variable is used for the
+graphical user interface (GUI) module of SALOME; this module also
+provides a set of configuration utilities (m4 files) in its 
+\c adm_local folder. However, some files must be modified as a
+function of the target module. This is the case for \c build_configure
+and \c configure.ac files which usually need to be adapted to the module needs. 
+
+The file \c make_common_starter.am file in the \c adm_local directory of
+the HELLO module provides basic build rules to be used in other
+\c Makefile.am files. To refer to this file in any \c Makefile.am it is
+necessary to use \a "include" clause:
+
+\code
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+\endcode
+
+The \c adm_local/unix/config_files is a directory in which the m4 files
+that are used to test the configuration of the system in the configuration
+process can be placed. If the \c salome_adm files are not sufficient,
+additional configuration files can be put to the \c adm_local directory.
+
+\ref tree_structure "<< Previous"<br>\ref idl_dir ">> Next"
+
+\page idl_dir The idl directory
+
+The \c idl directory requires a \c Makefile.am that must make the
+compilation of the CORBA IDL \c HELLO_Gen.idl file and install all the
+generated files into the correct module installation directories. The
+\a BASEIDL_FILES target has to be modified to reach this goal.
+
+The IDL file itself must define a CORBA component for which the name must
+be different from the module name to avoid name conflicts and define a
+CORBA interface that is derived at least from the \a EngineComponent interface  
+of the \a Engines module. In case of HELLO module, the name of the CORBA 
+component is \b HELLO_ORB and the name of the interface is \b HELLO_Gen. 
+
+\ref build_proc_files "<< Previous"<br>\ref src_dir ">> Next"
+
+\page src_dir The src directory
+
+The \c src directory contains all source files required to build CORBA engine and
+(optionally) GUI libraries of the module. Each of these entities usually
+has (but this is not actually obligatory) its own directory.
+
+The \c Makefile.am simply triggers the path of sub-directories described
+by the \a SUBDIRS target.
+
+- \c src/HELLO sub-directory
+
+This sub-directory contains the C++ source files that implement the engine
+library of the module. The \c Makefile.am defines the rules used to build
+the engine library from these source files. The name of the module
+engine library is predefined and should be set as \c lib\<MODULE\>Engine.so
+where \c MODULE is a name of the module. In the case of the HELLO
+module, the name of the engine library should be \c libHELLOEngine.so.
+
+The \c HELLO.h, \c HELLO.cxx files implement \a HELLO class that is derived
+from the \a HELLO_Gen interface of the \a POA_HELLO_ORB CORBA module and the
+\a SALOME_Component_i class (base implementation of SALOME module engine
+exported by the KERNEL module).
+
+In particular, \a HELLO class implements \a hello() and \a goodbye() functions
+that are defined in the IDL interface \a HELLO_ORB::HELLO_Gen.
+
+\code
+HELLO_ORB::status HELLO::hello( SALOMEDS::Study_ptr study, const char* name )
+{
+...
+}
+HELLO_ORB::status HELLO::goodbye( SALOMEDS::Study_ptr study, const char* name )
+{
+...
+}
+\endcode
+
+In addition, \c HELLO.cxx implements a factory function which is used by
+the SALOME container to create an instance of the HELLO CORBA engine
+by demand:
+
+\code
+extern "C"
+{
+  PortableServer::ObjectId* HELLOEngine_factory(
+    CORBA::ORB_ptr orb,
+    PortableServer::POA_ptr poa,
+    PortableServer::ObjectId* contId,
+    const char* instanceName,
+    const char* interfaceName)
+  {
+    HELLO* myHELLO = new HELLO(orb, poa, contId, instanceName, interfaceName);
+    return myHELLO->getId();
+  }
+}
+\endcode
+
+- \c src/HELLOGUI sub-directory
+
+This directory contains the C++ source files that implement the GUI
+library of HELLO module. By default, the name of the module
+GUI library is predefined and should be set as \c lib\<MODULE\>.so
+where \c MODULE is a name of the module. In the case of the HELLO
+module, the name of the GUI library should be \c libHELLO.so. It is
+also possible to use custom name of the GUI library of a module, but
+in this case, in order to be possible to use this module in SALOME GUI
+desktop, the name of the GUI library should be defined in the
+\c SalomeApp.xml file, in the module's main section, using \a "library"
+parameter, for example:
+
+\code
+  <section name="HELLO">
+    <parameter name="name" value="Hello"/>
+    <parameter name="icon" value="HELLO.png"/>
+    <parameter name="library" value="libMyHelloGUIlibrary.so"/>
+  </section>
+\endcode
+
+The implementation of GUI library of the HELLO module should be done
+according to the architecture and rules specified by the SALOME GUI
+module. The main GUI module class (a\ HELLOGUI in our case) should be
+derived from the \a SalomeApp_Module class.
+
+The developer has to redefine a set of methods which define the
+module behavior in GUI, for example, create menus, toolbars, define
+context popup menus, objects selection behavior, implement dialog
+boxes etc.
+Here below is a short description of these methods. For more details
+please refer to the SALOME GUI module documentation.
+
+- \a initialize() - module initialization; usually used to create
+  GUI actions, menus, toolbars and so on;
+- \a activateModule() - module activation; perform actions which should
+  be done when the module is activated by the user, for example, show
+  related menus and toolbars;
+- \a deactivateModule() - module deactivation; perform actions which should
+  be done when the module is deactivated by the user, for example,
+  hide related menus and toolbars;
+- \a windows() - get a list and a position of the dockable windows to be
+  associated with the module; these windows will be automatically
+  opened and positioned according to the settings defined by the value
+  returned by this function;
+- \a viewManagers() - get a list of the compatible viewers; these viewers
+  will be automatically opened/raised on the module activation;
+- \a contextMenuPopup() - create and return context popup menu according
+  to the current selection;
+- \a createPreferences() - initialize module's preferences;
+- \a preferencesChanged() - callback function that is called when some
+  module's preference is changed by the user; allows to perform the
+  corresponding actions;
+- \a createSelection() - create and return menu selection object; this is
+  a part of the context popup menu definition API;
+- \a engineIOR() - get the reference to the module CORBA engine;
+- \a moduleIcon() and \a iconName() - these methods can be used to customize
+  the module's main icon;
+- \a displayer() - get the reference to the module's \a Displayer class; this
+  is the part of common Show/Hide functionality mechanism;
+- \a storeVisualParameters() and \a restoreVisualParameters() - these methods
+  can be redefined to store/restore different visualization attributes of the 
+  presentable data if it is supported by the module, for example transparency,
+  colors, display mode and other presentable parameters;
+- \a canCopy(), \a copy(), \a canPaste(), \a paste() - these methods are the
+  part of the common Copy/Paste functionality;
+- \a isDraggable(), \a isDropAccepted(), \a dropObjects() - these methods
+  are the part of the common Drag-n-Drop functionality;
+- \a createOperation() - this function can be used as a part of the
+  transaction-based operations mechanism.
+- \a renameAllowed(), \a renameObject() - can be used for in-place (Object
+  browser) renaming of the data entities, if it is supported by the module.
+
+Note, that all of these methods are optional and need not be
+obligatory implemented because \a SalomeApp_Module class provides a
+base implementation of these functions. It's sometimes enough to
+implement only some of them, depending on the module needs.
+
+In the case of HELLO module, only the following methods are
+implemented (other ones are just stubs, added for sample reasons):
+
+- \a engineIOR() that initializes HELLO module's engine:
+
+\code
+QString HELLOGUI::engineIOR() const
+{
+  init(); // initialize engine, if necessary
+  CORBA::String_var anIOR = getApp()->orb()->object_to_string( myEngine.in() );
+  return QString( anIOR.in() );
+}
+\endcode
+
+- \a initialize() that creates actions, menus and toolbars for module's services
+  service:
+
+\code
+void HELLOGUI::initialize( CAM_Application* app )
+{
+  // call the parent implementation
+  SalomeApp_Module::initialize( app );
+
+  // get reference to the desktop (used as a parent for actions)
+  QWidget* dsk = app->desktop();
+  // get resources manager
+  SUIT_ResourceMgr* resMgr = app->resourceMgr();
+
+  // create actions
+  // ... Test me operation
+  createAction( OpTestMe,                                               // operation id
+                tr( "TLT_OP_TESTME" ),                                  // tooltip
+                resMgr->loadPixmap( "HELLO",tr( "ICON_OP_TESTME" ) ),   // icon
+                tr( "MEN_OP_TESTME" ),                                  // menu title
+                tr( "STS_OP_TESTME" ),                                  // status tip
+                0,                                                      // accelerator (not set)
+                dsk,                                                    // parent
+                false,                                                  // togglable flag (no)
+                this,                                                   // action receiver
+                SLOT( testMe() ) );                                     // action slot
+  // create other actions ............
+
+  // create menus
+  int menuId;
+  menuId = createMenu( tr( "MEN_FILE" ), -1, -1 );                      // File menu
+  createMenu( separator(), menuId, -1, 10 );                            // add separator to File menu
+  menuId = createMenu( tr( "MEN_FILE_HELLO" ), menuId, -1, 10 );        // File - Hello submenu
+  createMenu( OpTestMe, menuId );                                       // File - Hello - Test me
+  // create other menus ............
+
+  // create toolbars
+  int aToolId;
+  aToolId = createTool ( tr( "TOOL_TEST" ) );                           // Test toolbar
+  createTool( OpTestMe, aToolId );                                      // Test - Test me
+  // create other toolbars ............
+
+  // set-up popup menu
+  QtxPopupMgr* mgr = popupMgr();
+  mgr->insert( action( OpHello ),   -1, -1 );                           // Hello
+  mgr->setRule( action( OpHello ),   baseRule + " and isComponent",  QtxPopupMgr::VisibleRule );
+  // create other popup menu commands ............
+}
+\endcode
+
+- \a activateModule() that activates menus and toolbars
+\code
+bool HELLOGUI::activateModule( SUIT_Study* theStudy )
+{
+  // call parent implementation
+  bool bOk = SalomeApp_Module::activateModule( theStudy );
+
+  // show own menus
+  setMenuShown( true );
+  // show own toolbars
+  setToolShown( true );
+
+  // return the activation status
+  return bOk;
+}
+\endcode
+
+- \a deactivateModule() that deactivates menus and toolbars
+
+\code
+bool HELLOGUI::deactivateModule( SUIT_Study* theStudy )
+{
+  // hide own menus
+  setMenuShown( false );
+  // hide own toolbars
+  setToolShown( false );
+
+  // call parent implementation and return the activation status
+  return SalomeApp_Module::deactivateModule( theStudy );
+}
+\endcode
+
+- \a windows() that set-ups dockable windows requested by the module
+
+\code
+void HELLOGUI::windows( QMap<int, int>& theMap ) const
+{
+  // want Object browser, in the left area
+  theMap.insert( SalomeApp_Application::WT_ObjectBrowser,
+                Qt::LeftDockWidgetArea );
+  // want Python console, in the bottom area
+  theMap.insert( SalomeApp_Application::WT_PyConsole,
+                Qt::BottomDockWidgetArea );
+}
+\endcode
+
+- \a isDragable(), \a isDropAccepted() and \a dropObjects() methods that handle
+the Drag-n-Drop operation
+
+\code
+bool HELLOGUI::isDragable( const SUIT_DataObject* what ) const
+{
+  // we allow dragging any HELLO object, except the top-level component
+  const SalomeApp_ModuleObject* aModObj = dynamic_cast<const SalomeApp_ModuleObject*>( what );
+  return ( aModObj == 0 );
+}
+
+bool HELLOGUI::isDropAccepted( const SUIT_DataObject* where ) const
+{
+  // we allow dropping of all objects
+  return true;
+}
+
+void HELLOGUI::dropObjects( const DataObjectList& what, SUIT_DataObject* where,
+                           const int row, Qt::DropAction action )
+{
+  if (action != Qt::CopyAction && action != Qt::MoveAction)
+    return; // unsupported action
+
+  // get parent object
+  SalomeApp_DataObject* dataObj = dynamic_cast<SalomeApp_DataObject*>( where );
+  if ( !dataObj ) return; // wrong parent
+  _PTR(SObject) parentObj = dataObj->object();
+
+  // collect objects being dropped
+  HELLO_ORB::object_list_var objects = new HELLO_ORB::object_list();
+  objects->length( what.count() );
+  int count = 0;
+  for ( int i = 0; i < what.count(); i++ ) {
+    dataObj = dynamic_cast<SalomeApp_DataObject*>( what[i] );
+    if ( !dataObj ) continue;  // skip wrong objects
+    _PTR(SObject) sobj = dataObj->object();
+    objects[i] = _CAST(SObject, sobj)->GetSObject();
+    count++;
+  }
+  objects->length( count );
+
+  // call engine function
+  engine()->copyOrMove( objects.in(),                              // what
+                       _CAST(SObject, parentObj)->GetSObject(),   // where
+                       row,                                       // row
+                       action == Qt::CopyAction );                // isCopy
+
+  // update Object browser
+  getApp()->updateObjectBrowser( false );
+}
+\endcode
+
+An implemention of the \a hello() and \a goodbye() methods is quite simple. 
+These operations show the dialog box proposing the user to enter the name and
+pass the name entered by the user to the engine side, using the corresponding
+CORBA service.
+
+\code
+void HELLOGUI::hello()
+{
+  SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( application()->activeStudy() );
+  _PTR(Study) studyDS = study->studyDS();
+
+  // request user name
+  bool ok;
+  QString name = QInputDialog::getText( getApp()->desktop(), tr( "QUE_HELLO_TITLE" ), tr( "QUE_ENTER_NAME" ),
+                                       QLineEdit::Normal, QString::null, &ok );
+
+  if ( ok && !name.trimmed().isEmpty() ) {
+    // say hello to SALOME
+    HELLO_ORB::status status = engine()->hello( _CAST(Study, studyDS)->GetStudy(), (const char*)name.toLatin1() );
+
+    // update Object browser
+    getApp()->updateObjectBrowser(true);
+
+    // process operation status
+    switch( status ) {
+    case HELLO_ORB::OP_OK:
+      // everything's OK
+      SUIT_MessageBox::information( getApp()->desktop(),
+                                   tr( "INF_HELLO_TITLE" ), 
+                                   tr( "INF_HELLO_MSG" ).arg( name ),
+                                   tr( "BUT_OK" ) );
+      break;
+    case HELLO_ORB::OP_ERR_ALREADY_MET:
+      // error: already said hello
+      SUIT_MessageBox::warning( getApp()->desktop(),
+                               tr( "INF_HELLO_TITLE" ), 
+                               tr( "ERR_HELLO_ALREADY_MET" ).arg( name ),
+                               tr( "BUT_OK" ) );
+      break;
+    case HELLO_ORB::OP_ERR_UNKNOWN:
+    default:
+      // other errors
+      SUIT_MessageBox::critical( getApp()->desktop(),
+                                tr( "INF_HELLO_TITLE" ), 
+                                tr( "ERR_ERROR" ),
+                                tr( "BUT_OK" ) );
+      break;
+    }
+  }
+}
+
+void HELLOGUI::goodbye()
+{
+  SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( application() );
+  SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( application()->activeStudy() );
+  _PTR(Study) studyDS = study->studyDS();
+  LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
+
+  QString name;
+
+  // get selection
+  SALOME_ListIO selected;
+  aSelMgr->selectedObjects( selected );
+  if ( selected.Extent() == 1 ) {
+    Handle(SALOME_InteractiveObject) io = selected.First();
+    _PTR(SObject) so = studyDS->FindObjectID( io->getEntry() );
+    if ( so ) { 
+      _PTR(SComponent) comp = so->GetFatherComponent();
+      if ( comp && comp->ComponentDataType() == "HELLO" && io->getEntry() != comp->GetID() ) {
+       name = so->GetName().c_str();
+      }
+    }
+  }
+
+  // request user name if not specified
+  if ( name.isEmpty() ) {
+    bool ok;
+    name = QInputDialog::getText( getApp()->desktop(), tr( "QUE_GOODBYE_TITLE" ), tr( "QUE_ENTER_NAME" ),
+                                 QLineEdit::Normal, QString::null, &ok );
+  }
+
+  if ( !name.trimmed().isEmpty() ) {
+    // say goodby to SALOME
+    HELLO_ORB::status status = engine()->goodbye( _CAST(Study, studyDS)->GetStudy(), (const char*)name.toLatin1() );
+
+    // update Object browser
+    getApp()->updateObjectBrowser(true);
+
+    // process operation status
+    switch( status ) {
+    case HELLO_ORB::OP_OK:
+      // everything's OK
+      SUIT_MessageBox::information( getApp()->desktop(),
+                                   tr( "INF_GOODBYE_TITLE" ), 
+                                   tr( "INF_GOODBYE_MSG" ).arg( name ),
+                                   tr( "BUT_OK" ) );
+      break;
+    case HELLO_ORB::OP_ERR_DID_NOT_MEET:
+      // error: did not say hello yet
+      SUIT_MessageBox::warning( getApp()->desktop(),
+                               tr( "INF_GOODBYE_TITLE" ), 
+                               tr( "ERR_GOODBYE_DID_NOT_MEET" ).arg( name ),
+                               tr( "BUT_OK" ) );
+      break;
+    case HELLO_ORB::OP_ERR_UNKNOWN:
+    default:
+      // other errors
+      SUIT_MessageBox::critical( getApp()->desktop(),
+                                tr( "INF_GOODBYE_TITLE" ), 
+                                tr( "ERR_ERROR" ),
+                                tr( "BUT_OK" ) );
+      break;
+    }
+  }
+}
+\endcode
+
+Also, \c HELLOGUI.cxx provide an implementation of a factory function that is used
+by the SALOME GUI to create an instance of the HELLO GUI class by demand.
+It implements also another factory function to retrieve the
+version number of the module (in the About dialog box for example):
+
+\code
+extern "C" {
+  CAM_Module* createModule()
+  {
+    return new HELLOGUI();
+  }
+
+  char* getModuleVersion() 
+  {
+    return (char*)HELLO_VERSION_STR;
+  }
+}
+\endcode
+
+\ref idl_dir "<< Previous"<br>\ref bin_dir ">> Next"
+
+\page bin_dir The bin directory
+
+The file \c VERSION.in is used to document the module, it must define its
+version and (optionally) its compatibilities or incompatibilities with
+other modules. Therefore, it is strongly recommended but is not
+essential for correct operation of the module.
+
+The \c runAppli.in file is the equivalent of the \c runSalome script
+distributed by the KERNEL module but configured to start SALOME
+session with HELLO module only.
+
+The \c myrunSalome.py file reuses part of functionality provided by the
+KERNEL's \c runSalome.py script. It is used to run SALOME session and
+start HELLO module in this session. 
+
+\ref src_dir "<< Previous"<br>\ref doc_dir ">> Next"
+
+\page doc_dir The doc directory
+
+This directory provides documentation files of the module. The
+documentation of the module can be implemented in the arbitrary
+way. But if you want your documentation to appear in the SALOME GUI
+desktop's Help menu, some specific actions should be done as follows.
+
+The documentation should be generated in the HTML format. For example,
+the documentation of the HELLO module is generated using Doxygen
+tool. It allows to generate structured set of HTML pages from the set
+of input plain text files. Input source files should include Doxygen
+tags and optionally direct HTML tags. For more details please refer to
+the Doxygen documentation.
+
+The resulting documentation of a module should include at least one
+file \c index.html. All the HTML and image files should be exported by
+the build procedure to the following directory:
+\c \<module_installation_dir\>/share/doc/salome/gui/\<MODULE\>
+where \c module_installation_dir is a module installation folder and
+\c MODULE is its name. For example, for HELLO module, at least one file
+should exist:
+\c \<HELLO_module_installation_dir\>/share/doc/salome/gui/HELLO/index.html. 
+
+The SALOME GUI automatically searches for the index.html file in the
+mentioned module directory. If the file is found, the corresponding
+menu command is automatically added to the Help menu of the SALOME GUI
+desktop.
+
+\ref bin_dir "<< Previous"<br>\ref build_procedure ">> Next"
+
+\page build_procedure Construction, installation
+
+Before building HELLO module, please ensure that SALOME environment is
+set properly. Assume that SALOME environment is set in env_products.sh
+script. In order to build and install HELLO module, you have to
+perform several steps:
+
+<pre>
+[bash% ] source env_products.sh
+[bash% ] mkdir HELLO_BUILD
+[bash% ] cd HELLO_BUILD
+[bash% ] ../HELLO1_SRC/build_configure
+[bash% ] ../HELLO1_SRC/configure --prefix=\<HELLO_module_installation_dir\>
+[bash% ] make
+[bash% ] make install
+</pre>
+
+The first command creates a build directory for the HELLO module. Then
+next step is to cd to this build directory. From this directory you
+sequentially invoke \c build_configure, \c configure, \c make and \c make install
+commands. On each step, you have to ensure that the operation is
+finished correctly (no errors raised).
+
+The \c \<HELLO_module_installation_dir\> variable above defines the
+destination directory to which the HELLO module should be
+installed. After the last step is finished, the HELLO module is built
+and installed to the \c \<HELLO_module_installation_dir\> directory.
+
+\ref doc_dir "<< Previous"<br>\ref run_procedure ">> Next"
+
+\page run_procedure Running SALOME
+
+Go to the the \c \<HELLO_module_installation_dir\> directory and type:
+
+<pre>
+[bash% ] ./bin/salome/runAppli
+</pre>
+
+This command runs SALOME session configured for KERNEL and the HELLO
+module. At the end of running, the user will be prompted by the
+Python interpreter command line configured for SALOME that provides
+access to SALOME Python API (including CORBA interfaces).
+
+The \c runAppli file is a shell script that executes a Python commands
+running SALOME session by passing arguments to it in a command line:
+       
+<pre>
+${KERNEL_ROOT_DIR}/bin/salome/envSalome.py python -i $HELLO_ROOT_DIR/bin/salome/myrunSalome.py --modules=HELLO --killall
+</pre>
+
+These arguments state that the \c myrunSalome.py script located in the
+HELLO module will be used, that the HELLO component will be
+activated and all previously running SALOME sessions should be
+shutdowned.
+
+This command will not function unless the following environment
+variables have previously been set:
+
+<pre>
+export KERNEL_ROOT_DIR=\<KERNEL_module_installation_dir\>
+export HELLO_ROOT_DIR=\<HELLO_module_installation_dir\>
+</pre>
+
+\warning It is possible that the SALOME run will not reach the end.
+In some circumstances, the time to start CORBA servers may be long and
+could exceed the timeout. If the reasons is that the time to
+load dynamic libraries is long, it is possible that a second run
+immediately afterwards will be successful.
+\ref build_procedure "<< Previous"<br>\ref load_module ">> Next"
+
+\page load_module Loading HELLO component
+
+The \a HELLO_ORB module has to be imported before making a request to
+load the component into the container, to obtain access to methods of
+the component.  This container is made accessible in the \c myrunSalome.py
+by means of the \a container variable:
+
+<pre>
+>> import salome
+>> salome.salome_init()
+>> import HELLO_ORB
+>> c = container.load_impl("HELLO", "HELLO")
+>> c.hello(salome.myStudy, "Christian")
+</pre>
+
+The last instruction invokes HELLO module's service \a hello(). Proceed as
+follows to see the CORBA objects created by these actions:
+
+<pre>
+>> clt.showNS()
+</pre>
+
+\ref run_procedure "<< Previous"<br>\ref catalog_def ">> Next"
+
+\page catalog_def HELLO module catalog definition
+
+In the example from the previous chapter, the HELLO component was
+loaded by making a direct request to the SALOME container. This is not
+the standard method for loading of a component. The normal way uses
+the SALOME LifeCycle service that invokes SALOME Module Catalog
+services to identify the component and its properties and then calls
+the requested container to load the component. 
+
+Before this method can be used, the component must be declared in a
+catalog in the XML format, for which the name must be
+\c \<MODULE\>Catalog.xml. In our case, it will be \c HELLOCatalog.xml.
+Usually this catalog is put to the resources sub-directory of the
+directory tree. The simplest way to create this file is to use Catalog
+Generator utility provided by the SALOME KERNEL module, that can
+automatically generate XML description file from the IDL file.
+
+\ref load_module "<< Previous"<br>\ref load_lcc ">> Next"
+
+\page load_lcc Loading HELLO component via LifeCycle service
+
+The method of loading the component is not very different from that
+is described above. The services of the LifeCycle module are used in
+this case instead of calling the container directly. The call sequence
+is contained in the \c myrunSalome.py \a test() function.
+
+<pre>
+    import salome
+    salome.salome_init()
+    c = test(clt)
+    c.hello(salome.myStudy, "Christian")
+</pre>
+
+The test function creates the LifeCycle object. It then asks for the
+HELLO component to be loaded in the \a FactoryServer container:
+
+\code
+def test(clt):
+    """
+    Test function that creates an instance of HELLO component
+    usage : hello=test(clt)
+    """
+    import LifeCycleCORBA
+    lcc = LifeCycleCORBA.LifeCycleCORBA(clt.orb)
+    import HELLO_ORB
+    hello = lcc.FindOrLoadComponent("FactoryServer", "HELLO")
+    return hello
+\endcode
+
+\ref catalog_def "<< Previous"<br>\ref load_iapp ">> Next"
+
+\page load_iapp Loading from the GUI (IAPP)
+
+In order to activate HELLO module in the SALOME GUI desktop, the user
+should press the HELLO module's button on the \a Modules toolbar or
+select the name of the module in the combo box on this toolbar.
+
+The image file to be used as an icon of a module should be exported by
+the module build procedure. The icon file name is defined in \c SalomeApp.xml:
+\code
+  <section name="HELLO">
+    <parameter name="name" value="Hello"/>
+    <parameter name="icon" value="HELLO.png"/>
+  </section>
+\endcode
+
+\ref load_lcc "<< Previous"
+
+*/
index cd9329091cc664d09457377302e6d49acf311a30..6fa9c51d8e7521e0f3692dd20d7e123b35d2c5ec 100755 (executable)
@@ -19,5 +19,5 @@ $extrastylesheet
 <body>
 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
 
-<div id="titlearea"><div align="right"><div class="version">Version: @VERSION@</div></div></div>
+<div id="titlearea"><div align="right"><div class="version">Version: @SALOMEHELLO_VERSION@</div></div></div>
 <!-- end header part -->
diff --git a/idl/CMakeLists.txt b/idl/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..231d4f8
--- /dev/null
@@ -0,0 +1,41 @@
+# Copyright (C) 2012-2013  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.
+#
+# 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
+#
+
+INCLUDE(UseOmniORB)  # Provided by KERNEL
+
+INCLUDE_DIRECTORIES(
+  ${OMNIORB_INCLUDE_DIR}
+  ${KERNEL_INCLUDE_DIRS}
+  ${PROJECT_BINARY_DIR}/idl
+)
+
+SET(SalomeIDLHELLO_IDLSOURCES
+  HELLO_Gen.idl
+)
+
+SET(_idl_include_dirs
+  ${KERNEL_ROOT_DIR}/idl/salome
+)
+
+SET(_idl_link_flags
+  ${KERNEL_SalomeIDLKernel}
+)
+
+OMNIORB_ADD_MODULE(SalomeIDLHELLO "${SalomeIDLHELLO_IDLSOURCES}" "${_idl_include_dirs}" "${_idl_link_flags}")
+INSTALL(TARGETS SalomeIDLHELLO EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
\ No newline at end of file
diff --git a/idl/Makefile.am b/idl/Makefile.am
deleted file mode 100644 (file)
index 84326e9..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-# Copyright (C) 2007-2013  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.
-#
-# 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
-#
-
-# This Makefile is responsible of generating the client and server
-# implementation of IDL interfaces for both C++ and python usage.
-# The building process of the C++ files is in charge of each source
-# package and then is not manage here.
-#
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-
-BASEIDL_FILES = HELLO_Gen.idl
-
-BASEIDL_FILES_PY=$(BASEIDL_FILES:%.idl=%_idl.py)
-
-# This variable defines the files to be installed
-dist_salomeidl_DATA = $(BASEIDL_FILES)
-
-# GUI idl common library
-lib_LTLIBRARIES = libSalomeIDLHELLO.la
-
-# Sources built from idl files
-nodist_libSalomeIDLHELLO_la_SOURCES = \
-       HELLO_GenSK.cc \
-       HELLO_GenDynSK.cc
-HELLO_GenDynSK.cc: HELLO_GenSK.cc
-
-# header files must be exported: other modules have to use this library
-nodist_salomeinclude_HEADERS = $(BASEIDL_FILES:%.idl=%.hh)
-
-libSalomeIDLHELLO_la_CPPFLAGS =                        \
-       $(KERNEL_CXXFLAGS)                      \
-       -I$(top_builddir)/idl                   \
-       @CORBA_CXXFLAGS@                        \
-       @CORBA_INCLUDES@
-
-libSalomeIDLHELLO_la_LDFLAGS = -no-undefined -version-info=0:0:0
-libSalomeIDLHELLO_la_LIBADD  =                 \
-       $(KERNEL_LDFLAGS) -lSalomeIDLKernel     \
-       @CORBA_LIBS@
-
-# These variables defines the building process of CORBA files
-OMNIORB_IDL         = @OMNIORB_IDL@
-OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@
-OMNIORB_IDLPYFLAGS  = \
-       @OMNIORB_IDLPYFLAGS@ \
-       -I$(top_builddir)/idl/salome \
-       -I$(KERNEL_ROOT_DIR)/idl/salome
-
-IDLCXXFLAGS = \
-       -bcxx \
-       @IDLCXXFLAGS@ \
-       -I$(top_builddir)/idl/salome \
-       -I$(KERNEL_ROOT_DIR)/idl/salome
-IDLPYFLAGS  = \
-       @IDLPYFLAGS@ \
-       -I$(KERNEL_ROOT_DIR)/idl/salome
-
-# potential problem on parallel make on the following - multiple outputs
-SUFFIXES = .idl .hh SK.cc
-.idlSK.cc:
-       $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
-.idl.hh:
-       $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
-
-install-exec-local: $(BASEIDL_FILES:%=$(top_srcdir)/idl/%)
-       $(INSTALL) -d  $(DESTDIR)$(salomepythondir)
-       ls $^ | while read file; do \
-         $(OMNIORB_IDL) $(IDLPYFLAGS) -C$(DESTDIR)$(salomepythondir) $$file ; \
-       done
-
-# we want to remove only staff generated for IDL files and nothing more
-uninstall-local:
-       @for modulen in HELLO_ORB ; do \
-         test -d $(DESTDIR)$(salomepythondir)/$${modulen} && echo "Removing $(DESTDIR)$(salomepythondir)/$${modulen}" && rm -rf $(DESTDIR)$(salomepythondir)/$${modulen} ; \
-         test -d $(DESTDIR)$(salomepythondir)/$${modulen}__POA && echo "Removing $(DESTDIR)$(salomepythondir)/$${modulen}__POA" && rm -rf $(DESTDIR)$(salomepythondir)/$${modulen}__POA ; \
-       done ; \
-       for filen in $(BASEIDL_FILES_PY) ; do \
-         echo "Removing $(DESTDIR)$(salomepythondir)/$${filen}" && rm -f $(DESTDIR)$(salomepythondir)/$${filen}* ; \
-       done
-
-mostlyclean-local:
-       -rm -f *.hh *.cc .depidl
-
-# we use cpp to generate dependencies between idl files.
-# option x c tells the preprocessor to consider idl as a c file.
-# if an idl is modified, all idl dependencies are rebuilt
-
-.depidl: $(BASEIDL_FILES)
-       @echo "" > $@
-       @for dep in $^ dummy; do \
-         if [ $$dep != "dummy" ]; then \
-           echo Building dependencies for $$dep; \
-           $(CPP) $(C_DEPEND_FLAG) -x c -I$(srcdir) -I$(KERNEL_ROOT_DIR)/idl/salome $$dep 2>/dev/null | \
-           sed 's/\.o/\SK.cc/' >>$@; \
-         fi; \
-       done ;
-
--include .depidl
diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..d8a9da5
--- /dev/null
@@ -0,0 +1,33 @@
+# 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
+#
+
+SET(HELLO_RESOURCES_FILES
+  goodbye.png
+  handshake.png
+  HELLO.png
+  testme.png
+)
+
+INSTALL(FILES ${HELLO_RESOURCES_FILES} DESTINATION ${SALOME_HELLO_INSTALL_RES_DATA})
+
+SALOME_CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/SalomeApp.xml.in ${CMAKE_CURRENT_BINARY_DIR}/SalomeApp.xml INSTALL ${SALOME_HELLO_INSTALL_RES_DATA})
+SALOME_CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/HELLOCatalog.xml.in ${CMAKE_CURRENT_BINARY_DIR}/HELLOCatalog.xml INSTALL ${SALOME_HELLO_INSTALL_RES_DATA})
\ No newline at end of file
index 1d9f1dea610e1c88ce78e3af46dd59988fba8306..9b600ef113db1cfa1666d9465f051c2c19ea4a4c 100644 (file)
@@ -40,7 +40,7 @@
             <component-username>Hello</component-username>
             <component-type>OTHER</component-type>
             <component-author>Vadim SANDLER</component-author>
-            <component-version>@VERSION@</component-version>
+            <component-version>@SALOMEHELLO_VERSION@</component-version>
             <component-comment>Sample module</component-comment>
             <component-multistudy>1</component-multistudy>
             <component-impltype>1</component-impltype>
@@ -54,7 +54,7 @@
                     <component-service>
                         <service-name>hello</service-name>
                         <service-author>Vadim SANDLER</service-author>
-                        <service-version>@VERSION@</service-version>
+                        <service-version>@SALOMEHELLO_VERSION@</service-version>
                         <service-comment>Hello function</service-comment>
                         <service-by-default>1</service-by-default>
                         <inParameter-list>
@@ -81,7 +81,7 @@
                     <component-service>
                         <service-name>goodbye</service-name>
                         <service-author>Vadim SANDLER</service-author>
-                        <service-version>@VERSION@</service-version>
+                        <service-version>@SALOMEHELLO_VERSION@</service-version>
                         <service-comment>Goodbye function</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
diff --git a/resources/Makefile.am b/resources/Makefile.am
deleted file mode 100644 (file)
index 3af56a0..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (C) 2007-2013  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.
-#
-# 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
-#
-
-#  $Header$
-#
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-
-dist_salomeres_DATA = \
-HELLO.png \
-handshake.png \
-goodbye.png \
-testme.png
-
-# VSR: little trick to avoid putting if HELLOCatalog.xml to the distribution archive
-nodist_salomeres_SCRIPTS = HELLOCatalog.xml SalomeApp.xml
index 99ee50637922c8c92a5a83a916344d8691d25fb3..f6e3b49cb029270b534a87b1adbc2b12f0fbb0d2 100644 (file)
@@ -26,7 +26,7 @@
     <!-- Major module parameters -->
     <parameter name="name"            value="Hello"/>
     <parameter name="icon"            value="HELLO.png"/>
-    <parameter name="version"         value="@VERSION@"/>
+    <parameter name="version"         value="@SALOMEHELLO_VERSION@"/>
     <parameter name="documentation"   value="hello_help"/>
   </section>
   <section name="resources">
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..c6a64d2
--- /dev/null
@@ -0,0 +1,34 @@
+# Copyright (C) 2012-2013  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.
+#
+# 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
+#
+
+##
+# Common packages
+##
+SET(SUBDIRS_COMMON
+  HELLO HELLOGUI
+)
+
+SET(SUBDIRS
+  ${SUBDIRS_COMMON}
+)
+
+FOREACH(dir ${SUBDIRS})
+ ADD_SUBDIRECTORY(${dir})
+ENDFOREACH(dir ${SUBDIRS})
+            
diff --git a/src/HELLO/CMakeLists.txt b/src/HELLO/CMakeLists.txt
new file mode 100644 (file)
index 0000000..b517c8b
--- /dev/null
@@ -0,0 +1,58 @@
+# Copyright (C) 2012-2013  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.
+#
+# 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
+#
+
+# --- options ---
+# additional include directories
+INCLUDE_DIRECTORIES(
+  ${KERNEL_INCLUDE_DIRS}
+  ${OMNIORB_INCLUDE_DIR}
+  ${PROJECT_BINARY_DIR}
+  ${PROJECT_BINARY_DIR}/idl
+)
+
+# libraries to link to
+SET(_link_LIBRARIES
+  ${OMNIORB_LIBRARIES}
+  ${KERNEL_SalomeIDLKernel}
+  ${KERNEL_OpUtil}
+  ${KERNEL_SalomeContainer}
+  SalomeIDLHELLO
+)
+
+# --- headers ---
+
+# header files / no moc processing
+SET(HELLO_HEADERS
+  HELLO.hxx
+)
+
+# --- sources ---
+
+# sources / static
+SET(HELLO_SOURCES
+  HELLO.cxx
+)
+
+# --- rules ---
+
+ADD_LIBRARY(HELLOEngine ${HELLO_SOURCES})
+TARGET_LINK_LIBRARIES(HELLOEngine ${_link_LIBRARIES} )
+INSTALL(TARGETS HELLOEngine EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
+
+INSTALL(FILES ${HELLO_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})
\ No newline at end of file
index d400bb1818087792b37d29045d12963e4525dd83..9e71b482f43652aed60b74ceabf86f9adcd3f8f1 100755 (executable)
@@ -252,7 +252,7 @@ void HELLO::copyOrMove( const HELLO_ORB::object_list& what,
 // Version information
 char* HELLO::getVersion()
 {
-#if HELLO_DEVELOPMENT
+#if defined(HELLO_DEVELOPMENT)
   return CORBA::string_dup(HELLO_VERSION_STR"dev");
 #else
   return CORBA::string_dup(HELLO_VERSION_STR);
diff --git a/src/HELLO/Makefile.am b/src/HELLO/Makefile.am
deleted file mode 100755 (executable)
index c908af8..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (C) 2007-2013  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.
-#
-# 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
-#
-
-#  SuperVisionTest AddComponent : example of component that adds two numbers
-#  File   : Makefile.in
-#  Author : , CEA
-#  Modified by : Alexander BORODIN (OCN) - autotools usage
-#
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-
-# header files 
-salomeinclude_HEADERS = HELLO.hxx
-
-# Libraries targets
-lib_LTLIBRARIES = libHELLOEngine.la
-dist_libHELLOEngine_la_SOURCES = \
-       HELLO.cxx
-
-libHELLOEngine_la_CPPFLAGS = \
-       $(CORBA_CXXFLAGS) \
-       $(CORBA_INCLUDES) \
-       $(KERNEL_CXXFLAGS) \
-       -I$(top_builddir)/idl \
-       -I$(top_builddir)
-
-libHELLOEngine_la_LDFLAGS = \
-       ../../idl/libSalomeIDLHELLO.la \
-       $(KERNEL_LDFLAGS) \
-       -lSalomeContainer \
-       -lOpUtil \
-       -lSalomeIDLKernel
\ No newline at end of file
diff --git a/src/HELLOGUI/CMakeLists.txt b/src/HELLOGUI/CMakeLists.txt
new file mode 100644 (file)
index 0000000..8621e69
--- /dev/null
@@ -0,0 +1,91 @@
+# Copyright (C) 2012-2013  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.
+#
+# 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
+#
+
+INCLUDE(UseQt4Ext)
+
+# --- options ---
+# additional include directories
+INCLUDE_DIRECTORIES(
+  ${QT_INCLUDES}
+  ${CAS_INCLUDE_DIRS}
+  ${PYTHON_INCLUDE_DIRS}
+  ${Boost_INCLUDE_DIRS}
+  ${OMNIORB_INCLUDE_DIR}
+  ${KERNEL_INCLUDE_DIRS}
+  ${GUI_INCLUDE_DIRS}
+  ${PROJECT_BINARY_DIR}
+  ${PROJECT_BINARY_DIR}/idl
+  ${PROJECT_SOURCE_DIR}/src/HELLO
+)
+
+# additional preprocessor / compiler flags
+ADD_DEFINITIONS(
+  ${QT_DEFINITIONS}
+  ${OMNIORB_DEFINITIONS}
+  ${CAS_DEFINITIONS}
+  ${BOOST_DEFINITIONS}
+  ${PYTHON_DEFINITIONS}
+)
+
+# libraries to link to
+SET(_link_LIBRARIES
+  ${KERNEL_SalomeLifeCycleCORBA}
+  ${KERNEL_SalomeDS}
+  ${GUI_SalomeApp}
+  HELLOEngine
+)
+
+# --- headers ---
+
+# header files / to be processed by moc
+SET(HELLOGUI_HEADERS
+  HELLOGUI.h
+)
+
+# --- sources ---
+
+# sources / moc wrappings
+QT4_WRAP_CPP(_moc_SOURCES ${HELLOGUI_HEADERS})
+
+
+# sources / static
+SET(_other_SOURCES
+  HELLOGUI.cxx
+)
+
+# sources / to compile
+SET(HELLOGUI_SOURCES ${_other_SOURCES} ${_moc_SOURCES})
+
+# --- resources ---
+
+# resource files / to be processed by lrelease
+SET(_ts_RESOURCES
+  HELLO_icons.ts
+  HELLO_msg_en.ts
+  HELLO_msg_fr.ts
+) 
+
+# --- rules ---
+
+ADD_LIBRARY(HELLO ${HELLOGUI_SOURCES})
+TARGET_LINK_LIBRARIES(HELLO SalomeIDLHELLO ${_link_LIBRARIES} )
+INSTALL(TARGETS HELLO EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
+
+INSTALL(FILES ${HELLOGUI_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})
+QT4_INSTALL_TS_RESOURCES("${_ts_RESOURCES}" "${SALOME_HELLO_INSTALL_RES_DATA}")
diff --git a/src/HELLOGUI/Makefile.am b/src/HELLOGUI/Makefile.am
deleted file mode 100644 (file)
index 2dc7606..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright (C) 2007-2013  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.
-#
-# 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
-#
-
-# -* Makefile *- 
-# Author : 
-# Modified by : Alexander BORODIN (OCN) - autotools usage
-# Module : GHS3DPLUGIN
-#
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-
-# header files 
-salomeinclude_HEADERS = \
-       HELLOGUI.h
-
-# Libraries targets
-lib_LTLIBRARIES = libHELLO.la
-
-dist_libHELLO_la_SOURCES = \
-       HELLOGUI.cxx
-
-# MOC pre-processing
-MOC_FILES = \
-       HELLOGUI_moc.cxx
-
-nodist_libHELLO_la_SOURCES = $(MOC_FILES)
-
-libHELLO_la_CPPFLAGS = \
-       $(QT_INCLUDES) \
-       $(CAS_CPPFLAGS) \
-       $(PYTHON_INCLUDES) \
-       $(BOOST_CPPFLAGS) \
-       $(CORBA_CXXFLAGS) \
-       $(CORBA_INCLUDES) \
-       $(KERNEL_CXXFLAGS) \
-       $(GUI_CXXFLAGS) \
-       -I$(srcdir)/../HELLO \
-       -I$(top_builddir)/idl \
-       -I$(top_builddir)
-
-libHELLO_la_LDFLAGS  = \
-       ../../idl/libSalomeIDLHELLO.la \
-       ../HELLO/libHELLOEngine.la \
-       $(KERNEL_LDFLAGS) -lSalomeLifeCycleCORBA \
-       $(GUI_LDFLAGS) \
-       -lSalomeApp
-
-# resources files
-nodist_salomeres_DATA = \
-       HELLO_msg_en.qm \
-       HELLO_msg_fr.qm \
-       HELLO_icons.qm
diff --git a/src/Makefile.am b/src/Makefile.am
deleted file mode 100755 (executable)
index 6a7cba7..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (C) 2007-2013  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.
-#
-# 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
-#
-
-#  File   : Makefile.in
-#  Author : (CEA)
-#  Modified by : Alexander BORODIN (OCN) - autotools usage
-#
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-
-SUBDIRS = HELLO
-
-if HELLO_ENABLE_GUI
-  SUBDIRS += HELLOGUI
-endif