Salome HOME
10c37ba19b3895b182406d57f710354ba3413c40
[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 SET(_exec_DEFINITIONS
70   -g
71   )
72
73 # libraries to link to
74 SET(YACSloader_LIBRARIES
75   ${OMNIORB_LIBRARIES}
76   ${EXPAT_LIBRARIES}
77   YACSlibEngine
78   )
79 SET(_link_LIBRARIES
80   YACSloader
81   YACSRuntimeSALOME
82   YACSlibEngine
83   ${SALOME_LIBS}
84   ${OMNIORB_LIBRARIES}
85   ${PYTHON_LIBRARIES}
86   ${LIBXML2_LIBRARIES}
87   )
88
89 # --- headers ---
90
91 SET(YACSloader_HEADERS
92   YACSloaderExport.hxx
93   blocParsers.hxx
94   codeParsers.hxx
95   containerParsers.hxx
96   dataParsers.hxx
97   factory.hxx
98   linkParsers.hxx
99   LoadState.hxx
100   loopParsers.hxx
101   nodeParsers.hxx
102   outputParsers.hxx
103   parsers.hxx
104   parserBase.hxx
105   portParsers.hxx
106   presetParsers.hxx
107   ProcCataLoader.hxx
108   procParsers.hxx
109   propertyParsers.hxx
110   rootParser.hxx
111   switchParsers.hxx
112   inlineParsers.hxx
113   componentinstanceParsers.hxx
114   remoteParsers.hxx
115   serverParsers.hxx
116   serviceParsers.hxx
117   typeParsers.hxx
118   xmlParserBase.hxx
119   xmlrpcParsers.hxx
120   sinlineParsers.hxx
121   )
122
123 # --- sources ---
124
125 SET(YACSloader_SOURCES
126   parsers.cxx
127   parserBase.cxx
128   dataParsers.cxx
129   typeParsers.cxx
130   propertyParsers.cxx
131   containerParsers.cxx
132   xmlrpcParsers.cxx
133   rootParser.cxx
134   codeParsers.cxx
135   LoadState.cxx
136   xmlParserBase.cxx
137   ProcCataLoader.cxx
138   componentinstanceParsers.cxx
139   )
140 SET(driver_SOURCES
141   driver.cxx
142   )
143 SET(resume_SOURCES
144   resume.cxx
145   )
146 SET(debugger_SOURCES
147   debugger.cxx
148   )
149
150 # --- rules ---
151
152 ADD_LIBRARY(YACSloader ${YACSloader_SOURCES})
153 TARGET_LINK_LIBRARIES(YACSloader ${YACSloader_LIBRARIES})
154 INSTALL(TARGETS YACSloader EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
155
156 ADD_EXECUTABLE(driver ${driver_SOURCES})
157 TARGET_LINK_LIBRARIES(driver ${_link_LIBRARIES})
158
159 ADD_EXECUTABLE(resume ${resume_SOURCES})
160 TARGET_LINK_LIBRARIES(resume ${_link_LIBRARIES})
161
162 ADD_EXECUTABLE(debugger ${debugger_SOURCES})
163 TARGET_LINK_LIBRARIES(debugger ${_link_LIBRARIES})
164
165 SET_TARGET_PROPERTIES(driver resume debugger PROPERTIES COMPILE_FLAGS ${_exec_DEFINITIONS})
166
167 INSTALL(TARGETS driver resume debugger EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_BINS})
168
169 INSTALL(FILES ${YACSloader_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})
170
171 FILE(GLOB sample_files
172   ${PROJECT_SOURCE_DIR}/src/yacsloader/samples/*.xml 
173   ${PROJECT_SOURCE_DIR}/src/yacsloader/samples/*.pmml
174   ${PROJECT_SOURCE_DIR}/src/yacsloader/samples/*.data)
175 INSTALL(FILES ${sample_files} DESTINATION ${SALOME_YACS_INSTALL_SAMPLES})