@@ -190,6 +190,12 @@ else(UNIX)
190190endif (UNIX )
191191message (STATUS "Platform:" ${PLATFORM} )
192192
193+ if (APPLE )
194+ # find out python linking commands
195+ execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "from distutils import sysconfig; print(sysconfig.get_config_vars('CFLAGS')[0])" OUTPUT_VARIABLE PYTHON_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE )
196+ execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "from distutils import sysconfig; print(sysconfig.get_config_vars('BLDSHARED')[0].split(' ', 1)[1])" OUTPUT_VARIABLE PYTHON_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE )
197+ endif (APPLE )
198+
193199##################################
194200# Tells Swig to use py3k option #
195201##################################
@@ -263,7 +269,13 @@ foreach(OCE_MODULE ${OCE_TOOLKIT_MODEL})
263269 swig_add_library (${OCE_MODULE} LANGUAGE python SOURCES ${FILE} TYPE MODULE )
264270 endif (CMAKE_VERSION VERSION_LESS 3.8 )
265271
266- swig_link_libraries (${OCE_MODULE} ${PYTHON_LIBRARIES} ${OCE_MODEL_LIBRARIES} )
272+ swig_link_libraries (${OCE_MODULE} ${OCE_MODEL_LIBRARIES} )
273+ if (APPLE )
274+ set_target_properties (${SWIG_MODULE_${OCE_MODULE} _REAL_NAME} PROPERTIES COMPILE_FLAGS ${PYTHON_CFLAGS} )
275+ set_target_properties (${SWIG_MODULE_${OCE_MODULE} _REAL_NAME} PROPERTIES LINK_FLAGS ${PYTHON_LDFLAGS} )
276+ else (APPLE )
277+ swig_link_libraries (${OCE_MODULE} ${PYTHON_LIBRARIES} )
278+ endif (APPLE )
267279endforeach (OCE_MODULE )
268280
269281#################
@@ -282,7 +294,13 @@ if(PYTHONOCC_WRAP_VISU)
282294 swig_add_library (${OCE_MODULE} LANGUAGE python SOURCES ${FILE} TYPE MODULE )
283295 endif ()
284296
285- swig_link_libraries (${OCE_MODULE} ${PYTHON_LIBRARIES} ${OCE_MODEL_LIBRARIES} ${OCE_VISUALIZATION_LIBRARIES} )
297+ swig_link_libraries (${OCE_MODULE} ${OCE_MODEL_LIBRARIES} ${OCE_VISUALIZATION_LIBRARIES} )
298+ if (APPLE )
299+ set_target_properties (${SWIG_MODULE_${OCE_MODULE} _REAL_NAME} PROPERTIES COMPILE_FLAGS ${PYTHON_CFLAGS} )
300+ set_target_properties (${SWIG_MODULE_${OCE_MODULE} _REAL_NAME} PROPERTIES LINK_FLAGS ${PYTHON_LDFLAGS} )
301+ else (APPLE )
302+ swig_link_libraries (${OCE_MODULE} ${PYTHON_LIBRARIES} )
303+ endif (APPLE )
286304 endforeach (OCE_MODULE )
287305 # Build third part modules
288306 # TODO : the following line is strange but necessary
@@ -304,10 +322,13 @@ if(PYTHONOCC_WRAP_VISU)
304322 if (APPLE )
305323 # on OSX, always add /System/Library/Frameworks/Cocoa.framework, even
306324 # if GLX is enabled
307- swig_link_libraries (Visualization ${PYTHON_LIBRARIES} ${OCE_MODEL_LIBRARIES} ${OCE_VISUALIZATION_LIBRARIES} /System/Library/Frameworks/Cocoa.framework )
325+ swig_link_libraries (Visualization ${OCE_MODEL_LIBRARIES} ${OCE_VISUALIZATION_LIBRARIES} /System/Library/Frameworks/Cocoa.framework )
326+ set_target_properties (${SWIG_MODULE_Visualization_REAL_NAME} PROPERTIES COMPILE_FLAGS ${PYTHON_CFLAGS} )
327+ set_target_properties (${SWIG_MODULE_Visualization_REAL_NAME} PROPERTIES LINK_FLAGS ${PYTHON_LDFLAGS} )
308328 else (APPLE )
309- swig_link_libraries (Visualization ${PYTHON_LIBRARIES } ${OCE_MODEL_LIBRARIES } ${OCE_VISUALIZATION_LIBRARIES } )
329+ swig_link_libraries (Visualization ${OCE_MODEL_LIBRARIES } ${OCE_VISUALIZATION_LIBRARIES } ${PYTHON_LIBRARIES } )
310330 endif (APPLE )
331+
311332endif (PYTHONOCC_WRAP_VISU )
312333
313334##########
@@ -330,9 +351,13 @@ else (CMAKE_VERSION VERSION_LESS 3.8)
330351 swig_add_library (Addons LANGUAGE python SOURCES ${ADDONS_SOURCE_FILES} TYPE MODULE )
331352endif ()
332353
333- swig_link_libraries (Addons ${PYTHON_LIBRARIES} ${OCE_MODEL_LIBRARIES} ${OCE_VISUALIZATION_LIBRARIES} )
334- if (APPLE )
335- swig_link_libraries (Addons ${PYTHON_LIBRARIES} ${OCE_MODEL_LIBRARIES} ${OCE_VISUALIZATION_LIBRARIES} ${OPENGL_LIBRARIES} )
354+ swig_link_libraries (Addons ${OCE_MODEL_LIBRARIES} ${OCE_VISUALIZATION_LIBRARIES} )
355+ if (APPLE )
356+ set_target_properties (${SWIG_MODULE_Addons_REAL_NAME} PROPERTIES COMPILE_FLAGS ${PYTHON_CFLAGS} )
357+ set_target_properties (${SWIG_MODULE_Addons_REAL_NAME} PROPERTIES LINK_FLAGS ${PYTHON_LDFLAGS} )
358+ swig_link_libraries (Addons ${OPENGL_LIBRARIES} )
359+ else (APPLE )
360+ swig_link_libraries (Addons ${PYTHON_LIBRARIES} )
336361endif (APPLE )
337362
338363############
@@ -352,7 +377,13 @@ else (CMAKE_VERSION VERSION_LESS 3.8)
352377 swig_add_library (GEOMAlgo LANGUAGE python SOURCES ${SPLITTER_SOURCE_FILES} TYPE MODULE )
353378endif ()
354379
355- swig_link_libraries (GEOMAlgo ${PYTHON_LIBRARIES} ${OCE_MODEL_LIBRARIES} ${OCE_VISUALIZATION_LIBRARIES} )
380+ swig_link_libraries (GEOMAlgo ${OCE_MODEL_LIBRARIES} ${OCE_VISUALIZATION_LIBRARIES} )
381+ if (APPLE )
382+ set_target_properties (${SWIG_MODULE_GEOMAlgo_REAL_NAME} PROPERTIES COMPILE_FLAGS ${PYTHON_CFLAGS} )
383+ set_target_properties (${SWIG_MODULE_GEOMAlgo_REAL_NAME} PROPERTIES LINK_FLAGS ${PYTHON_LDFLAGS} )
384+ else (APPLE )
385+ swig_link_libraries (GEOMAlgo ${PYTHON_LIBRARIES} )
386+ endif (APPLE )
356387
357388################
358389# DataExchange #
@@ -368,7 +399,15 @@ if(PYTHONOCC_WRAP_DATAEXCHANGE)
368399 swig_add_library (${OCE_MODULE} LANGUAGE python SOURCES ${FILE} TYPE MODULE )
369400 endif ()
370401
371- swig_link_libraries (${OCE_MODULE} ${PYTHON_LIBRARIES} ${OCE_MODEL_LIBRARIES} ${OCE_DATAEXCHANGE_LIBRARIES} )
402+ swig_link_libraries (${OCE_MODULE} ${OCE_MODEL_LIBRARIES} ${OCE_DATAEXCHANGE_LIBRARIES} )
403+
404+ if (APPLE )
405+ set_target_properties (${SWIG_MODULE_${OCE_MODULE} _REAL_NAME} PROPERTIES COMPILE_FLAGS ${PYTHON_CFLAGS} )
406+ set_target_properties (${SWIG_MODULE_${OCE_MODULE} _REAL_NAME} PROPERTIES LINK_FLAGS ${PYTHON_LDFLAGS} )
407+ else (APPLE )
408+ swig_link_libraries (${OCE_MODULE} ${PYTHON_LIBRARIES} )
409+ endif (APPLE )
410+
372411 endforeach (OCE_MODULE )
373412endif (PYTHONOCC_WRAP_DATAEXCHANGE )
374413
@@ -386,7 +425,15 @@ if(PYTHONOCC_WRAP_OCAF)
386425 swig_add_library (${OCE_MODULE} LANGUAGE python SOURCES ${FILE} TYPE MODULE )
387426 endif ()
388427
389- swig_link_libraries (${OCE_MODULE} ${PYTHON_LIBRARIES} ${OCE_MODEL_LIBRARIES} ${OCE_OCAF_LIBRARIES} )
428+ swig_link_libraries (${OCE_MODULE} ${OCE_MODEL_LIBRARIES} ${OCE_OCAF_LIBRARIES} )
429+
430+ if (APPLE )
431+ set_target_properties (${SWIG_MODULE_${OCE_MODULE} _REAL_NAME} PROPERTIES COMPILE_FLAGS ${PYTHON_CFLAGS} )
432+ set_target_properties (${SWIG_MODULE_${OCE_MODULE} _REAL_NAME} PROPERTIES LINK_FLAGS ${PYTHON_LDFLAGS} )
433+ else (APPLE )
434+ swig_link_libraries (${OCE_MODULE} ${PYTHON_LIBRARIES} )
435+ endif (APPLE )
436+
390437 endforeach (OCE_MODULE )
391438endif (PYTHONOCC_WRAP_OCAF )
392439
@@ -404,8 +451,15 @@ if(PYTHONOCC_WRAP_SMESH)
404451 swig_add_library (${SMESH_MODULE} LANGUAGE python SOURCES ${FILE} TYPE MODULE )
405452 endif ()
406453
454+ swig_link_libraries (${SMESH_MODULE} ${OCE_MODEL_LIBRARIES} ${OCE_VISUALIZATION_LIBRARIES} ${OCE_OCAF_LIBRARIES} ${SMESH_LIBRARIES} )
455+
456+ if (APPLE )
457+ set_target_properties (${SWIG_MODULE_${SMESH_MODULE} _REAL_NAME} PROPERTIES COMPILE_FLAGS ${PYTHON_CFLAGS} )
458+ set_target_properties (${SWIG_MODULE_${SMESH_MODULE} _REAL_NAME} PROPERTIES LINK_FLAGS ${PYTHON_LDFLAGS} )
459+ else (APPLE )
460+ swig_link_libraries (${SMESH_MODULE} ${PYTHON_LIBRARIES} )
461+ endif (APPLE )
407462
408- swig_link_libraries (${SMESH_MODULE} ${PYTHON_LIBRARIES} ${OCE_MODEL_LIBRARIES} ${OCE_VISUALIZATION_LIBRARIES} ${OCE_OCAF_LIBRARIES} ${SMESH_LIBRARIES} )
409463 endforeach (SMESH_MODULE )
410464endif (PYTHONOCC_WRAP_SMESH )
411465
0 commit comments