@@ -17,6 +17,7 @@ option(APR_TESTS "Build APR tests" OFF)
1717option (APR_PREFER_EXTERNAL_GTEST "When found, use the installed GTEST libs instead of included sources" OFF )
1818option (APR_PREFER_EXTERNAL_BLOSC "When found, use the installed BLOSC libs instead of included sources" OFF )
1919option (APR_BUILD_JAVA_WRAPPERS "Build APR JAVA wrappers" OFF )
20+ option (APR_BUILD_PYTHON_WRAPPERS "Build APR PYTHON wrappers (experimental - under development)" OFF )
2021option (APR_USE_CUDA "should APR use CUDA? (experimental - under development)" OFF )
2122option (APR_USE_OPENMP "should APR use OpenMP?" ON )
2223option (APR_BENCHMARK "add benchmarking code" OFF )
@@ -100,24 +101,31 @@ endif()
100101# Add submodule GLM (include files only)
101102include_directories ("external/glm" )
102103
104+ #message(STATUS "---------------------- VARS BEG ---------------------")
105+ #get_cmake_property(_variableNames VARIABLES)
106+ #foreach (_variableName ${_variableNames})
107+ # message(STATUS "${_variableName}=${${_variableName}}")
108+ #endforeach()
109+ #message(STATUS "---------------------- VARS END ---------------------")
103110
104111###############################################################################
105112# Configure compiler options
106113###############################################################################
107114# If you ever want to compile with Intel's icc (or any other compiler) provide
108115# compiler names/paths in cmake command like this:
109116# CC="icc" CXX="icc" CXXFLAGS="-O3" cmake -DAPR_TESTS=1
110- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -pedantic" )
117+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -pedantic " )
111118if (CMAKE_COMPILER_IS_GNUCC)
112119 set (CMAKE_CXX_FLAGS_RELEASE "-O4 -ffast-math" )
113120 set (CMAKE_CXX_FLAGS_DEBUG "-O0 -g" )
114121 set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Bdynamic" )
115122 if (NOT WIN32 )
116- set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -ldl" )
123+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -ldl -lz " )
117124 endif ()
118125elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
119126 set (CMAKE_CXX_FLAGS_RELEASE "-O3 -ffast-math" )
120127 set (CMAKE_CXX_FLAGS_DEBUG "-O0 -g" )
128+ # set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lz")
121129endif ()
122130
123131if (APR_BENCHMARK)
@@ -135,14 +143,14 @@ set(LIBRARY_NAME apr)
135143include_directories (src)
136144
137145set (SOURCE_FILES src/io/blosc_filter.c src/io/hdf5functions_blosc.cpp)
138- set (SOURCE_FILES_RAYCAST src/numerics/APRRaycaster.cpp src/vis/Camera.cpp src/vis/Object.cpp src/vis/RaytracedObject.cpp)
146+ # set(SOURCE_FILES_RAYCAST src/numerics/APRRaycaster.cpp src/vis/Camera.cpp src/vis/Object.cpp src/vis/RaytracedObject.cpp)
139147
140148add_library (aprObjLib OBJECT ${SOURCE_FILES} ${SOURCE_FILES_RAYCAST} )
141149
142150if (APR_USE_CUDA)
143151 message (STATUS "APR: Building CUDA for APR" )
144152 set (CMAKE_CUDA_STANDARD 14)
145- set (CMAKE_CUDA_FLAGS "--cudart shared -g -lineinfo -Xptxas -O3,-v -use_fast_math -DAPR_USE_CUDA" )
153+ set (CMAKE_CUDA_FLAGS "--default-stream per-thread -- cudart shared -g -lineinfo -Xptxas -O3,-v -use_fast_math -DAPR_USE_CUDA" )
146154 if (APR_BENCHMARK)
147155 set (CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -DAPR_BENCHMARK" )
148156 endif ()
@@ -151,10 +159,9 @@ if(APR_USE_CUDA)
151159 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DAPR_USE_CUDA" )
152160 set (APR_CUDA_SROUCE_FILES
153161 src/algorithm/ComputeGradientCuda.cu
154- src/algorithm/ComputeBsplineRecursiveFilter.cu
155- src/algorithm/ComputeInverseCubicBsplineCuda.cu
156162 src/data_structures/Mesh/PixelData.cu
157- src/algorithm/LocalIntensityScale.cu)
163+ src/algorithm/LocalIntensityScale.cu
164+ )
158165 include_directories (${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES} )
159166endif ()
160167
@@ -306,3 +313,24 @@ if(APR_BUILD_JAVA_WRAPPERS)
306313 swig_add_library(apr LANGUAGE java SOURCES libapr.i ${SOURCE_FILES} )
307314 swig_link_libraries(apr ${HDF5_LIBRARIES} ${TIFF_LIBRARIES} ${BLOSC_LIBRARIES} ${ZLIB_LIBRARIES} )
308315endif (APR_BUILD_JAVA_WRAPPERS)
316+
317+
318+ ###############################################################################
319+ # PYTHON wrappers
320+ ###############################################################################
321+ if (APR_BUILD_PYTHON_WRAPPERS)
322+ message (STATUS "APR: Building PYTHON wrappers" )
323+ set (PYBIND11_PYTHON_VERSION 2.7)
324+
325+ add_subdirectory ("external/pybind11" )
326+
327+ set (APR_PYTHON_MODULE_NAME pyApr)
328+ add_definitions (-DAPR_PYTHON_MODULE_NAME=${APR_PYTHON_MODULE_NAME} )
329+ add_library (${APR_PYTHON_MODULE_NAME} MODULE src/wrapper/pythonBind.cpp $<TARGET_OBJECTS:aprObjLib>)
330+ target_include_directories (${APR_PYTHON_MODULE_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} /src)
331+ target_link_libraries (${APR_PYTHON_MODULE_NAME} PRIVATE pybind11::module ${HDF5_LIBRARIES} ${TIFF_LIBRARIES} ${BLOSC_LIBRARIES} ${ZLIB_LIBRARIES} )
332+ set_target_properties (${APR_PYTHON_MODULE_NAME} PROPERTIES OUTPUT_NAME ${APR_PYTHON_MODULE_NAME} )
333+ set_target_properties (${APR_PYTHON_MODULE_NAME} PROPERTIES PREFIX "${PYTHON_MODULE_PREFIX} "
334+ SUFFIX "${PYTHON_MODULE_EXTENSION} " )
335+
336+ endif (APR_BUILD_PYTHON_WRAPPERS)
0 commit comments