diff --git a/CMake/PythonInstall.cmake b/CMake/PythonInstall.cmake
index a62a2a43fd911ca926b73e0cd7a47da992cbb8ec..eacfcf7841ee16257647f81e9f8e154518a849ce 100644
--- a/CMake/PythonInstall.cmake
+++ b/CMake/PythonInstall.cmake
@@ -67,9 +67,24 @@ macro(python_install)
   endif(NOT PYTHON_EXECUTABLE)
 
   # Parse arguments.
+  # apart from the python files list, there are two additional arguments
+  # DESTINATION (required), where to put the py files (relative to python lib dir)
+  # EXECUTABLE (optional), makes the py files executable
   string(REGEX REPLACE ";?DESTINATION.*" "" _py_files "${ARGN}")
+  string(REGEX REPLACE ";?EXECUTABLE.*" "" _py_files "${_py_files}")
   string(REGEX MATCH "DESTINATION;.*" _dest_dir "${ARGN}")
   string(REGEX REPLACE "^DESTINATION;" "" _dest_dir "${_dest_dir}")
+  string(REGEX REPLACE ";?EXECUTABLE.*" "" _dest_dir "${_dest_dir}")
+  string(REGEX MATCH "EXECUTABLE;" _executable "${ARGN}")
+
+  #check if optional argument EXECUTABLE is set
+  #if so, then install the _py_files as EXECUTABLE type (executable)
+  #else as normal files (not executable)
+  if("${_executable}" STRGREATER "")
+    set(INSTALL_TYPE PROGRAMS)
+  else()
+    set(INSTALL_TYPE FILES)
+  endif("${_executable}" STRGREATER "")
 
   if(_py_files MATCHES "^$")
     message(FATAL_ERROR "python_install: no sources files specified")
@@ -98,7 +113,7 @@ macro(python_install)
     file(MAKE_DIRECTORY ${_build_dir}/${_py_path})
     execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
       ${_py_abs} ${_build_dir}/${_py})
-    install(FILES ${_py_abs} DESTINATION ${_inst_dir}/${_py_path})
+    install(${INSTALL_TYPE} ${_py_abs} DESTINATION ${_inst_dir}/${_py_path})
     if(USE_PYTHON_COMPILATION)
       set(_py_code
         "import py_compile, os"