From fb98f89679ca3f5240ef947bdb08af81dfaa4361 Mon Sep 17 00:00:00 2001 From: Guilhem Lavaux Date: Thu, 1 Nov 2012 22:16:13 -0400 Subject: [PATCH] Properly build and install the python tools in BINDIR/ext_build/python. Specify more dependencies. --- external/external_build.cmake | 2 +- external/external_python_build.cmake | 23 ++++++++++++----------- external/python_build.cmake | 3 ++- external/python_install.cmake | 2 ++ python_tools/setup.py | 5 ++++- 5 files changed, 21 insertions(+), 14 deletions(-) diff --git a/external/external_build.cmake b/external/external_build.cmake index 3b266bb..5bc7c2e 100644 --- a/external/external_build.cmake +++ b/external/external_build.cmake @@ -172,7 +172,7 @@ IF(INTERNAL_GSL) ExternalProject_Add(gsl URL ${GSL_URL} PREFIX ${BUILD_PREFIX}/gsl-prefix - CONFIGURE_COMMAND ${GSL_SOURCE_DIR}/configure --prefix=${CMAKE_BINARY_DIR}/ext_build/gsl --disable-shared CPPFLAGS=${CONFIGURE_CPP_FLAGS} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} + CONFIGURE_COMMAND ${GSL_SOURCE_DIR}/configure --prefix=${CMAKE_BINARY_DIR}/ext_build/gsl --disable-shared --with-pic CPPFLAGS=${CONFIGURE_CPP_FLAGS} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} BUILD_IN_SOURCE 1 BUILD_COMMAND make INSTALL_COMMAND make install diff --git a/external/external_python_build.cmake b/external/external_python_build.cmake index b516577..9e94758 100644 --- a/external/external_python_build.cmake +++ b/external/external_python_build.cmake @@ -12,7 +12,17 @@ IF(INTERNAL_NETCDF4_PYTHON) SET(NETCDF4_PYTHON_URL "http://netcdf4-python.googlecode.com/files/netCDF4-1.0.1.tar.gz" CACHE STRING "URL to download NetCDF4-python from") ENDIF(INTERNAL_NETCDF4_PYTHON) +execute_process( + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/external/detect_site.py ${CMAKE_BINARY_DIR}/ext_build/python + RESULT_VARIABLE RET_VALUE + OUTPUT_VARIABLE PYTHON_LOCAL_SITE_PACKAGE +) +IF(RET_VALUE) + MESSAGE(FATAL_ERROR "Could not detect the location of site-package in the build directory") +ENDIF(RET_VALUE) +STRING(REGEX REPLACE "(\r?\n)+$" "" PYTHON_LOCAL_SITE_PACKAGE "${PYTHON_LOCAL_SITE_PACKAGE}") +MESSAGE(STATUS "Python is installing its packages in ${PYTHON_LOCAL_SITE_PACKAGE}") @@ -40,10 +50,11 @@ IF(INTERNAL_NETCDF4_PYTHON) "-DHDF5_DIR=${HDF5_BIN_DIR}" "-DNETCDF4_DIR=${NETCDF_BIN_DIR}" "-DPYTHON_LDFLAGS:STRING=${PYTHON_LDFLAGS}" + "-DPYTHON_LOCAL_SITE_PACKAGE=${PYTHON_LOCAL_SITE_PACKAGE}" "-DTARGET_PATH=${CMAKE_BINARY_DIR}/ext_build/python" "-P") ExternalProject_Add(netcdf4-python - DEPENDS ${PREV_PYTHON_BUILD} + DEPENDS ${PREV_PYTHON_BUILD} netcdf URL ${NETCDF4_PYTHON_URL} PREFIX ${BUILD_PREFIX}/netcdf4-python-prefix CONFIGURE_COMMAND echo "No configure" @@ -54,13 +65,3 @@ IF(INTERNAL_NETCDF4_PYTHON) ENDIF(INTERNAL_NETCDF4_PYTHON) -execute_process( - COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/external/detect_site.py ${CMAKE_BINARY_DIR}/ext_build/python - RESULT_VARIABLE RET_VALUE - OUTPUT_VARIABLE PYTHON_LOCAL_SITE_PACKAGE -) -IF(RET_VALUE) - MESSAGE(FATAL_ERROR "Could not detect the location of site-package in the build directory") -ENDIF(RET_VALUE) - -MESSAGE(STATUS "Python is installing its packages in ${PYTHON_LOCAL_SITE_PACKAGE}") diff --git a/external/python_build.cmake b/external/python_build.cmake index da9b70f..2359baa 100644 --- a/external/python_build.cmake +++ b/external/python_build.cmake @@ -2,7 +2,8 @@ SET(ENV{HDF5_DIR} ${HDF5_DIR}) SET(ENV{NETCDF4_DIR} ${NETCDF4_DIR}) SET(ENV{CPPFLAGS} ${PYTHON_CPPFLAGS}) SET(ENV{LDFLAGS} ${PYTHON_LDFLAGS}) -SET(ENV{PYTHONPATH} ${TARGET_PATH}/lib/python2.7/site-packages:$ENV{PYTHONPATH}) +SET(ENV{VOID_GSL} ${VOID_GSL}) +SET(ENV{PYTHONPATH} ${PYTHON_LOCAL_SITE_PACKAGE}:$ENV{PYTHONPATH}) execute_process( COMMAND ${PYTHON_EXECUTABLE} setup.py build RESULT_VARIABLE RET_VALUE diff --git a/external/python_install.cmake b/external/python_install.cmake index 4799a98..f156b24 100644 --- a/external/python_install.cmake +++ b/external/python_install.cmake @@ -2,6 +2,8 @@ SET(ENV{HDF5_DIR} ${HDF5_DIR}) SET(ENV{NETCDF4_DIR} ${NETCDF4_DIR}) SET(ENV{CPPFLAGS} ${PYTHON_CPPFLAGS}) SET(ENV{LDFLAGS} ${PYTHON_LDFLAGS}) +SET(ENV{VOID_GSL} ${VOID_GSL}) +SET(ENV{PYTHONPATH} ${PYTHON_LOCAL_SITE_PACKAGE}:$ENV{PYTHONPATH}) execute_process( COMMAND ${PYTHON_EXECUTABLE} setup.py install --prefix=${TARGET_PATH} RESULT_VARIABLE RET_VALUE diff --git a/python_tools/setup.py b/python_tools/setup.py index 5e6eebb..bd2a9e9 100644 --- a/python_tools/setup.py +++ b/python_tools/setup.py @@ -2,6 +2,9 @@ from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext import numpy as np +import os + +VOID_GSL=os.environ.get('VOID_GSL') setup( name='void_python_tools', @@ -15,6 +18,6 @@ setup( ext_modules = [ Extension("void_python_tools.apTools.chi2.velocityProfileFitNative", ["void_python_tools/apTools/chi2/velocityProfileFitNative.pyx"], - libraries=["gsl", "gslcblas"]) + libraries=["gsl", "gslcblas"], library_dirs=[VOID_GSL+"/lib"], include_dirs=[VOID_GSL+"/include"]) ] )