Salome HOME
Update copyrights 2014.
[modules/yacs.git] / src / yacsloader / CMakeLists.txt
1 # Copyright (C) 2012-2014  CEA/DEN, EDF R&D
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_DEFINITIONS}
33     ${KERNEL_SalomeLifeCycleCORBA}
34     ${KERNEL_SalomeIDLKernel}
35     ${KERNEL_SalomeNS}
36     ${KERNEL_SalomeContainer}
37     ${KERNEL_SALOMEBasics}
38     ${KERNEL_SalomeResourcesManager}
39     ${KERNEL_OpUtil}
40     ${KERNEL_SALOMELocalTrace}
41     ${KERNEL_Registry}
42     ${KERNEL_SalomeNotification}
43     ${KERNEL_ResourcesManager}
44     ${KERNEL_SalomeHDFPersist}
45     ${KERNEL_SalomeGenericObj}
46     )
47   IF(SALOME_YACS_USE_DSC)
48     LIST(APPEND SALOME_LIBS ${KERNEL_SalomeDSCContainer})
49   ENDIF(SALOME_YACS_USE_DSC)
50 ENDIF(SALOME_YACS_USE_KERNEL)
51
52 # additional include directories
53 INCLUDE_DIRECTORIES(
54   ${OMNIORB_INCLUDE_DIR}
55   ${EXPAT_INCLUDE_DIR}
56   ${PYTHON_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 IF(WIN32)
70   ADD_DEFINITIONS(-DNOGDI)
71 ENDIF(WIN32)
72 SET(_exec_DEFINITIONS
73   -g
74   )
75
76 # libraries to link to
77 SET(YACSloader_LIBRARIES
78   ${OMNIORB_LIBRARIES}
79   ${EXPAT_LIBRARIES}
80   YACSlibEngine
81   )
82 SET(_link_LIBRARIES
83   YACSloader
84   YACSRuntimeSALOME
85   YACSlibEngine
86   ${SALOME_LIBS}
87   ${OMNIORB_LIBRARIES}
88   ${PYTHON_LIBRARIES}
89   ${LIBXML2_LIBRARIES}
90   )
91
92 # --- headers ---
93
94 SET(YACSloader_HEADERS
95   YACSloaderExport.hxx
96   blocParsers.hxx
97   codeParsers.hxx
98   containerParsers.hxx
99   dataParsers.hxx
100   factory.hxx
101   linkParsers.hxx
102   LoadState.hxx
103   loopParsers.hxx
104   nodeParsers.hxx
105   outputParsers.hxx
106   parsers.hxx
107   parserBase.hxx
108   portParsers.hxx
109   presetParsers.hxx
110   ProcCataLoader.hxx
111   procParsers.hxx
112   propertyParsers.hxx
113   rootParser.hxx
114   switchParsers.hxx
115   inlineParsers.hxx
116   componentinstanceParsers.hxx
117   remoteParsers.hxx
118   serverParsers.hxx
119   serviceParsers.hxx
120   typeParsers.hxx
121   xmlParserBase.hxx
122   xmlrpcParsers.hxx
123   sinlineParsers.hxx
124   )
125
126 # --- sources ---
127
128 SET(YACSloader_SOURCES
129   parsers.cxx
130   parserBase.cxx
131   dataParsers.cxx
132   typeParsers.cxx
133   propertyParsers.cxx
134   containerParsers.cxx
135   xmlrpcParsers.cxx
136   rootParser.cxx
137   codeParsers.cxx
138   LoadState.cxx
139   xmlParserBase.cxx
140   ProcCataLoader.cxx
141   componentinstanceParsers.cxx
142   )
143 SET(driver_SOURCES
144   driver.cxx
145   )
146 SET(resume_SOURCES
147   resume.cxx
148   )
149 SET(debugger_SOURCES
150   debugger.cxx
151   )
152
153 # --- rules ---
154
155 ADD_LIBRARY(YACSloader ${YACSloader_SOURCES})
156 TARGET_LINK_LIBRARIES(YACSloader ${YACSloader_LIBRARIES})
157 INSTALL(TARGETS YACSloader EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
158
159 ADD_EXECUTABLE(driver ${driver_SOURCES})
160 TARGET_LINK_LIBRARIES(driver ${_link_LIBRARIES})
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(driver resume debugger PROPERTIES COMPILE_FLAGS ${_exec_DEFINITIONS})
169
170 INSTALL(TARGETS driver resume debugger EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_BINS})
171
172 INSTALL(FILES ${YACSloader_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})
173
174 FILE(GLOB sample_files
175   ${PROJECT_SOURCE_DIR}/src/yacsloader/samples/*.xml 
176   ${PROJECT_SOURCE_DIR}/src/yacsloader/samples/*.pmml
177   ${PROJECT_SOURCE_DIR}/src/yacsloader/samples/*.data)
178 INSTALL(FILES ${sample_files} DESTINATION ${SALOME_YACS_INSTALL_SAMPLES})