From 79365756f3fe3f44b88318984cd82da7d62fbf89 Mon Sep 17 00:00:00 2001
From: Edoardo Pasca <edo.paskino@gmail.com>
Date: Mon, 29 Jan 2018 15:50:01 +0000
Subject: added CMakeLists.txt for Python Wrapper

---
 Wrappers/Python/CMakeLists.txt | 110 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 110 insertions(+)
 create mode 100644 Wrappers/Python/CMakeLists.txt

(limited to 'Wrappers/Python')

diff --git a/Wrappers/Python/CMakeLists.txt b/Wrappers/Python/CMakeLists.txt
new file mode 100644
index 0000000..e4c847c
--- /dev/null
+++ b/Wrappers/Python/CMakeLists.txt
@@ -0,0 +1,110 @@
+#   Copyright 2018 Edoardo Pasca
+cmake_minimum_required (VERSION 3.0)
+
+project(RegularizerPython)
+#https://stackoverflow.com/questions/13298504/using-cmake-with-setup-py
+
+# The version number.
+
+set (CIL_VERSION $ENV{CIL_VERSION} CACHE INTERNAL "Core Imaging Library version" FORCE)
+
+# conda orchestrated build
+message("CIL_VERSION ${CIL_VERSION}")
+#include (GenerateExportHeader)
+
+find_package(PythonInterp REQUIRED)
+if (PYTHONINTERP_FOUND)
+  message ("Current Python " ${PYTHON_VERSION_STRING} " found " ${PYTHON_EXECUTABLE})
+  if (PYTHON_VERSION_MAJOR EQUAL "3")
+    set (BOOST_PYTHON "python3")
+	set (BOOST_NUMPY "numpy3")
+  else()
+    set (BOOST_PYTHON "python")
+	set (BOOST_NUMPY "numpy")
+  endif()
+endif()
+
+find_package(Boost  REQUIRED
+	COMPONENTS ${BOOST_PYTHON} ${BOOST_NUMPY})
+
+if (Boost_FOUND)
+   message("Boost version " ${Boost_VERSION})
+   message("Boost include dir " ${Boost_INCLUDE_DIRS})
+   message("Boost library dir " ${Boost_LIBRARY_DIRS})
+   message("Boost libraries " ${Boost_LIBRARIES})
+endif()
+	
+## Build the regularizers package as a library
+message("Creating Regularizers as shared library")
+
+message("CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}")
+
+set(CMAKE_BUILD_TYPE "Release")
+
+if(WIN32)
+  set (FLAGS "/DWIN32 /EHsc /DBOOST_ALL_NO_LIB /openmp /DCCPiCore_EXPORTS")
+  set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:MSVCRT.lib")
+  
+  set (EXTRA_LIBRARIES 
+        ${Boost_LIBRARIES}
+		#"tiff"
+		)
+		
+  message("library lib: ${LIBRARY_LIB}")
+  
+elseif(UNIX)
+   set (FLAGS "-fopenmp -O2 -funsigned-char -Wall  -Wl,--no-undefined  -DCCPiReconstructionIterative_EXPORTS -std=c++0x")  
+   set (EXTRA_LIBRARIES 
+		${Boost_LIBRARIES}
+		#"tiff"
+		"gomp"
+		)
+endif()
+
+
+#set (BOOST_PYTHON_LIB ${Boost_${BOOST_PYTHON}_LIBRARY})
+#set (BOOST_NUMPY_LIB ${Boost_${BOOST_NUMPY}_LIBRARY})
+
+list(GET Boost_LIBRARIES 0 place )
+get_filename_component(BOOST_PYTHON_LIB ${place} NAME_WE )
+list(GET Boost_LIBRARIES 1 place )
+get_filename_component(BOOST_NUMPY_LIB ${place} NAME_WE )
+
+message ("found " ${BOOST_PYTHON_LIB})
+message ("found " ${BOOST_NUMPY_LIB})
+
+
+
+# GPU Regularizers
+
+find_package(CUDA)
+if (CUDA_FOUND)
+  message("CUDA FOUND")
+  set (SETUP_GPU_WRAPPERS "setup( \n\
+    name='ccpi', \n\
+ 	description='CCPi Core Imaging Library - Image Regularizers GPU',\n\
+ 	version=cil_version,\n\
+    cmdclass = {'build_ext': build_ext},\n\
+    ext_modules = [Extension('ccpi.filters.gpu_regularizers',\n\
+                              sources=[ \n\
+                                      os.path.join('.' , 'src', 'gpu_regularizers.pyx' ),\n\
+                                        ],\n\
+                             include_dirs=extra_include_dirs, \n\
+ 							 library_dirs=extra_library_dirs, \n\
+ 							 extra_compile_args=extra_compile_args, \n\
+ 							 libraries=extra_libraries ), \n\
+    ],\n\
+ 	zip_safe = False,	\n\
+ 	packages = {'ccpi','ccpi.filters'},\n\
+)")
+else()
+  message("CUDA NOT FOUND")
+  set(SETUP_GPU_WRAPPERS "#CUDA NOT FOUND")
+endif()
+
+configure_file("setup-regularizers.py.in" "setup-regularizers.py")
+
+
+#add_executable(regularizer_test ${CMAKE_CURRENT_SOURCE_DIR}/test/test_regularizer.cpp)
+
+#target_link_libraries (regularizer_test LINK_PUBLIC regularizers_lib)
-- 
cgit v1.2.3