1 # Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
3 # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 # This library is free software; you can redistribute it and/or
7 # modify it under the terms of the GNU Lesser General Public
8 # License as published by the Free Software Foundation; either
9 # version 2.1 of the License.
11 # This library is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 # Lesser General Public License for more details.
16 # You should have received a copy of the GNU Lesser General Public
17 # License along with this library; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 # These macros are used to create the lists of source files and header files in global variables.
24 # If we move to cmake 2.6, this can be done more cleanly with the PARENT_SCOPE option.
25 MACRO(APPEND_TO_GLOBAL_VAR VAR)
26 SET(${VAR} ${${VAR}} ${ARGN} CACHE INTERNAL "")
27 ENDMACRO(APPEND_TO_GLOBAL_VAR)
29 MACRO(APPEND_CLASSES_TO_SRC_FILES)
30 FOREACH(CLASS ${ARGV})
31 APPEND_TO_GLOBAL_VAR(SRC_FILES_BUILD ${CLASS}.cxx)
32 ENDFOREACH(CLASS ${ARGV})
33 ENDMACRO(APPEND_CLASSES_TO_SRC_FILES)
35 MACRO(APPEND_CLASSES_TO_HDR_FILES)
36 FOREACH(CLASS ${ARGV})
37 APPEND_TO_GLOBAL_VAR(HDR_FILES_BUILD ${CLASS}.hxx)
38 ENDFOREACH(CLASS ${ARGV})
39 ENDMACRO(APPEND_CLASSES_TO_HDR_FILES)
43 add_subdirectory (Core)
45 IF (BUILD_LOCAL_SUBMISSION)
46 add_subdirectory (Local)
47 ENDIF (BUILD_LOCAL_SUBMISSION)
49 add_subdirectory (LSF)
50 add_subdirectory (PBS)
51 add_subdirectory (SGE)
53 # Make a copy of the built value and clear the built value for the next run of cmake
54 SET(SRC_FILES ${SRC_FILES_BUILD} CACHE INTERNAL "")
55 SET(SRC_FILES_BUILD CACHE INTERNAL "")
57 SET(HDR_FILES ${HDR_FILES_BUILD} CACHE INTERNAL "")
58 SET(HDR_FILES_BUILD CACHE INTERNAL "")
61 add_library (Batch SHARED ${SRC_FILES})
63 include_directories(${CMAKE_BINARY_DIR})
64 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Core)
66 target_link_libraries(Batch ${CMAKE_THREAD_LIBS_INIT})
69 target_link_libraries(Batch ws2_32)
72 # If necessary, activate all warnings (useful for debugging and code cleaning)
73 # add_definitions(-Wall -Werror -ansi -pedantic)
75 IF (BUILD_LSF_INTERFACE AND LSF_FOUND)
76 include_directories(${LSF_INCLUDE_DIR})
77 target_link_libraries(Batch ${LSF_LIBRARY} ${LSF_BAT_LIBRARY})
78 ENDIF (BUILD_LSF_INTERFACE AND LSF_FOUND)
80 IF (BUILD_PBS_INTERFACE AND PBS_FOUND)
81 include_directories(${PBS_INCLUDE_DIR})
82 target_link_libraries(Batch ${PBS_LIBRARY})
83 ENDIF (BUILD_PBS_INTERFACE AND PBS_FOUND)
85 INSTALL(TARGETS Batch DESTINATION lib)
86 INSTALL(FILES ${HDR_FILES} DESTINATION include/Batch)
88 IF (BUILD_PYTHON_WRAPPING AND Python_FOUND AND SWIG_FOUND)
89 add_subdirectory (Python)
90 ENDIF (BUILD_PYTHON_WRAPPING AND Python_FOUND AND SWIG_FOUND)