Salome HOME
[EDF28974] : Move to python implementation of driver and integrate monitoring into...
[modules/yacs.git] / src / yacsloader / CMakeLists.txt
1 # Copyright (C) 2012-2024  CEA, EDF
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19
20 IF(SALOME_BUILD_TESTS)
21   ADD_SUBDIRECTORY(Test)
22   ADD_SUBDIRECTORY(pmml)  
23 ENDIF(SALOME_BUILD_TESTS)
24
25 # --- options ---
26
27 IF(SALOME_YACS_USE_KERNEL)
28   INCLUDE_DIRECTORIES(${KERNEL_INCLUDE_DIRS})
29   ADD_DEFINITIONS(${KERNEL_DEFINITIONS})
30
31   SET(SALOME_LIBS 
32     ${KERNEL_SalomeLifeCycleCORBA}
33     ${KERNEL_SalomeIDLKernel}
34     ${KERNEL_SalomeNS}
35     ${KERNEL_SalomeContainer}
36     ${KERNEL_SALOMEBasics}
37     ${KERNEL_SalomeResourcesManager}
38     ${KERNEL_OpUtil}
39     ${KERNEL_SALOMELocalTrace}
40     ${KERNEL_Registry}
41     ${KERNEL_SalomeNotification}
42     ${KERNEL_ResourcesManager}
43     ${KERNEL_SalomeHDFPersist}
44     ${KERNEL_SalomeGenericObj}
45     )
46   IF(SALOME_YACS_USE_DSC)
47     LIST(APPEND SALOME_LIBS ${KERNEL_SalomeDSCContainer})
48   ENDIF(SALOME_YACS_USE_DSC)
49 ENDIF(SALOME_YACS_USE_KERNEL)
50
51 # additional include directories
52 INCLUDE_DIRECTORIES(
53   ${OMNIORB_INCLUDE_DIR}
54   ${OMNIORBPY_INCLUDE_DIR}
55   ${PYTHON_INCLUDE_DIR}
56   ${LIBXML2_INCLUDE_DIR}
57   ${PROJECT_SOURCE_DIR}/src/bases
58   ${PROJECT_SOURCE_DIR}/src/engine
59   ${PROJECT_SOURCE_DIR}/src/runtime
60   ${PROJECT_SOURCE_DIR}/src/yacsloader
61   ${PROJECT_SOURCE_DIR}
62   )
63
64 # additional preprocessor / compiler flags
65 ADD_DEFINITIONS(
66   ${PYTHON_DEFINITIONS}
67   ${OMNIORB_DEFINITIONS}
68   )
69 SET(_exec_DEFINITIONS
70   -g
71   )
72
73 # libraries to link to
74 SET(YACSloader_LIBRARIES
75   ${OMNIORB_LIBRARIES}
76   ${LIBXML2_LIBRARIES}
77   YACSlibEngine
78   YACSRuntimeSALOME
79   )
80 SET(_link_LIBRARIES
81   YACSloader
82   YACSRuntimeSALOME
83   YACSlibEngine
84   ${SALOME_LIBS}
85   ${OMNIORB_LIBRARIES}
86   ${PYTHON_LIBRARIES}
87   ${LIBXML2_LIBRARIES}
88   )
89
90 # --- headers ---
91
92 SET(YACSloader_HEADERS
93   YACSloaderExport.hxx
94   blocParsers.hxx
95   codeParsers.hxx
96   containerParsers.hxx
97   dataParsers.hxx
98   factory.hxx
99   linkParsers.hxx
100   LoadState.hxx
101   loopParsers.hxx
102   nodeParsers.hxx
103   outputParsers.hxx
104   parsers.hxx
105   parserBase.hxx
106   portParsers.hxx
107   presetParsers.hxx
108   ProcCataLoader.hxx
109   procParsers.hxx
110   propertyParsers.hxx
111   rootParser.hxx
112   switchParsers.hxx
113   inlineParsers.hxx
114   componentinstanceParsers.hxx
115   remoteParsers.hxx
116   serverParsers.hxx
117   serviceParsers.hxx
118   typeParsers.hxx
119   xmlParserBase.hxx
120   xmlrpcParsers.hxx
121   sinlineParsers.hxx
122   )
123
124 # --- sources ---
125
126 SET(YACSloader_SOURCES
127   parsers.cxx
128   parserBase.cxx
129   dataParsers.cxx
130   typeParsers.cxx
131   propertyParsers.cxx
132   containerParsers.cxx
133   xmlrpcParsers.cxx
134   rootParser.cxx
135   codeParsers.cxx
136   LoadState.cxx
137   xmlParserBase.cxx
138   ProcCataLoader.cxx
139   componentinstanceParsers.cxx
140   )
141
142 SET(resume_SOURCES
143   resume.cxx
144   )
145 SET(debugger_SOURCES
146   debugger.cxx
147   )
148 SET(ExampleOfObserversPluginForDriver_SOURCES
149   ExampleOfObserversPluginForDriver.cxx
150   )
151
152 # --- rules ---
153
154 ADD_LIBRARY(YACSloader ${YACSloader_SOURCES})
155 TARGET_LINK_LIBRARIES(YACSloader ${YACSloader_LIBRARIES})
156 INSTALL(TARGETS YACSloader EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
157
158 ADD_LIBRARY(ExampleOfObserversPluginForDriver ${ExampleOfObserversPluginForDriver_SOURCES})
159 TARGET_LINK_LIBRARIES(ExampleOfObserversPluginForDriver ${_link_LIBRARIES})
160 INSTALL(TARGETS ExampleOfObserversPluginForDriver DESTINATION ${SALOME_INSTALL_LIBS})
161
162 ADD_EXECUTABLE(resume ${resume_SOURCES})
163 TARGET_LINK_LIBRARIES(resume ${_link_LIBRARIES})
164
165 ADD_EXECUTABLE(debugger ${debugger_SOURCES})
166 TARGET_LINK_LIBRARIES(debugger ${_link_LIBRARIES})
167
168 SET_TARGET_PROPERTIES(resume debugger PROPERTIES COMPILE_FLAGS ${_exec_DEFINITIONS})
169
170 INSTALL(TARGETS resume debugger EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_BINS})
171
172 INSTALL(FILES ${YACSloader_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})
173
174 INSTALL(FILES driver_internal.py DESTINATION ${SALOME_INSTALL_PYTHON})
175
176 INSTALL(FILES driver PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ DESTINATION ${SALOME_INSTALL_BINS})
177
178 FILE(GLOB sample_files
179   ${PROJECT_SOURCE_DIR}/src/yacsloader/samples/*.xml 
180   ${PROJECT_SOURCE_DIR}/src/yacsloader/samples/*.pmml
181   ${PROJECT_SOURCE_DIR}/src/yacsloader/samples/*.data)
182 INSTALL(FILES ${sample_files} DESTINATION ${SALOME_YACS_INSTALL_SAMPLES})