diff options
author | Edoardo Pasca <edo.paskino@gmail.com> | 2018-01-29 15:46:04 +0000 |
---|---|---|
committer | Edoardo Pasca <edo.paskino@gmail.com> | 2018-01-30 12:03:59 +0000 |
commit | 25c43ebd60c141bacf3ff9fd9c5e2f357bc5e4b6 (patch) | |
tree | 4ffc8f08d9dcdfbceb068ca4c2a1fc19527610cd | |
parent | fd7236f721017a6e8c082f01545e6b5aaf4c2cac (diff) | |
download | regularization-25c43ebd60c141bacf3ff9fd9c5e2f357bc5e4b6.tar.gz regularization-25c43ebd60c141bacf3ff9fd9c5e2f357bc5e4b6.tar.bz2 regularization-25c43ebd60c141bacf3ff9fd9c5e2f357bc5e4b6.tar.xz regularization-25c43ebd60c141bacf3ff9fd9c5e2f357bc5e4b6.zip |
finds boost libraries during wrappers build (win)
finds and set the correct name for the boost libraries. Builds GPU wrapper
if CUDA is found.
-rw-r--r-- | Wrappers/Python/conda-recipe/bld.bat | 7 | ||||
-rw-r--r-- | Wrappers/Python/conda-recipe/build.sh | 6 | ||||
-rw-r--r-- | Wrappers/Python/conda-recipe/meta.yaml | 1 | ||||
-rw-r--r-- | Wrappers/Python/setup-regularizers.py.in (renamed from Wrappers/Python/setup.py) | 38 | ||||
-rw-r--r-- | Wrappers/Python/src/cpu_regularizers.pyx | 19 | ||||
-rw-r--r-- | Wrappers/Python/src/fista_module.cpp | 4 | ||||
-rw-r--r-- | Wrappers/Python/test/test_cpu_regularizers.py | 5 |
7 files changed, 45 insertions, 35 deletions
diff --git a/Wrappers/Python/conda-recipe/bld.bat b/Wrappers/Python/conda-recipe/bld.bat index fe3ddae..850905c 100644 --- a/Wrappers/Python/conda-recipe/bld.bat +++ b/Wrappers/Python/conda-recipe/bld.bat @@ -8,7 +8,10 @@ ROBOCOPY /E "%RECIPE_DIR%\..\.." "%SRC_DIR%\ccpi" ROBOCOPY /E "%RECIPE_DIR%\..\..\..\Core" "%SRC_DIR%\Core" cd %SRC_DIR%\ccpi\Python -%PYTHON% setup.py build_ext +:: issue cmake to create setup.py +cmake . + +%PYTHON% setup-regularizers.py build_ext if errorlevel 1 exit 1 -%PYTHON% setup.py install +%PYTHON% setup-regularizers.py install if errorlevel 1 exit 1 diff --git a/Wrappers/Python/conda-recipe/build.sh b/Wrappers/Python/conda-recipe/build.sh index aaf9a69..9ea4161 100644 --- a/Wrappers/Python/conda-recipe/build.sh +++ b/Wrappers/Python/conda-recipe/build.sh @@ -11,7 +11,9 @@ cd $SRC_DIR/ccpi/Python echo "$SRC_DIR/ccpi/Python" -$PYTHON setup.py build_ext -$PYTHON setup.py install +cmake . + +$PYTHON setup-regularizers.py build_ext +$PYTHON setup-regularizers.py install diff --git a/Wrappers/Python/conda-recipe/meta.yaml b/Wrappers/Python/conda-recipe/meta.yaml index c451b37..8b58738 100644 --- a/Wrappers/Python/conda-recipe/meta.yaml +++ b/Wrappers/Python/conda-recipe/meta.yaml @@ -21,6 +21,7 @@ requirements: - cil_regularizer - vc 14 # [win and py35] - vc 9 # [win and py27] + - cmake run: - python ==2.7 # [py27] diff --git a/Wrappers/Python/setup.py b/Wrappers/Python/setup-regularizers.py.in index 00c93fc..3f4d2d7 100644 --- a/Wrappers/Python/setup.py +++ b/Wrappers/Python/setup-regularizers.py.in @@ -33,35 +33,26 @@ extra_link_args = [] extra_libraries = ['cilreg'] extra_include_dirs += [os.path.join(".." , ".." , "Core"), - os.path.join(".." , ".." , "Core", "regularizers_CPU"), + os.path.join(".." , ".." , "Core", "regularizers_CPU"), os.path.join(".." , ".." , "Core", "regularizers_GPU") , "."] -if platform.system() == 'Windows': - - +if platform.system() == 'Windows': extra_compile_args[0:] = ['/DWIN32','/EHsc','/DBOOST_ALL_NO_LIB' , '/openmp' ] - - if sys.version_info.major == 3 : - extra_libraries += ['boost_python3-vc140-mt-1_64', 'boost_numpy3-vc140-mt-1_64'] - else: - extra_libraries += ['boost_python-vc90-mt-1_64', 'boost_numpy-vc90-mt-1_64'] else: extra_compile_args = ['-fopenmp','-O2', '-funsigned-char', '-Wall', '-std=c++0x'] - if sys.version_info.major == 3: - extra_libraries += ['boost_python3', 'boost_numpy3','gomp'] - else: - extra_libraries += ['boost_python', 'boost_numpy','gomp'] + extra_libraries += [@EXTRA_OMP_LIB@] + +extra_libraries += ["@BOOST_PYTHON_LIB@", "@BOOST_NUMPY_LIB@"] + setup( name='ccpi', description='CCPi Core Imaging Library - Image Regularizers', version=cil_version, cmdclass = {'build_ext': build_ext}, - ext_modules = [Extension("ccpi.filters.gpu_regularizers", - sources=[ - os.path.join("." , "src", "gpu_regularizers.pyx" ), - ], + ext_modules = [Extension("ccpi.filters.cpu_regularizers_boost", + sources=[os.path.join("." , "src", "fista_module.cpp" )], include_dirs=extra_include_dirs, library_dirs=extra_library_dirs, extra_compile_args=extra_compile_args, @@ -77,16 +68,8 @@ setup( description='CCPi Core Imaging Library - Image Regularizers', version=cil_version, cmdclass = {'build_ext': build_ext}, - ext_modules = [Extension("ccpi.filters.cpu_regularizers", - sources=[os.path.join("." , "src", "fista_module.cpp" ), - os.path.join("." , "src", "cpu_regularizers.pyx" ) - # os.path.join("@CMAKE_SOURCE_DIR@" , "main_func" , "regularizers_CPU", "FGP_TV_core.c"), - # os.path.join("@CMAKE_SOURCE_DIR@" , "main_func" , "regularizers_CPU", "SplitBregman_TV_core.c"), - # os.path.join("@CMAKE_SOURCE_DIR@" , "main_func" , "regularizers_CPU", "LLT_model_core.c"), - # os.path.join("@CMAKE_SOURCE_DIR@" , "main_func" , "regularizers_CPU", "PatchBased_Regul_core.c"), - # os.path.join("@CMAKE_SOURCE_DIR@" , "main_func" , "regularizers_CPU", "TGV_PD_core.c"), - # os.path.join("@CMAKE_SOURCE_DIR@" , "main_func" , "regularizers_CPU", "utils.c") - ], + ext_modules = [Extension("ccpi.filters.cpu_regularizers_cython", + sources=[os.path.join("." , "src", "cpu_regularizers.pyx" ) ], include_dirs=extra_include_dirs, library_dirs=extra_library_dirs, extra_compile_args=extra_compile_args, @@ -98,3 +81,4 @@ setup( ) +@SETUP_GPU_WRAPPERS@
\ No newline at end of file diff --git a/Wrappers/Python/src/cpu_regularizers.pyx b/Wrappers/Python/src/cpu_regularizers.pyx index e69de29..a8f8c8f 100644 --- a/Wrappers/Python/src/cpu_regularizers.pyx +++ b/Wrappers/Python/src/cpu_regularizers.pyx @@ -0,0 +1,19 @@ +# distutils: language=c++ +""" +Copyright 2018 CCPi +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +Author: Edoardo Pasca +""" + +import cython +import numpy as np +cimport numpy as np diff --git a/Wrappers/Python/src/fista_module.cpp b/Wrappers/Python/src/fista_module.cpp index 3876cad..cef3ecc 100644 --- a/Wrappers/Python/src/fista_module.cpp +++ b/Wrappers/Python/src/fista_module.cpp @@ -1028,13 +1028,13 @@ bp::list TGV_PD(np::ndarray input, double d_lambda, double d_alpha1, double d_al return result; } -BOOST_PYTHON_MODULE(cpu_regularizers) +BOOST_PYTHON_MODULE(cpu_regularizers_boost) { np::initialize(); //To specify that this module is a package bp::object package = bp::scope(); - package.attr("__path__") = "cpu_regularizers"; + package.attr("__path__") = "cpu_regularizers_boost"; np::dtype dt1 = np::dtype::get_builtin<uint8_t>(); np::dtype dt2 = np::dtype::get_builtin<uint16_t>(); diff --git a/Wrappers/Python/test/test_cpu_regularizers.py b/Wrappers/Python/test/test_cpu_regularizers.py index 6c97875..9713baa 100644 --- a/Wrappers/Python/test/test_cpu_regularizers.py +++ b/Wrappers/Python/test/test_cpu_regularizers.py @@ -11,8 +11,9 @@ import numpy as np import os from enum import Enum import timeit -from ccpi.filters.cpu_regularizers import SplitBregman_TV , FGP_TV , LLT_model, \ - PatchBased_Regul , TGV_PD +from ccpi.filters.cpu_regularizers_boost import SplitBregman_TV , FGP_TV ,\ + LLT_model, PatchBased_Regul ,\ + TGV_PD ############################################################################### #https://stackoverflow.com/questions/13875989/comparing-image-in-url-to-image-in-filesystem-in-python/13884956#13884956 |