]> SALOME platform Git repositories - modules/yacs.git/blob - src/yacsloader/CMakeLists.txt
Salome HOME
CMake:
[modules/yacs.git] / src / yacsloader / CMakeLists.txt
1 # Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
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.
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 ENDIF(SALOME_BUILD_TESTS)
23
24 # --- options ---
25
26 IF(SALOME_YACS_USE_KERNEL)
27   INCLUDE_DIRECTORIES(${KERNEL_INCLUDE_DIRS})
28   ADD_DEFINITIONS(${KERNEL_DEFINITIONS})
29
30   SET(SALOME_LIBS 
31     ${KERNEL_DEFINITIONS}
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   ${EXPAT_INCLUDE_DIR}
55   ${PYTHON_INCLUDE_DIR}
56   ${PROJECT_SOURCE_DIR}/src/bases
57   ${PROJECT_SOURCE_DIR}/src/engine
58   ${PROJECT_SOURCE_DIR}/src/runtime
59   ${PROJECT_SOURCE_DIR}/src/yacsloader
60   ${PROJECT_SOURCE_DIR}
61   )
62
63 # additional preprocessor / compiler flags
64 ADD_DEFINITIONS(
65   ${PYTHON_DEFINITIONS}
66   ${OMNIORB_DEFINITIONS}
67   )
68 IF(WIN32)
69   ADD_DEFINITIONS(-DNOGDI)
70 ENDIF(WIN32)
71 SET(_exec_DEFINITIONS
72   -g
73   )
74
75 # libraries to link to
76 SET(YACSloader_LIBRARIES
77   ${OMNIORB_LIBRARIES}
78   ${EXPAT_LIBRARIES}
79   YACSlibEngine
80   )
81 SET(_link_LIBRARIES
82   YACSloader
83   YACSRuntimeSALOME
84   YACSlibEngine
85   ${SALOME_LIBS}
86   ${OMNIORB_LIBRARIES}
87   ${PYTHON_LIBRARIES}
88   ${LIBXML2_LIBRARIES}
89   )
90
91 # --- headers ---
92
93 SET(YACSloader_HEADERS
94   YACSloaderExport.hxx
95   blocParsers.hxx
96   codeParsers.hxx
97   containerParsers.hxx
98   dataParsers.hxx
99   factory.hxx
100   linkParsers.hxx
101   LoadState.hxx
102   loopParsers.hxx
103   nodeParsers.hxx
104   outputParsers.hxx
105   parsers.hxx
106   parserBase.hxx
107   portParsers.hxx
108   presetParsers.hxx
109   ProcCataLoader.hxx
110   procParsers.hxx
111   propertyParsers.hxx
112   rootParser.hxx
113   switchParsers.hxx
114   inlineParsers.hxx
115   componentinstanceParsers.hxx
116   remoteParsers.hxx
117   serverParsers.hxx
118   serviceParsers.hxx
119   typeParsers.hxx
120   xmlParserBase.hxx
121   xmlrpcParsers.hxx
122   sinlineParsers.hxx
123   )
124
125 # --- sources ---
126
127 SET(YACSloader_SOURCES
128   parsers.cxx
129   parserBase.cxx
130   dataParsers.cxx
131   typeParsers.cxx
132   propertyParsers.cxx
133   containerParsers.cxx
134   xmlrpcParsers.cxx
135   rootParser.cxx
136   codeParsers.cxx
137   LoadState.cxx
138   xmlParserBase.cxx
139   ProcCataLoader.cxx
140   componentinstanceParsers.cxx
141   )
142 SET(driver_SOURCES
143   driver.cxx
144   )
145 SET(resume_SOURCES
146   resume.cxx
147   )
148 SET(debugger_SOURCES
149   debugger.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_EXECUTABLE(driver ${driver_SOURCES})
159 TARGET_LINK_LIBRARIES(driver ${_link_LIBRARIES})
160
161 ADD_EXECUTABLE(resume ${resume_SOURCES})
162 TARGET_LINK_LIBRARIES(resume ${_link_LIBRARIES})
163
164 ADD_EXECUTABLE(debugger ${debugger_SOURCES})
165 TARGET_LINK_LIBRARIES(debugger ${_link_LIBRARIES})
166
167 SET_TARGET_PROPERTIES(driver resume debugger PROPERTIES COMPILE_FLAGS ${_exec_DEFINITIONS})
168
169 INSTALL(TARGETS driver resume debugger EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_BINS})
170
171 INSTALL(FILES ${YACSloader_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})
172
173 FILE(GLOB sample_files
174   ${PROJECT_SOURCE_DIR}/src/yacsloader/samples/*.xml 
175   ${PROJECT_SOURCE_DIR}/src/yacsloader/samples/*.data)
176 INSTALL(FILES ${sample_files} DESTINATION ${SALOME_YACS_INSTALL_SAMPLES})