]> SALOME platform Git repositories - modules/yacs.git/blob - src/engine_swig/CMakeLists.txt
Salome HOME
Fix misprint.
[modules/yacs.git] / src / engine_swig / 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 INCLUDE(${SWIG_USE_FILE})
21
22 # --- options ---
23
24 IF(WIN32)                                       # if platform is Windows 64 bit 
25   IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")          
26     ADD_DEFINITIONS(/bigobj)                    # to avoid error C1128
27   ENDIF()
28 ENDIF()
29
30 # additional include directories
31 INCLUDE_DIRECTORIES(
32   ${PTHREAD_INCLUDE_DIR}
33   ${OMNIORB_INCLUDE_DIR}
34   ${PYTHON_INCLUDE_DIRS}
35   ${PROJECT_BINARY_DIR}/idl
36   ${PROJECT_BINARY_DIR}
37   ${PROJECT_SOURCE_DIR}/src/bases
38   ${PROJECT_SOURCE_DIR}/src/engine
39   ${CMAKE_CURRENT_SOURCE_DIR}
40   ${CMAKE_CURRENT_BINARY_DIR}
41 )
42
43 # swig flags
44 SET_SOURCE_FILES_PROPERTIES(pilot.i pypilot.i PROPERTIES 
45                                     CPLUSPLUS ON 
46                                     SWIG_DEFINITIONS "-shadow")
47 SET_PROPERTY(SOURCE pilot.i pypilot.i PROPERTY 
48                     SWIG_FLAGS "-noexcept" "-DYACS_PTHREAD")
49
50 # additional preprocessor / compiler flags
51 ADD_DEFINITIONS(
52   ${PYTHON_DEFINITIONS}
53   ${OMNIORB_DEFINITIONS}
54   -DYACS_PTHREAD
55   )
56 IF(WIN32)
57   ADD_DEFINITIONS(-DNOGDI)
58 ENDIF(WIN32)
59
60 # libraries to link to
61 SET(_link_LIBRARIES
62   YACSlibEngine
63   ${PYTHON_LIBRARIES}
64   ${OMNIORB_LIBRARIES}
65   )
66
67 # --- sources ---
68 SET(pilot_SOURCES
69   ExecutorSwig.cxx
70   )
71 # --- headers ---
72 SET(pilot_HEADERS
73   ExecutorSwig.hxx
74   )
75 # --- sources ---
76 SET(pypilot_SOURCES
77   
78   )
79 # --- headers ---
80 SET(pypilot_HEADERS
81   )
82
83 # --- scripts ---
84 # scripts / swig wrappings
85 SET(_swig_SCRIPTS
86   ${CMAKE_CURRENT_BINARY_DIR}/pilot.py
87   ${CMAKE_CURRENT_BINARY_DIR}/pypilot.py
88 )
89
90 IF(SALOME_BUILD_DOC)
91   ADD_CUSTOM_TARGET(docengine.i
92     COMMAND DOXSRCDIR=${PROJECT_SOURCE_DIR}/src/engine ${DOXYGEN_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Misc/Doxyfile
93     COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Misc/doxy2swig.py -n xml/index.xml docengine.i
94     VERBATIM
95     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
96     )
97 ENDIF(SALOME_BUILD_DOC)
98
99 # --- rules ---
100 SET(ENGINEINCLUDES 
101   Any.hxx     
102   DeploymentTree.hxx  
103   InputDataStreamPort.hxx         
104   OutPort.hxx               
105   SharedPtr.hxx 
106   AnyInputPort.hxx         
107   Dispatcher.hxx      
108   InputPort.hxx                   
109   OutputDataStreamPort.hxx  
110   StaticDefinedComposedNode.hxx 
111   Bloc.hxx                 
112   DynParaLoop.hxx     
113   InvalidExtractionException.hxx  
114   OutputPort.hxx            
115   Switch.hxx 
116   ComponentInstance.hxx    
117   ElementaryNode.hxx  
118   LinkInfo.hxx                    
119   Pool.hxx                  
120   Task.hxx 
121   ComposedNode.hxx         
122   Executor.hxx        
123   Logger.hxx                      
124   Port.hxx                  
125   TypeCode.hxx 
126   ConditionInputPort.hxx   
127   LogRecord.hxx                   
128   Proc.hxx                  
129   Visitor.hxx 
130   Container.hxx            
131   ForEachLoop.hxx     
132   Loop.hxx                        
133   RefCounter.hxx            
134   VisitorSaveSchema.hxx 
135   ConversionException.hxx  
136   ForLoop.hxx         
137   Node.hxx                        
138   Runtime.hxx               
139   VisitorSaveState.hxx 
140   DataFlowPort.hxx         
141   InGate.hxx          
142   OptimizerAlg.hxx                
143   Scheduler.hxx             
144   WhileLoop.hxx 
145   DataPort.hxx             
146   InlineNode.hxx      
147   OptimizerLoop.hxx               
148   ServiceInlineNode.hxx     
149   ComponentDefinition.hxx 
150   DataStreamPort.hxx       
151   InPort.hxx          
152   OutGate.hxx                     
153   ServiceNode.hxx           
154   Catalog.hxx  
155   PropertyInterface.hxx    
156   AnyOutputPort.hxx   
157   Pool.hxx
158   InPropertyPort.hxx
159 )
160 SET(SWIGINCLUDES ${ENGINEINCLUDES} 
161                  "${PROJECT_SOURCE_DIR}/src/bases/yacsconfig.h" 
162                  "ExecutorSwig.hxx")
163 SWIG_ADD_MODULE(pilot   python pilot.i ExecutorSwig.cxx)
164 SWIG_ADD_MODULE(pypilot python pypilot.i)
165 ADD_DEPENDENCIES(_pilot pilot.i engtypemaps.i docengine.i ${SWIGINCLUDES})
166 ADD_DEPENDENCIES(_pypilot pypilot.i pilot.i engtypemaps.i _pilot ${SWIGINCLUDES})
167
168 SWIG_LINK_LIBRARIES(pilot   "${_link_LIBRARIES}")
169 SWIG_LINK_LIBRARIES(pypilot "${_link_LIBRARIES}")
170 IF(WIN32)
171   SET_TARGET_PROPERTIES(_pilot   PROPERTIES DEBUG_OUTPUT_NAME _pilot_d)
172   SET_TARGET_PROPERTIES(_pypilot PROPERTIES DEBUG_OUTPUT_NAME _pypilot_d)
173 ENDIF(WIN32)
174
175 INSTALL(TARGETS ${SWIG_MODULE_pilot_REAL_NAME} ${SWIG_MODULE_pypilot_REAL_NAME} DESTINATION ${SALOME_INSTALL_PYTHON})
176
177 SALOME_INSTALL_SCRIPTS("${_swig_SCRIPTS}"  ${SALOME_INSTALL_PYTHON})