diff --git a/CMake/SlicerBlockInstallPython.cmake b/CMake/SlicerBlockInstallPython.cmake index 538a0dce1aab5c8960c1213775f3a41635332959..7c09f0fb0c03f99ffb46452a01a924aafa33f26f 100644 --- a/CMake/SlicerBlockInstallPython.cmake +++ b/CMake/SlicerBlockInstallPython.cmake @@ -75,24 +75,32 @@ if(Slicer_USE_PYTHONQT) endif() # Install Slicer python launcher settings - install( - FILES ${python_bin_dir}/SlicerPythonLauncherSettingsToInstall.ini - DESTINATION ${Slicer_INSTALL_BIN_DIR} - RENAME SlicerPythonLauncherSettings.ini - COMPONENT Runtime - ) - # Install Slicer python launcher - set(_launcher CTKAppLauncher) - if(Slicer_BUILD_WIN32_CONSOLE) - set(_launcher CTKAppLauncherW) - endif() - install( - PROGRAMS ${CTKAppLauncher_DIR}/bin/${_launcher}${CMAKE_EXECUTABLE_SUFFIX} - DESTINATION ${Slicer_INSTALL_BIN_DIR} - RENAME SlicerPython${CMAKE_EXECUTABLE_SUFFIX} - COMPONENT Runtime - ) + macro(_install_python_launcher executablename) + # Install Slicer python launcher settings + install( + FILES ${python_bin_dir}/${executablename}LauncherSettingsToInstall.ini + DESTINATION ${Slicer_INSTALL_BIN_DIR} + RENAME ${executablename}LauncherSettings.ini + COMPONENT Runtime + ) + # Install Slicer python launcher + set(_launcher CTKAppLauncher) + if(Slicer_BUILD_WIN32_CONSOLE) + set(_launcher CTKAppLauncherW) + endif() + install( + PROGRAMS ${CTKAppLauncher_DIR}/bin/${_launcher}${CMAKE_EXECUTABLE_SUFFIX} + DESTINATION ${Slicer_INSTALL_BIN_DIR} + RENAME ${executablename}${CMAKE_EXECUTABLE_SUFFIX} + COMPONENT Runtime + ) + endmacro() + + _install_python_launcher(PythonSlicer) + + # SlicerPython executable is deprecated, see details in External_python.cmake + _install_python_launcher(SlicerPython) # Install headers set(python_include_subdir /Include/) diff --git a/SuperBuild/External_python.cmake b/SuperBuild/External_python.cmake index 33d208270f3cfa3b8596d67d5fe30c783a47ddb3..1a7f42cf2576d438f0f7ffe11de9a42dfe102967 100644 --- a/SuperBuild/External_python.cmake +++ b/SuperBuild/External_python.cmake @@ -185,13 +185,13 @@ if((NOT DEFINED PYTHON_INCLUDE_DIR set(slicer_PYTHON_SHARED_LIBRARY_DIR ${python_DIR}/lib) set(PYTHON_INCLUDE_DIR ${python_DIR}/include/python2.7) set(PYTHON_LIBRARY ${python_DIR}/lib/libpython2.7.${python_IMPORT_SUFFIX}) - set(PYTHON_EXECUTABLE ${python_DIR}/bin/SlicerPython) + set(PYTHON_EXECUTABLE ${python_DIR}/bin/PythonSlicer) set(slicer_PYTHON_REAL_EXECUTABLE ${python_DIR}/bin/python) elseif(WIN32) set(slicer_PYTHON_SHARED_LIBRARY_DIR ${python_DIR}/bin) set(PYTHON_INCLUDE_DIR ${python_DIR}/include) set(PYTHON_LIBRARY ${python_DIR}/libs/python27.lib) - set(PYTHON_EXECUTABLE ${python_DIR}/bin/SlicerPython.exe) + set(PYTHON_EXECUTABLE ${python_DIR}/bin/PythonSlicer.exe) set(slicer_PYTHON_REAL_EXECUTABLE ${python_DIR}/bin/python.exe) else() message(FATAL_ERROR "Unknown system !") @@ -221,7 +221,7 @@ if((NOT DEFINED PYTHON_INCLUDE_DIR DEPENDEES install ) - # Note: Install rules for SlicerPythonLauncherSettingsToInstall.ini and SlicerPython executable + # Note: Install rules for PythonSlicerLauncherSettingsToInstall.ini and PythonSlicer executable # are specified in SlicerBlockInstallPython.cmake if(UNIX AND NOT APPLE) diff --git a/SuperBuild/python_configure_python_launcher.cmake b/SuperBuild/python_configure_python_launcher.cmake index f6ad008f3e4e9923cfa9f57a184968691a8ff80c..7f848a7d71f2997cfcfaa27ed3664678f99c1217 100644 --- a/SuperBuild/python_configure_python_launcher.cmake +++ b/SuperBuild/python_configure_python_launcher.cmake @@ -129,12 +129,11 @@ set(PYTHONLAUNCHER_PYTHONPATH_INSTALLED # # Notes: # -# * Install rules for SlicerPythonLauncherSettingsToInstall.ini and SlicerPython executable +# * Install rules for PythonSlicerLauncherSettingsToInstall.ini and PythonSlicer executable # are specified in SlicerBlockInstallPython.cmake # -ctkAppLauncherConfigureForExecutable( - APPLICATION_NAME SlicerPython +set(_python_launcher_config_params SPLASHSCREEN_DISABLED # Additional settings exclude groups @@ -161,3 +160,17 @@ ctkAppLauncherConfigureForExecutable( ADDITIONAL_PATH_ENVVARS_INSTALLED "${PYTHONLAUNCHER_ADDITIONAL_PATH_ENVVARS_INSTALLED}" ADDITIONAL_SETTINGS_FILEPATH_INSTALLED "/SlicerLauncherSettings.ini" ) + +# Custom Python executable name must start with Python for compatibility with +# development tools, such as PyCharm. +ctkAppLauncherConfigureForExecutable( + APPLICATION_NAME PythonSlicer + ${_python_launcher_config_params} + ) + +# SlicerPython executable name is deprecated and will be removed in the future +# (name is not compatible with some development environments - see the comment above). +ctkAppLauncherConfigureForExecutable( + APPLICATION_NAME SlicerPython + ${_python_launcher_config_params} + ) diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt index 45f2ed734d3ae231b4327178e571dbc6d228b8f6..f2dc2406c9268db2e26c98cbfef7ff0fa1318d67 100644 --- a/Testing/CMakeLists.txt +++ b/Testing/CMakeLists.txt @@ -1,6 +1,6 @@ if(Slicer_USE_NUMPY AND PYTHON_EXECUTABLE) - add_test(SlicerPythonSimpleNUMPYTest ${Slicer_LAUNCH_COMMAND} ${PYTHON_EXECUTABLE} ${Slicer_SOURCE_DIR}/Testing/SimpleNUMPYTest.py) + add_test(PythonSlicerSimpleNUMPYTest ${Slicer_LAUNCH_COMMAND} ${PYTHON_EXECUTABLE} ${Slicer_SOURCE_DIR}/Testing/SimpleNUMPYTest.py) endif() diff --git a/Utilities/Scripts/slicerExtensionWizard-install.sh.in b/Utilities/Scripts/slicerExtensionWizard-install.sh.in index 98aa92ae4b4b0ed3dc8e1d53bf5371815b06f82d..bc1d4e64412fa6f948b9bcd9bde0ef1bcd044bb6 100755 --- a/Utilities/Scripts/slicerExtensionWizard-install.sh.in +++ b/Utilities/Scripts/slicerExtensionWizard-install.sh.in @@ -8,7 +8,7 @@ python="$bin/python-real" [ -x "$python" ] || python=python # Set up environment -eval $("$bin/SlicerPython" --launcher-show-set-environment-commands) +eval $("$bin/PythonSlicer" --launcher-show-set-environment-commands) @EXPORT_GIT_PYTHON_GIT_EXECUTABLE_CONFIG@