diff --git a/CMakeLists.txt b/CMakeLists.txt index 631e16cf..13ce30d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,9 @@ project( option(VIENNAPS_USE_DOUBLE "Use double precision floating point numbers in application" OFF) option(VIENNAPS_BUILD_APPLICATION "Build application" OFF) +option(VIENNAPS_PACKAGE_PYTHON "Build python bindings with intent to publish wheel" OFF) option(VIENNAPS_BUILD_PYTHON "Build python bindings" OFF) + option(VIENNAPS_BUILD_EXAMPLES "Build examples" OFF) option(VIENNAPS_BUILD_TESTS "Build tests" OFF) @@ -33,6 +35,16 @@ list(APPEND CMAKE_PREFIX_PATH ${VIENNAPS_LOOKUP_DIRS}) # link against the vtk-python libs # -------------------------------------------------------------------------------------------------------- +if(VIENNAPS_PACKAGE_PYTHON) + message( + STATUS + "[ViennaPS] Skipping system dependencies due to 'VIENNALS_PACKAGE_PYTHON', the build will take a long time!" + ) + + set(CPM_DOWNLOAD_ALL ON) + set(VIENNAPS_BUILD_PYTHON ON) +endif() + if(VIENNAPS_BUILD_PYTHON) set(CMAKE_PLATFORM_NO_VERSIONED_SONAME ON) endif() diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 8281d9b4..96cc0a90 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -10,15 +10,19 @@ add_custom_target(${PROJECT_NAME} ALL) # -------------------------------------------------------------------------------------------------------- set(CMAKE_MACOSX_RPATH ON) + +set(CMAKE_BUILD_WITH_INSTALL_RPATH ON) set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON) if(NOT APPLE) list(APPEND CMAKE_INSTALL_RPATH "$ORIGIN") list(APPEND CMAKE_INSTALL_RPATH "$ORIGIN/../vtkmodules") + list(APPEND CMAKE_INSTALL_RPATH "$ORIGIN/../viennals.libs") list(APPEND CMAKE_INSTALL_RPATH "$ORIGIN/../viennaps.libs") else() list(APPEND CMAKE_INSTALL_RPATH "@loader_path") list(APPEND CMAKE_INSTALL_RPATH "@loader_path/../vtkmodules") + list(APPEND CMAKE_INSTALL_RPATH "@loader_path/../viennals.libs") list(APPEND CMAKE_INSTALL_RPATH "@loader_path/../viennaps.libs") endif() @@ -77,23 +81,16 @@ setup_binding(viennaps3d -DVIENNAPS_PYTHON_DIMENSION=3) set(VIENNAPS_LIB_FOLDER "${VIENNAPS_LIBRARY_OUTPUT_DIR}/viennaps.libs") set(VIENNAPS_USE_LIB_FOLDER OFF) -if(NOT VIENNAPS_SYSTEM_VIENNARAY AND NOT VIENNARAY_SYSTEM_EMBREE) +if(VIENNAPS_PACKAGE_PYTHON OR (NOT VIENNAPS_SYSTEM_VIENNARAY AND NOT VIENNARAY_SYSTEM_EMBREE)) set(VIENNAPS_USE_LIB_FOLDER ON) setup_embree_env(${MODULE_NAME} "${VIENNAPS_LIB_FOLDER}") endif() -if(NOT VIENNAPS_SYSTEM_VIENNARAY AND NOT VIENNARAY_SYSTEM_TBB) +if(VIENNAPS_PACKAGE_PYTHON OR (NOT VIENNAPS_SYSTEM_VIENNARAY AND NOT VIENNARAY_SYSTEM_TBB)) set(VIENNAPS_USE_LIB_FOLDER ON) setup_tbb_env(${MODULE_NAME} "${VIENNAPS_LIB_FOLDER}") endif() -if(NOT VIENNAPS_SYSTEM_VIENNALS - AND (APPLE OR WIN32) - AND NOT VIENNALS_SYSTEM_VTK) - set(VIENNAPS_USE_LIB_FOLDER ON) - setup_vtk_env(${MODULE_NAME} "${VIENNAPS_LIB_FOLDER}") -endif() - if(VIENNAPS_USE_LIB_FOLDER) install(DIRECTORY "${VIENNAPS_LIB_FOLDER}" DESTINATION .) endif()