From d830a29a9a88b0587a48b0ebfa7dafbfa24f35a3 Mon Sep 17 00:00:00 2001
From: Marcel Loose <loose@astron.nl>
Date: Tue, 19 Jan 2010 09:01:38 +0000
Subject: [PATCH] Bug 1310: Make sure there's a __init__.py in each build
 directory *and* each install directory.

---
 CMake/FindPython.cmake    |  2 +-
 CMake/PythonInstall.cmake | 21 ++++++++++++---------
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/CMake/FindPython.cmake b/CMake/FindPython.cmake
index 1b412143067..49f3230d9ea 100644
--- a/CMake/FindPython.cmake
+++ b/CMake/FindPython.cmake
@@ -46,7 +46,7 @@ find_package(PythonLibs ${_options})
 if(NOT PYTHON_FOUND)
   if(PYTHON_EXECUTABLE)
     set(_cmd
-      "from distutils.sysconfig import *"
+      "from distutils.sysconfig import get_python_lib"
       "print get_python_lib(prefix='')")
     execute_process(
       COMMAND "${PYTHON_EXECUTABLE}" "-c" "${_cmd}"
diff --git a/CMake/PythonInstall.cmake b/CMake/PythonInstall.cmake
index a9b67415cd0..4f1dc0d2153 100644
--- a/CMake/PythonInstall.cmake
+++ b/CMake/PythonInstall.cmake
@@ -53,15 +53,6 @@ macro(python_install)
   set(_inst_dir "${PYTHON_INSTALL_DIR}/${_dest_dir}")
   set(_build_dir "${PYTHON_BUILD_DIR}/${_dest_dir}")
 
-  # Make sure that there's a __init__.py file in each directory
-  string(REGEX REPLACE "/" ";" _dir_list ${_dest_dir})
-  set(_init_dir "${PYTHON_BUILD_DIR}")
-  foreach(_dir ${_dir_list})
-    set(_init_dir "${_init_dir}/${_dir}")
-    execute_process(COMMAND 
-      ${CMAKE_COMMAND} -E touch "${_init_dir}/__init__.py")
-  endforeach(_dir ${_dir_list})
-
   # Install and byte-compile each Python file.
   foreach(_py ${_py_files})
     get_filename_component(_src_dir ${_py} ABSOLUTE)
@@ -76,4 +67,16 @@ macro(python_install)
       "execute_process(COMMAND ${PYTHON_EXECUTABLE} -c \"${_py_code}\")")
   endforeach(_py ${_py_files})
 
+  # Make sure that there's a __init__.py file in each build/install directory
+  string(REGEX REPLACE "/" ";" _dir_list ${_dest_dir})
+  set(_init_dir)
+  foreach(_dir ${_dir_list})
+    set(_init_dir "${_init_dir}/${_dir}")
+    execute_process(COMMAND ${CMAKE_COMMAND} -E touch
+      "${PYTHON_BUILD_DIR}${_init_dir}/__init__.py")
+    install(CODE 
+      "execute_process(COMMAND ${CMAKE_COMMAND} -E touch 
+        \"${PYTHON_INSTALL_DIR}${_init_dir}/__init__.py\")")
+  endforeach(_dir ${_dir_list})
+
 endmacro(python_install)
-- 
GitLab