Skip to content

Commit 62911a8

Browse files
committed
Fix linking on osx, see issue tpaviot#541
more apple stuff fixed Addons compilation
1 parent 14e8902 commit 62911a8

1 file changed

Lines changed: 65 additions & 11 deletions

File tree

CMakeLists.txt

Lines changed: 65 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,12 @@ else(UNIX)
190190
endif(UNIX)
191191
message(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)
267279
endforeach(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+
311332
endif(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)
331352
endif()
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})
336361
endif(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)
353378
endif()
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)
373412
endif(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)
391438
endif(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)
410464
endif(PYTHONOCC_WRAP_SMESH)
411465

0 commit comments

Comments
 (0)