@@ -45,8 +45,8 @@ if (POLICY CMP0086)
4545 cmake_policy (SET CMP0086 NEW )
4646endif (POLICY CMP0086 )
4747
48- # Force C++ 14
49- set (CMAKE_CXX_STANDARD 14 )
48+ # Force C++ 17
49+ set (CMAKE_CXX_STANDARD 17 )
5050set (CMAKE_CXX_STANDARD_REQUIRED ON )
5151
5252set (BUILD_SHARED_LIBS ON )
@@ -71,7 +71,7 @@ endmacro(option_with_default OPTION_NAME OPTION_STRING OPTION_DEFAULT)
7171# OpenGL. If available, enable compilation for Visualization module #
7272#####################################################################
7373find_package (OpenGL )
74- include_directories (OPENGL_INCLUDE_DIR )
74+ include_directories (${ OPENGL_INCLUDE_DIR} )
7575
7676#################
7777# Build options #
@@ -196,7 +196,10 @@ if(NOT DEFINED PYTHONOCC_INSTALL_DIRECTORY)
196196 message (STATUS "conda-build running, using $ENV{SP_DIR} as install dir" )
197197 set (PYTHONOCC_INSTALL_DIRECTORY $ENV{SP_DIR} /OCC CACHE PATH "pythonocc install directory" )
198198 else (DEFINED ENV{SP_DIR} AND WIN32 )
199- execute_process (COMMAND ${Python3_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; from os.path import relpath; print(relpath(get_python_lib(1,prefix='${CMAKE_INSTALL_PREFIX} '),'${CMAKE_INSTALL_PREFIX} '))" OUTPUT_VARIABLE python_lib OUTPUT_STRIP_TRAILING_WHITESPACE )
199+ execute_process (
200+ COMMAND ${Python3_EXECUTABLE} -c "import sysconfig, os, sys; print(os.path.relpath(sysconfig.get_path('platlib'), sys.prefix))"
201+ OUTPUT_VARIABLE python_lib
202+ OUTPUT_STRIP_TRAILING_WHITESPACE )
200203 set (PYTHONOCC_INSTALL_DIRECTORY ${python_lib} /OCC CACHE PATH "pythonocc install directory" )
201204 endif (DEFINED ENV{SP_DIR} AND WIN32 )
202205endif (NOT DEFINED PYTHONOCC_INSTALL_DIRECTORY )
@@ -292,7 +295,7 @@ foreach(OCCT_MODULE ${OCCT_TOOLKIT_MODEL})
292295 set (FILE ${SWIG_FILES_PATH} /${OCCT_MODULE} .i)
293296 set_source_files_properties (${FILE} PROPERTIES CPLUSPLUS ON )
294297 swig_add_library (${OCCT_MODULE} LANGUAGE python SOURCES ${FILE} TYPE MODULE )
295- swig_link_libraries (${OCCT_MODULE} ${OCCT_MODEL_LIBRARIES} Python3::Module )
298+ target_link_libraries (${OCCT_MODULE} ${OCCT_MODEL_LIBRARIES} Python3::Module )
296299endforeach (OCCT_MODULE )
297300
298301###############
@@ -306,7 +309,7 @@ set(TESSELATOR_SOURCE_FILES
306309 ${CMAKE_CURRENT_SOURCE_DIR} /src/Tesselator/ShapeTesselator.cpp)
307310
308311swig_add_library (Tesselator LANGUAGE python SOURCES ${TESSELATOR_SOURCE_FILES} TYPE MODULE )
309- swig_link_libraries (Tesselator ${OCCT_MODEL_LIBRARIES} Python3::Module )
312+ target_link_libraries (Tesselator ${OCCT_MODEL_LIBRARIES} Python3::Module )
310313
311314#################
312315# Visualisation #
@@ -316,13 +319,13 @@ if(PYTHONOCC_WRAP_VISU)
316319 if (OPENGL_FOUND)
317320 message (STATUS "OpenGL found; Visualization support enabled" )
318321 endif ()
319- include_directories (OPENGL_INCLUDE_DIR )
322+ include_directories (${ OPENGL_INCLUDE_DIR} )
320323
321324 foreach (OCCT_MODULE ${OCCT_TOOLKIT_VISUALIZATION} )
322325 set (FILE ${SWIG_FILES_PATH} /${OCCT_MODULE} .i)
323326 set_source_files_properties (${FILE} PROPERTIES CPLUSPLUS ON )
324327 swig_add_library (${OCCT_MODULE} LANGUAGE python SOURCES ${FILE} TYPE MODULE )
325- swig_link_libraries (${OCCT_MODULE} ${OCCT_MODEL_LIBRARIES} ${OCCT_VISUALIZATION_LIBRARIES} Python3::Module )
328+ target_link_libraries (${OCCT_MODULE} ${OCCT_MODEL_LIBRARIES} ${OCCT_VISUALIZATION_LIBRARIES} Python3::Module )
326329 endforeach (OCCT_MODULE )
327330
328331 # Build third part modules
@@ -335,12 +338,12 @@ if(PYTHONOCC_WRAP_VISU)
335338 ${CMAKE_CURRENT_SOURCE_DIR} /src/Visualization/Display3d.cpp)
336339
337340 swig_add_library (Visualization LANGUAGE python SOURCES ${VISUALIZATION_SOURCE_FILES} TYPE MODULE )
338- swig_link_libraries (Visualization ${OCCT_MODEL_LIBRARIES} ${OCCT_VISUALIZATION_LIBRARIES} Python3::Module )
341+ target_link_libraries (Visualization ${OCCT_MODEL_LIBRARIES} ${OCCT_VISUALIZATION_LIBRARIES} Python3::Module )
339342
340343 if (APPLE )
341344 # on OSX, always add /System/Library/Frameworks/Cocoa.framework, even
342345 # if GLX is enabled
343- swig_link_libraries (Visualization /System/Library/Frameworks/Cocoa.framework )
346+ target_link_libraries (Visualization /System/Library/Frameworks/Cocoa.framework )
344347 endif (APPLE )
345348
346349 ##########################
@@ -355,7 +358,7 @@ if(PYTHONOCC_WRAP_VISU)
355358 ${CMAKE_CURRENT_SOURCE_DIR} /src/MeshDataSource/MeshDataSource.cpp)
356359
357360 swig_add_library (MeshDS LANGUAGE python SOURCES ${MESHDATASOURCE_SOURCE_FILES} TYPE MODULE )
358- swig_link_libraries (MeshDS ${OCCT_MODEL_LIBRARIES} ${OCCT_VISUALIZATION_LIBRARIES} Python3::Module )
361+ target_link_libraries (MeshDS ${OCCT_MODEL_LIBRARIES} ${OCCT_VISUALIZATION_LIBRARIES} Python3::Module )
359362
360363endif (PYTHONOCC_WRAP_VISU )
361364
@@ -367,7 +370,7 @@ if(PYTHONOCC_WRAP_DATAEXCHANGE)
367370 set (FILE ${SWIG_FILES_PATH} /${OCCT_MODULE} .i)
368371 set_source_files_properties (${FILE} PROPERTIES CPLUSPLUS ON )
369372 swig_add_library (${OCCT_MODULE} LANGUAGE python SOURCES ${FILE} TYPE MODULE )
370- swig_link_libraries (${OCCT_MODULE} ${OCCT_MODEL_LIBRARIES} ${OCCT_DATAEXCHANGE_LIBRARIES} Python3::Module )
373+ target_link_libraries (${OCCT_MODULE} ${OCCT_MODEL_LIBRARIES} ${OCCT_DATAEXCHANGE_LIBRARIES} Python3::Module )
371374 endforeach (OCCT_MODULE )
372375endif (PYTHONOCC_WRAP_DATAEXCHANGE )
373376
@@ -379,26 +382,28 @@ if(PYTHONOCC_WRAP_OCAF)
379382 set (FILE ${SWIG_FILES_PATH} /${OCCT_MODULE} .i)
380383 set_source_files_properties (${FILE} PROPERTIES CPLUSPLUS ON )
381384 swig_add_library (${OCCT_MODULE} LANGUAGE python SOURCES ${FILE} TYPE MODULE )
382- swig_link_libraries (${OCCT_MODULE} ${OCCT_MODEL_LIBRARIES} ${OCCT_OCAF_LIBRARIES} Python3::Module )
385+ target_link_libraries (${OCCT_MODULE} ${OCCT_MODEL_LIBRARIES} ${OCCT_OCAF_LIBRARIES} Python3::Module )
383386 endforeach (OCCT_MODULE )
384387endif (PYTHONOCC_WRAP_OCAF )
385388
386389##########
387390# Addons #
388391##########
389- execute_process (COMMAND ${CMAKE_COMMAND} -E make_directory src/Addons )
390- set_source_files_properties (${CMAKE_CURRENT_SOURCE_DIR} /src/Addons/Addons.i PROPERTIES CPLUSPLUS ON )
391- include_directories (${CMAKE_CURRENT_SOURCE_DIR} /src/Addons )
392- set (ADDONS_SOURCE_FILES
393- ${CMAKE_CURRENT_SOURCE_DIR} /src/Addons/Addons.i
394- ${CMAKE_CURRENT_SOURCE_DIR} /src/Addons/Font3d.cpp
395- #${CMAKE_CURRENT_SOURCE_DIR}/src/Addons/TextItem.cpp
396- #${CMAKE_CURRENT_SOURCE_DIR}/src/Addons/LineItem.cpp
397- #${CMAKE_CURRENT_SOURCE_DIR}/src/Addons/TextureItem.cpp
398- )
399-
400- swig_add_library (Addons LANGUAGE python SOURCES ${ADDONS_SOURCE_FILES} TYPE MODULE )
401- swig_link_libraries (Addons ${OCCT_MODEL_LIBRARIES} ${OCCT_VISUALIZATION_LIBRARIES} Python3::Module )
392+ if (PYTHONOCC_WRAP_VISU)
393+ execute_process (COMMAND ${CMAKE_COMMAND} -E make_directory src/Addons )
394+ set_source_files_properties (${CMAKE_CURRENT_SOURCE_DIR} /src/Addons/Addons.i PROPERTIES CPLUSPLUS ON )
395+ include_directories (${CMAKE_CURRENT_SOURCE_DIR} /src/Addons )
396+ set (ADDONS_SOURCE_FILES
397+ ${CMAKE_CURRENT_SOURCE_DIR} /src/Addons/Addons.i
398+ ${CMAKE_CURRENT_SOURCE_DIR} /src/Addons/Font3d.cpp
399+ #${CMAKE_CURRENT_SOURCE_DIR}/src/Addons/TextItem.cpp
400+ #${CMAKE_CURRENT_SOURCE_DIR}/src/Addons/LineItem.cpp
401+ #${CMAKE_CURRENT_SOURCE_DIR}/src/Addons/TextureItem.cpp
402+ )
403+
404+ swig_add_library (Addons LANGUAGE python SOURCES ${ADDONS_SOURCE_FILES} TYPE MODULE )
405+ target_link_libraries (Addons ${OCCT_MODEL_LIBRARIES} ${OCCT_VISUALIZATION_LIBRARIES} Python3::Module )
406+ endif (PYTHONOCC_WRAP_VISU )
402407
403408################
404409# Installation #
@@ -461,8 +466,10 @@ if(PYTHONOCC_WRAP_VISU)
461466endif (PYTHONOCC_WRAP_VISU )
462467
463468# install addons
464- install (FILES ${BUILD_DIR} /Addons.py DESTINATION ${PYTHONOCC_INSTALL_DIRECTORY} /Core )
465- install (TARGETS Addons DESTINATION ${PYTHONOCC_INSTALL_DIRECTORY} /Core )
469+ if (PYTHONOCC_WRAP_VISU)
470+ install (FILES ${BUILD_DIR} /Addons.py DESTINATION ${PYTHONOCC_INSTALL_DIRECTORY} /Core )
471+ install (TARGETS Addons DESTINATION ${PYTHONOCC_INSTALL_DIRECTORY} /Core )
472+ endif (PYTHONOCC_WRAP_VISU )
466473
467474# install Display
468475install (DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /src/Display DESTINATION ${PYTHONOCC_INSTALL_DIRECTORY} )
0 commit comments