Salome HOME
[PY3] Fix m4 macro for python 3
[modules/kernel.git] / src / Launcher / CMakeLists.txt
index b314fdcc1cc5e00482ae8e329087796db5aa0c0d..e85ee37b1628edb26b8ac9ae71b8f02a2a921d83 100755 (executable)
@@ -1,9 +1,9 @@
-# Copyright (C) 2012  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
+IF(SALOME_BUILD_TESTS)
+  ADD_SUBDIRECTORY(Test)
+ENDIF(SALOME_BUILD_TESTS)
+
 INCLUDE_DIRECTORIES(
-  ${LIBXML_INCLUDE_DIRS}
-  ${OMNIORB_INCLUDE_DIRS}
+  ${LIBXML2_INCLUDE_DIR}
+  ${OMNIORB_INCLUDE_DIR}
   ${PYTHON_INCLUDE_DIRS}
-  ${PTHREAD_INCLUDE_DIRS}
-  ${MPI_INCLUDE_DIRS}
+  ${PTHREAD_INCLUDE_DIR}
   ${LIBBATCH_INCLUDE_DIRS}
-  ${CMAKE_BINARY_DIR}/salome_adm
+  ${PROJECT_BINARY_DIR}/salome_adm
   ${CMAKE_CURRENT_SOURCE_DIR}/../Basics
   ${CMAKE_CURRENT_SOURCE_DIR}/../SALOMELocalTrace
   ${CMAKE_CURRENT_SOURCE_DIR}/../NamingService
@@ -33,15 +36,14 @@ INCLUDE_DIRECTORIES(
   ${CMAKE_CURRENT_SOURCE_DIR}/../Notification
   ${CMAKE_CURRENT_SOURCE_DIR}/../Container
   ${CMAKE_CURRENT_SOURCE_DIR}/../ResourcesManager
-  ${CMAKE_BINARY_DIR}/idl
+  ${CMAKE_CURRENT_SOURCE_DIR}/../SALOMESDS
+  ${PROJECT_BINARY_DIR}/idl
 )
-SET(WITH_LIBBATCH_FLAG)
-IF(WITH_LIBBATCH)
-  SET(WITH_LIBBATCH_FLAG "-DWITH_LIBBATCH")
-ENDIF(WITH_LIBBATCH)
 
-# This local variable defines the list of FLAGS common to all target in this package.
-SET(COMMON_FLAGS "${MPI_DEFINITIONS} ${LIBXML_DEFINITIONS} ${OMNIORB_DEFINITIONS} ${WITH_LIBBATCH_FLAG} ${PLATFORM_DEFINITIONS}")
+ADD_DEFINITIONS(${LIBXML2_DEFINITIONS} ${OMNIORB_DEFINITIONS})
+IF(SALOME_USE_LIBBATCH)
+  ADD_DEFINITIONS(-DWITH_LIBBATCH)
+ENDIF(SALOME_USE_LIBBATCH)
 
 # This local variable defines the list of dependant libraries common to all target in this package.
 SET(COMMON_LIBS
@@ -54,69 +56,72 @@ SET(COMMON_LIBS
   SALOMELocalTrace
   SALOMEBasics
   SalomeIDLKernel
-  ${LIBBATCH_LIBS}
-  ${MPI_LIBS}
-  ${OMNIORB_LIBS}
-  ${LIBXML_LIBS}
-  ${PYTHON_LIBS}
+  ${LIBBATCH_LIBRARIES}
+  ${OMNIORB_LIBRARIES}
+  ${LIBXML2_LIBRARIES}
+  ${PYTHON_LIBRARIES}
 )
 
 SET(Launcher_SOURCES
   SALOME_Launcher_Parser.cxx
   SALOME_Launcher_Handler.cxx
-  Launcher_Utils.hxx
   Launcher_Job.cxx
   Launcher_Job_Command.cxx
   Launcher_Job_SALOME.cxx
   Launcher_Job_PythonSALOME.cxx
   Launcher_Job_YACSFile.cxx
   Launcher.cxx
+  Launcher_XML_Persistence.cxx
 )
-SET(Launcher_FLAGS "${MPI_DEFINITIONS} ${LIBXML_DEFINITIONS} ${LIBBATCH_DEFINITIONS} ${WITH_LIBBATCH_FLAG} ${PLATFORM_DEFINITIONS}")
 
-ADD_LIBRARY(Launcher SHARED ${Launcher_SOURCES})
-SET_TARGET_PROPERTIES(Launcher PROPERTIES COMPILE_FLAGS "${Launcher_FLAGS}")
-TARGET_LINK_LIBRARIES(Launcher ResourcesManager ${LIBBATCH_LIBS} ${MPI_LIBS} ${LIBXML_LIBS})
-INSTALL(TARGETS Launcher DESTINATION ${KERNEL_salomelib_LIBS})
+ADD_LIBRARY(Launcher ${Launcher_SOURCES})
+TARGET_LINK_LIBRARIES(Launcher ResourcesManager ${LIBBATCH_LIBRARIES} ${LIBXML2_LIBS})
+INSTALL(TARGETS Launcher EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
 
 SET(TestLauncher_LIBS
-  ${LIBXML_LIBS}
+  ${LIBXML2_LIBRARIES}
   ResourcesManager
   Launcher
-  OpUtil
-  ${LIBBATCH_LIBS}
+  ${LIBBATCH_LIBRARIES}
 )
 
+# TestLauncher needs only (and must need only) libxml, libbatch, ResourceManager and Launcher libraries!
 ADD_EXECUTABLE(TestLauncher TestLauncher.cxx)
-SET_TARGET_PROPERTIES(TestLauncher PROPERTIES COMPILE_FLAGS "${LIBXML_DEFINITIONS} ${LIBBATCH_DEFINITIONS} ${WITH_LIBBATCH_FLAG} ${PLATFORM_DEFINITIONS}")
 TARGET_LINK_LIBRARIES(TestLauncher ${TestLauncher_LIBS})
-INSTALL(TARGETS TestLauncher DESTINATION ${KERNEL_salomebin_BINS})
-
-IF(NOT WITHONLYLAUNCHER)
-  ADD_LIBRARY(SalomeLauncher SHARED BatchTest.cxx SALOME_Launcher.cxx)
-  SET_TARGET_PROPERTIES(SalomeLauncher PROPERTIES COMPILE_FLAGS "${COMMON_FLAGS}")
-  TARGET_LINK_LIBRARIES(SalomeLauncher Launcher ${COMMON_LIBS})
-  INSTALL(TARGETS SalomeLauncher DESTINATION ${KERNEL_salomelib_LIBS})
-  
-  SET(SALOME_LauncherServer_LIBS
-    Launcher
-    SalomeLauncher
-    SALOMEBasics
-    SALOMELocalTrace
-    ${LIBBATCH_LIBS}
-    ${MPI_LIBS}
-    ${OMNIORB_LIBS}
-    ${LIBXML_LIBS}
-    ${PYTHON_LIBS}
-  )
+INSTALL(TARGETS TestLauncher DESTINATION ${SALOME_INSTALL_BINS})
 
+ADD_LIBRARY(SalomeLauncher BatchTest.cxx SALOME_Launcher.cxx)
+TARGET_LINK_LIBRARIES(SalomeLauncher Launcher ${COMMON_LIBS})
+INSTALL(TARGETS SalomeLauncher EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
   
+SET(SALOME_LauncherServer_LIBS
+  Launcher
+  SalomeLauncher
+  SalomeSDS
+  SALOMEBasics
+  SALOMELocalTrace
+  ${LIBBATCH_LIBRARIES}
+  ${OMNIORB_LIBRARIES}
+  ${LIBXML2_LIBRARIES}
+  ${PYTHON_LIBRARIES}
+)
 
-  ADD_EXECUTABLE(SALOME_LauncherServer SALOME_LauncherServer.cxx)
-  SET_TARGET_PROPERTIES(SALOME_LauncherServer PROPERTIES COMPILE_FLAGS "${COMMON_FLAGS}")
-  TARGET_LINK_LIBRARIES(SALOME_LauncherServer ${SALOME_LauncherServer_LIBS})
-  INSTALL(TARGETS SALOME_LauncherServer DESTINATION ${KERNEL_salomebin_BINS})
-ENDIF(NOT WITHONLYLAUNCHER)
+ADD_EXECUTABLE(SALOME_LauncherServer SALOME_LauncherServer.cxx)
+TARGET_LINK_LIBRARIES(SALOME_LauncherServer ${SALOME_LauncherServer_LIBS})
+INSTALL(TARGETS SALOME_LauncherServer EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_BINS})
 
-FILE(GLOB COMMON_HEADERS_HXX "${CMAKE_CURRENT_SOURCE_DIR}/*.hxx")
-INSTALL(FILES ${COMMON_HEADERS_HXX} DESTINATION ${KERNEL_salomeinclude_HEADERS})
+SET(COMMON_HEADERS_HXX
+  BatchTest.hxx
+  Launcher.hxx
+  Launcher_Job.hxx
+  Launcher_Job_Command.hxx
+  Launcher_Job_PythonSALOME.hxx
+  Launcher_Job_SALOME.hxx
+  Launcher_Job_YACSFile.hxx
+  Launcher_Utils.hxx
+  SALOME_Launcher.hxx
+  SALOME_Launcher_Parser.hxx
+  SALOME_Launcher_defs.hxx
+)
+INSTALL(FILES ${COMMON_HEADERS_HXX} DESTINATION ${SALOME_INSTALL_HEADERS})
+INSTALL(FILES testLauncher.xml DESTINATION ${SALOME_KERNEL_INSTALL_RES_DATA})