gnucash maint: Fix issues with loading and running init.py
Geert Janssens
gjanssens at code.gnucash.org
Tue Sep 12 07:45:58 EDT 2017
Updated via https://github.com/Gnucash/gnucash/commit/6ec9aa36 (commit)
from https://github.com/Gnucash/gnucash/commit/65f18589 (commit)
commit 6ec9aa362b647f6d24fd3836e3fee7117f6613e7
Author: Rob Gowin <robgowin at gmail.com>
Date: Mon Sep 11 15:44:41 2017 -0500
Fix issues with loading and running init.py
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 70d3380..94f74c1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -383,6 +383,20 @@ IF (WITH_PYTHON)
IF (NOT PYTHONLIBS_FOUND)
MESSAGE(SEND_ERROR "Python support enabled, but Python libraries not found.")
ENDIF()
+
+ # Determine where to install the python libraries.
+ EXECUTE_PROCESS(
+ COMMAND ${PYTHON_EXECUTABLE} -c "import sysconfig; print sysconfig.get_path('platlib', vars = { 'platbase' : '${CMAKE_INSTALL_PREFIX}' } )"
+ RESULT_VARIABLE PYTHON_SYSCONFIG_RESULT
+ OUTPUT_VARIABLE PYTHON_SYSCONFIG_OUTPUT
+ ERROR_VARIABLE PYTHON_SYSCONFIG_ERROR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_STRIP_TRAILING_WHITESPACE
+ )
+ IF (PYTHON_SYSCONFIG_RESULT)
+ MESSAGE(SEND_ERROR "Could not determine Python site-package directory:\n${PYTHON_SYSCONFIG_ERROR}")
+ ENDIF()
+ STRING(REPLACE ${CMAKE_INSTALL_PREFIX} ${CMAKE_BINARY_DIR} PYTHON_SYSCONFIG_BUILD ${PYTHON_SYSCONFIG_OUTPUT})
ENDIF()
diff --git a/src/bin/CMakeLists.txt b/src/bin/CMakeLists.txt
index 9599994..c552e96 100644
--- a/src/bin/CMakeLists.txt
+++ b/src/bin/CMakeLists.txt
@@ -105,7 +105,7 @@ ENDIF()
IF (NOT(${DATADIR} STREQUAL "/usr/share") AND NOT(${DATADIR} STREQUAL "/usr/local/share"))
FILE(APPEND ${ENV_FILE_OUT} ${XDG_TEXT})
- FILE(APPEND ${ENV_FILE_OUT} "XDG_DATA_DIRS=${DATADIR};{XDG_DATA_DIRS}" "${GNC_SYSTEM_XDG_DATA_DIRS}\n")
+ FILE(APPEND ${ENV_FILE_OUT} "XDG_DATA_DIRS=${DATADIR};{XDG_DATA_DIRS};" "${GNC_SYSTEM_XDG_DATA_DIRS}\n")
ENDIF()
FILE(APPEND ${BUILD_ENV_FILE_OUT} "GNC_DBD_DIR=${LIBDBI_DRIVERS_DIR}/dbd")
@@ -113,6 +113,19 @@ FILE(APPEND ${BUILD_ENV_FILE_OUT} "GNC_DBD_DIR=${LIBDBI_DRIVERS_DIR}/dbd")
FILE(APPEND ${BUILD_ENV_FILE_OUT} ${XDG_TEXT})
FILE(APPEND ${BUILD_ENV_FILE_OUT} "XDG_DATA_DIRS=${DATADIR_BUILD};{XDG_DATA_DIRS};" "${GNC_SYSTEM_XDG_DATA_DIRS}\n")
+SET(PYTHON_TEXT "
+# Define PYTHONPATH for non default installation path.\n"
+ )
+IF (NOT(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr") AND NOT(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local"))
+
+ FILE(APPEND ${ENV_FILE_OUT} ${PYTHON_TEXT})
+ FILE(APPEND ${ENV_FILE_OUT} "PYTHONPATH=${PYTHON_SYSCONFIG_OUTPUT};{PYTHONPATH}")
+ENDIF()
+
+FILE(APPEND ${BUILD_ENV_FILE_OUT} ${PYTHON_TEXT})
+FILE(APPEND ${BUILD_ENV_FILE_OUT} "PYTHONPATH=${PYTHON_SYSCONFIG_BUILD};{PYTHONPATH}")
+
+
FILE(COPY ${BUILD_ENV_FILE_OUT}
DESTINATION ${SYSCONFDIR_BUILD}/gnucash
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
diff --git a/src/optional/python-bindings/CMakeLists.txt b/src/optional/python-bindings/CMakeLists.txt
index eb1e6e9..92ea1d8 100644
--- a/src/optional/python-bindings/CMakeLists.txt
+++ b/src/optional/python-bindings/CMakeLists.txt
@@ -80,35 +80,24 @@ IF(WITH_PYTHON)
ADD_TEST(NAME sqlite3test COMMAND sqlite3test)
ADD_DEPENDENCIES(check sqlite3test)
-
- # Determine where to install the python libraries.
- EXECUTE_PROCESS(
- COMMAND ${PYTHON_EXECUTABLE} -c "import sysconfig; print sysconfig.get_path('platlib', vars = { 'platbase' : '${CMAKE_INSTALL_PREFIX}' } )"
- RESULT_VARIABLE PYTHON_SYSCONFIG_RESULT
- OUTPUT_VARIABLE PYTHON_SYSCONFIG_OUTPUT
- ERROR_VARIABLE PYTHON_SYSCONFIG_ERROR
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_STRIP_TRAILING_WHITESPACE
- )
- IF (PYTHON_SYSCONFIG_RESULT)
- MESSAGE(SEND_ERROR "Could not determine Python site-package directory:\n${PYTHON_SYSCONFIG_ERROR}")
- ENDIF()
-
INSTALL(TARGETS gnucash_core_c
LIBRARY DESTINATION ${PYTHON_SYSCONFIG_OUTPUT}/gnucash
ARCHIVE DESTINATION ${PYTHON_SYSCONFIG_OUTPUT}/gnucash
)
- INSTALL(FILES __init__.py function_class.py gnucash_business.py gnucash_core.py
- ${CMAKE_CURRENT_BINARY_DIR}/gnucash_core_c.py
+ INSTALL(FILES ${PYEXEC_FILES} ${CMAKE_CURRENT_BINARY_DIR}/gnucash_core_c.py
DESTINATION ${PYTHON_SYSCONFIG_OUTPUT}/gnucash
)
- FILE(COPY ${PYEXEC_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/gnucash)
+ FILE(COPY ${PYEXEC_FILES} DESTINATION ${PYTHON_SYSCONFIG_BUILD}/gnucash)
ADD_CUSTOM_TARGET(gnucash-core-c-py ALL
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/gnucash_core_c.py ${CMAKE_CURRENT_BINARY_DIR}/gnucash
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/gnucash_core_c.py ${PYTHON_SYSCONFIG_BUILD}/gnucash
DEPENDS ${SWIG_GNUCASH_CORE_C})
+ ADD_CUSTOM_TARGET(gnucash-core-c-build ALL
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/lib/gnucash/_gnucash_core_c${CMAKE_SHARED_LIBRARY_SUFFIX} ${PYTHON_SYSCONFIG_BUILD}/gnucash
+ DEPENDS gnucash_core_c)
+
ENDIF()
SET(python_bindings_DATA ${PYEXEC_FILES}
@@ -118,4 +107,4 @@ SET(python_bindings_DATA ${PYEXEC_FILES}
SET_LOCAL_DIST(python_bindings_DIST_local CMakeLists.txt Makefile.am ${python_bindings_DATA})
-SET(python_bindings_DIST ${python_bindings_DIST_local} ${test_python_bindings_DIST} ${example_scripts_DIST} PARENT_SCOPE)
\ No newline at end of file
+SET(python_bindings_DIST ${python_bindings_DIST_local} ${test_python_bindings_DIST} ${example_scripts_DIST} PARENT_SCOPE)
diff --git a/src/optional/python-bindings/tests/CMakeLists.txt b/src/optional/python-bindings/tests/CMakeLists.txt
index f900fa1..78b244d 100644
--- a/src/optional/python-bindings/tests/CMakeLists.txt
+++ b/src/optional/python-bindings/tests/CMakeLists.txt
@@ -3,7 +3,7 @@ IF (WITH_PYTHON)
ADD_TEST(python-bindings ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/runTests.py.in)
SET_PROPERTY(TEST python-bindings PROPERTY ENVIRONMENT
GNC_BUILDDIR=${CMAKE_BINARY_DIR}
- PYTHONPATH=${CMAKE_BINARY_DIR}/src/optional/python-bindings:${CMAKE_BINARY_DIR}/lib/gnucash:${CMAKE_BINARY_DIR}/src/test-core
+ PYTHONPATH=${PYTHON_SYSCONFIG_BUILD}:${CMAKE_BINARY_DIR}/lib/gnucash:${CMAKE_BINARY_DIR}/src/test-core
)
ENDIF()
@@ -15,4 +15,4 @@ SET(test_python_bindings_DATA
test_split.py
test_transaction.py)
-SET_DIST_LIST(test_python_bindings_DIST CMakeLists.txt Makefile.am ${test_python_bindings_DATA})
\ No newline at end of file
+SET_DIST_LIST(test_python_bindings_DIST CMakeLists.txt Makefile.am ${test_python_bindings_DATA})
diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt
index 6698f3f..79d27ba 100644
--- a/src/python/CMakeLists.txt
+++ b/src/python/CMakeLists.txt
@@ -16,7 +16,11 @@ IF (WITH_PYTHON)
RUNTIME DESTINATION bin
)
- INSTALL(FILES init.py DESTINATION share/python)
+ INSTALL(DIRECTORY pycons DESTINATION share/gnucash/python)
+ INSTALL(FILES init.py DESTINATION share/gnucash/python)
+
+ FILE(COPY init.py DESTINATION ${CMAKE_BINARY_DIR}/share/gnucash/python)
+ FILE(COPY pycons DESTINATION ${CMAKE_BINARY_DIR}/share/gnucash/python)
ENDIF(WITH_PYTHON)
SET_LOCAL_DIST(python_DIST_local CMakeLists.txt Makefile.am gncmod-python.c init.py)
Summary of changes:
CMakeLists.txt | 14 ++++++++++++
src/bin/CMakeLists.txt | 15 ++++++++++++-
src/optional/python-bindings/CMakeLists.txt | 27 +++++++----------------
src/optional/python-bindings/tests/CMakeLists.txt | 4 ++--
src/python/CMakeLists.txt | 6 ++++-
5 files changed, 43 insertions(+), 23 deletions(-)
More information about the gnucash-changes
mailing list