diff --git a/.gitignore b/.gitignore index 35ccdd41a638eba9674ab1921659232c8cc06a70..9112d571f98ab28767565122d047ae697617f471 100644 --- a/.gitignore +++ b/.gitignore @@ -57,6 +57,7 @@ MANIFEST-* # OSX dir files .DS_Store +._.DS_Store # Vim files cscope.* diff --git a/3rdparty/osx/install_deps.sh b/3rdparty/osx/install_deps.sh new file mode 100755 index 0000000000000000000000000000000000000000..713dc669e575474e5fe735237e8ecf6863d17d24 --- /dev/null +++ b/3rdparty/osx/install_deps.sh @@ -0,0 +1,11 @@ +echo "This requires brew" +brew install openblas +brew install -vd snappy leveldb gflags glog szip lmdb +# need the homebrew science source for OpenCV and hdf5 +brew tap homebrew/science +brew install hdf5 opencv +# with Python pycaffe needs dependencies built from source +brew install --build-from-source --with-python -vd protobuf +brew install --build-from-source -vd boost boost-python +# without Python the usual installation suffices +brew install protobuf boost diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a3266be5f6c1f5964cba9ce9c0bc05e758a37f3..2b703b8d1a68eb9cb2297d9d6988d73b2fe74118 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,10 @@ set(OpenPose_VERSION_PATCH 0) set(OpenPose_VERSION ${OpenPose_VERSION_MAJOR}.${OpenPose_VERSION_MINOR}.${OpenPose_VERSION_PATCH}) +### OS-DEPENDENT FLAGS +set(CMAKE_MACOSX_RPATH 1) + + ### CMAKE HEADERS if (${CMAKE_VERSION} VERSION_GREATER 3.0.0) cmake_policy(SET CMP0048 NEW) @@ -15,12 +19,6 @@ endif (${CMAKE_VERSION} VERSION_GREATER 3.0.0) cmake_minimum_required(VERSION 2.8.7 FATAL_ERROR) # min. cmake version recommended by Caffe -### FIND THE OS -if (APPLE) # OS is Apple - message(FATAL_ERROR "Apple OS is not currently supported.") -endif (APPLE) - - ### Extra functionality include(cmake/Utils.cmake) @@ -52,10 +50,14 @@ if (WIN32) string(REPLACE "/MDd" "/MD" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") string(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") -elseif (UNIX AND NOT APPLE) +elseif (UNIX) # Turn on C++11 add_definitions(-std=c++11) set(CMAKE_CXX_FLAGS_RELEASE "-O3") +elseif (APPLE) + # Turn on C++11 + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + set(CMAKE_CXX_FLAGS_RELEASE "-O3") endif (WIN32) # C++ additional flags @@ -232,10 +234,20 @@ option(BUILD_SHARED_LIBS "Build as shared lib" ON) option(PROFILER_ENABLED "If enabled, OpenPose will be able to print out speed information at runtime." OFF) # Threads - Pthread -if (${GPU_MODE} MATCHES "OPENCL" OR (UNIX AND NOT APPLE)) +if (${GPU_MODE} MATCHES "OPENCL" OR (UNIX OR APPLE)) unset(CMAKE_THREAD_LIBS_INIT CACHE) find_package(Threads) -endif (${GPU_MODE} MATCHES "OPENCL" OR (UNIX AND NOT APPLE)) +endif (${GPU_MODE} MATCHES "OPENCL" OR (UNIX OR APPLE)) + +# Caffe OpenCL Boost Issue +if (APPLE) + if (${GPU_MODE} MATCHES "OPENCL") + unset(Boost_SYSTEM_LIBRARY CACHE) + find_package(Boost COMPONENTS system REQUIRED) + else () + set(Boost_SYSTEM_LIBRARY "") + endif () +endif () ### FIND REQUIRED PACKAGES list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules") @@ -289,7 +301,7 @@ else (${WITH_EIGEN} MATCHES "NONE") endif (${WITH_EIGEN} MATCHES "BUILD") endif (${WITH_EIGEN} MATCHES "NONE") -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) if (${GPU_MODE} MATCHES "CUDA") include(cmake/Cuda.cmake) find_package(CuDNN) @@ -365,7 +377,7 @@ if (UNIX AND NOT APPLE) sudo apt-get install libopencv-dev") endif (NOT OpenCV_FOUND) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) if (WIN32) @@ -472,7 +484,7 @@ endif (WIN32) ### CAFFE -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) if (${DL_FRAMEWORK} MATCHES "CAFFE") @@ -609,7 +621,7 @@ if (UNIX AND NOT APPLE) endif (${DL_FRAMEWORK} MATCHES "CAFFE") -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) ### PROJECT INCLUDES # Specify the include directories @@ -625,6 +637,11 @@ if (NOT ${WITH_EIGEN} MATCHES "NONE") ${EIGEN3_INCLUDE_DIRS}) endif (NOT ${WITH_EIGEN} MATCHES "NONE") +if (APPLE) + include_directories( + "/usr/local/opt/openblas/include") +endif (APPLE) + if (USE_MKL) include_directories( "${MKL_PATH}/include/") @@ -662,13 +679,13 @@ endif (WIN32) ### COLLECT ALL 3RD-PARTY LIBRARIES TO BE LINKED AGAINST set(OpenPose_3rdparty_libraries ${OpenCV_LIBS} ${GLOG_LIBRARY}) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) set(OpenPose_3rdparty_libraries ${OpenPose_3rdparty_libraries} ${GLOG_LIBRARY}) elseif (WIN32) set(OpenPose_3rdparty_libraries ${OpenPose_3rdparty_libraries} debug ${GFLAGS_LIBRARY_DEBUG} optimized ${GFLAGS_LIBRARY_RELEASE} debug ${GLOG_LIBRARY_DEBUG} optimized ${GLOG_LIBRARY_RELEASE}) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) # Deep net Framework if (${DL_FRAMEWORK} MATCHES "CAFFE") set(OpenPose_3rdparty_libraries ${OpenPose_3rdparty_libraries} ${Caffe_LIBS} ${GFLAGS_LIBRARY}) @@ -695,9 +712,9 @@ if (WITH_FLIR_CAMERA) set(OpenPose_3rdparty_libraries ${OpenPose_3rdparty_libraries} ${SPINNAKER_LIB}) endif (WITH_FLIR_CAMERA) # Pthread -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) set(OpenPose_3rdparty_libraries ${OpenPose_3rdparty_libraries} pthread) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) set(examples_3rdparty_libraries ${OpenPose_3rdparty_libraries} ${GFLAGS_LIBRARY}) @@ -731,7 +748,7 @@ message(STATUS "Models Downloaded.") ### GENERATE DOCUMENTATION -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) if (BUILD_DOCS) find_package(Doxygen) @@ -750,11 +767,11 @@ if (UNIX AND NOT APPLE) endif (DOXYGEN_FOUND) endif (BUILD_DOCS) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) ### INSTALL -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) if (Caffe_FOUND) # Install the headers install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/openpose DESTINATION include) @@ -781,4 +798,4 @@ if (UNIX AND NOT APPLE) add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) endif (Caffe_FOUND) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/cmake/Cuda.cmake b/cmake/Cuda.cmake index a922038f09b67dda7359279b9cc43da77e53fbe9..a6ca958b5dc6b1edefad89ef56ccf36d7b4c1690 100644 --- a/cmake/Cuda.cmake +++ b/cmake/Cuda.cmake @@ -64,7 +64,7 @@ function(op_detect_installed_gpus out_variable) if (NOT CUDA_gpu_detect_output) message(STATUS "Automatic GPU detection failed. Building for all known architectures.") set(${out_variable} ${Caffe_known_gpu_archs} PARENT_SCOPE) - else() + else () set(${out_variable} ${CUDA_gpu_detect_output} PARENT_SCOPE) endif () endfunction() @@ -98,7 +98,7 @@ function(op_select_nvcc_arch_flags out_variable) set(CUDA_ARCH_BIN ${Caffe_known_gpu_archs} CACHE STRING "Specify 'real' GPU architectures to build binaries for, BIN(PTX) format is supported") set(CUDA_ARCH_PTX "50" CACHE STRING "Specify 'virtual' PTX architectures to build PTX intermediate code for") # mark_as_advanced(CUDA_ARCH_BIN CUDA_ARCH_PTX) - else() + else () unset(CUDA_ARCH_BIN CACHE) unset(CUDA_ARCH_PTX CACHE) endif () @@ -115,7 +115,7 @@ function(op_select_nvcc_arch_flags out_variable) set(__cuda_arch_bin ${Caffe_known_gpu_archs}) elseif (${CUDA_ARCH} STREQUAL "Auto") op_detect_installed_gpus(__cuda_arch_bin) - else() # (${CUDA_ARCH} STREQUAL "Manual") + else () # (${CUDA_ARCH} STREQUAL "Manual") set(__cuda_arch_bin ${CUDA_ARCH_BIN}) endif () @@ -135,7 +135,7 @@ function(op_select_nvcc_arch_flags out_variable) # User explicitly specified PTX for the concrete BIN list(APPEND __nvcc_flags -gencode arch=compute_${CMAKE_MATCH_2},code=sm_${CMAKE_MATCH_1}) list(APPEND __nvcc_archs_readable sm_${CMAKE_MATCH_1}) - else() + else () # User didn't explicitly specify PTX for the concrete BIN, we assume PTX=BIN list(APPEND __nvcc_flags -gencode arch=compute_${__arch},code=sm_${__arch}) list(APPEND __nvcc_archs_readable sm_${__arch}) @@ -199,7 +199,7 @@ function(detect_cuDNN) # dynamic libs have different suffix in mac and linux if (APPLE) set(CUDNN_LIB_NAME "libcudnn.dylib") - else() + else () set(CUDNN_LIB_NAME "libcudnn.so") endif () @@ -230,7 +230,7 @@ function(detect_cuDNN) if (NOT CUDNN_VERSION_MAJOR) set(CUDNN_VERSION "???") - else() + else () set(CUDNN_VERSION "${CUDNN_VERSION_MAJOR}.${CUDNN_VERSION_MINOR}.${CUDNN_VERSION_PATCH}") endif () diff --git a/cmake/Modules/FindCuDNN.cmake b/cmake/Modules/FindCuDNN.cmake index 104eafa86cc775c6831db445dc8a2408971b3603..82ee365a6e12c56661587ca2b02a870022123eb4 100644 --- a/cmake/Modules/FindCuDNN.cmake +++ b/cmake/Modules/FindCuDNN.cmake @@ -30,9 +30,9 @@ if(CUDNN_INCLUDE AND CUDNN_LIBRARY) string(REGEX REPLACE "define CUDNN_PATCHLEVEL * +([0-9]+)" "\\1" CUDNN_VERSION_PATCH "${CUDNN_VERSION_PATCH}") - if(NOT CUDNN_VERSION_MAJOR) + if (NOT CUDNN_VERSION_MAJOR) set(CUDNN_VERSION "???") - else() + else () set(CUDNN_VERSION "${CUDNN_VERSION_MAJOR}.${CUDNN_VERSION_MINOR}.${CUDNN_VERSION_PATCH}") endif() diff --git a/cmake/Modules/FindGlog.cmake b/cmake/Modules/FindGlog.cmake index 99abbe478a02b452326be8c6a4f6dba6a328352c..79b8e23238d6674c045007e8060ef9eb656964cf 100644 --- a/cmake/Modules/FindGlog.cmake +++ b/cmake/Modules/FindGlog.cmake @@ -13,15 +13,15 @@ include(FindPackageHandleStandardArgs) set(GLOG_ROOT_DIR "" CACHE PATH "Folder contains Google glog") -if(WIN32) +if (WIN32) find_path(GLOG_INCLUDE_DIR glog/logging.h PATHS ${GLOG_ROOT_DIR}/src/windows) -else() +else () find_path(GLOG_INCLUDE_DIR glog/logging.h PATHS ${GLOG_ROOT_DIR}) endif() -if(MSVC) +if (MSVC) find_library(GLOG_LIBRARY_RELEASE libglog_static PATHS ${GLOG_ROOT_DIR} PATH_SUFFIXES Release) @@ -31,7 +31,7 @@ if(MSVC) PATH_SUFFIXES Debug) set(GLOG_LIBRARY optimized ${GLOG_LIBRARY_RELEASE} debug ${GLOG_LIBRARY_DEBUG}) -else() +else () find_library(GLOG_LIBRARY glog PATHS ${GLOG_ROOT_DIR} PATH_SUFFIXES lib lib64) diff --git a/doc/installation.md b/doc/installation.md index fdd1da63ee84e6a0e4ffa9201eb9a18a3974f0db..6dbd1c890a0e597c0420aed8cc6c8918b23c9558 100644 --- a/doc/installation.md +++ b/doc/installation.md @@ -32,8 +32,9 @@ This installation section is only intended if you plan to modify the OpenPose co ## Operating Systems - **Ubuntu** 14 and 16. - **Windows** 8 and 10. +- **Mac / OSX** Mavericks and above (only CPU version tested). If you want to test our Mac GPU version, email gines@cmu.edu. - **Nvidia Jetson TX2**, installation instructions in [doc/installation_jetson_tx2.md](./installation_jetson_tx2.md). -- OpenPose has also been used on **Windows 7**, **Mac**, **CentOS**, and **Nvidia Jetson (TK1 and TX1)** embedded systems. However, we do not officially support them at the moment. +- OpenPose has also been used on **Windows 7**, **CentOS**, and **Nvidia Jetson (TK1 and TX1)** embedded systems. However, we do not officially support them at the moment. @@ -120,7 +121,10 @@ The instructions in this section describe the steps to build OpenPose using CMak - [Caffe](http://posefs1.perception.cs.cmu.edu/OpenPose/3rdparty/windows/caffe_2018_01_18.zip): Unzip as `3rdparty/windows/caffe/`. - [Caffe dependencies](http://posefs1.perception.cs.cmu.edu/OpenPose/3rdparty/windows/caffe3rdparty_2017_07_14.zip): Unzip as `3rdparty/windows/caffe3rdparty/`. - [OpenCV 3.1](http://posefs1.perception.cs.cmu.edu/OpenPose/3rdparty/windows/opencv_310.zip): Unzip as `3rdparty/windows/opencv/`. -5. **Eigen prerequisite**: +6. OSX - **Caffe, OpenCV, and Caffe prerequisites**: + - Install deps by running `sudo bash 3rdparty/osx/install_deps.sh` on your terminal. + - Current OSX has only been tested with the CPU Version, and hence must be compiled with the `-DGPU_MODE=CPU_ONLY` flag. +7. **Eigen prerequisite**: - Note: This step is optional, only required for some specific extra functionality, such as extrinsic camera calibration. - If you enable the `WITH_EIGEN` flag when running CMake. You can either: 1. Do not do anything if you set the `WITH_EIGEN` flag to `BUILD`, CMake will automatically download Eigen. Alternatively, you might prefer to download it manually: diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 038f862e4a16ce435210ccd07c95aecf5ffe2704..083738a7635395fb71866d62f4fb34f0a6fc49f3 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -4,6 +4,6 @@ add_subdirectory(tutorial_add_module) add_subdirectory(tutorial_pose) add_subdirectory(tutorial_thread) add_subdirectory(tutorial_wrapper) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) add_subdirectory(tests) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/examples/calibration/CMakeLists.txt b/examples/calibration/CMakeLists.txt index 7873cef474bf58bcedefe222567deca414a8ee81..963f4bce23f8aab5e6cae7a01190bc0650e1ae60 100644 --- a/examples/calibration/CMakeLists.txt +++ b/examples/calibration/CMakeLists.txt @@ -5,7 +5,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES}) get_filename_component(SOURCE_NAME ${EXAMPLE_FILE} NAME_WE) - if (UNIX AND NOT APPLE) + if (UNIX OR APPLE) set(EXE_NAME "${SOURCE_NAME}.bin") elseif (WIN32) set(EXE_NAME "Calibration") diff --git a/examples/openpose/CMakeLists.txt b/examples/openpose/CMakeLists.txt index 7c35b8f192243d33a686b9da2d3042f40a02b2f5..5fa7691dfd3633a060f5d17cf8c7319f2406f8e3 100644 --- a/examples/openpose/CMakeLists.txt +++ b/examples/openpose/CMakeLists.txt @@ -5,7 +5,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES}) get_filename_component(SOURCE_NAME ${EXAMPLE_FILE} NAME_WE) - if (UNIX AND NOT APPLE) + if (UNIX OR APPLE) set(EXE_NAME "${SOURCE_NAME}.bin") elseif (WIN32) set(EXE_NAME "OpenPoseDemo") diff --git a/examples/tests/CMakeLists.txt b/examples/tests/CMakeLists.txt index 793ed26747ec507850af5de01c9111c834d96b02..748b36d30e5d0c824a1d784f77fd77d36531de5a 100644 --- a/examples/tests/CMakeLists.txt +++ b/examples/tests/CMakeLists.txt @@ -6,7 +6,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES}) get_filename_component(SOURCE_NAME ${EXAMPLE_FILE} NAME_WE) - if (UNIX AND NOT APPLE) + if (UNIX OR APPLE) set(EXE_NAME "${SOURCE_NAME}.bin") elseif (WIN32) set(EXE_NAME "${SOURCE_NAME}") diff --git a/examples/tutorial_add_module/CMakeLists.txt b/examples/tutorial_add_module/CMakeLists.txt index 29bf32235d9c71a504028826c087659aa80ccdc0..9388ab0203a8cde98abd0e7b7e2b7359f91a7a13 100644 --- a/examples/tutorial_add_module/CMakeLists.txt +++ b/examples/tutorial_add_module/CMakeLists.txt @@ -7,7 +7,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES}) get_filename_component(SOURCE_NAME ${EXAMPLE_FILE} NAME_WE) - if (UNIX AND NOT APPLE) + if (UNIX OR APPLE) set(EXE_NAME "${SOURCE_NAME}.bin") elseif (WIN32) set(EXE_NAME "${SOURCE_NAME}") diff --git a/examples/tutorial_pose/CMakeLists.txt b/examples/tutorial_pose/CMakeLists.txt index 1398ec3a09922c8f19bf74c1edb0eaddbfea48b0..b78e83b31626f5abf2013d87c6925f75cde343b3 100644 --- a/examples/tutorial_pose/CMakeLists.txt +++ b/examples/tutorial_pose/CMakeLists.txt @@ -6,7 +6,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES}) get_filename_component(SOURCE_NAME ${EXAMPLE_FILE} NAME_WE) - if (UNIX AND NOT APPLE) + if (UNIX OR APPLE) set(EXE_NAME "${SOURCE_NAME}.bin") elseif (WIN32) set(EXE_NAME "${SOURCE_NAME}") diff --git a/examples/tutorial_thread/CMakeLists.txt b/examples/tutorial_thread/CMakeLists.txt index 717fc663c4b7a62b0144e462db70cf19518a9a32..f905383f9f9e7dc2af8b7d5a1abc9e8cd08a560c 100644 --- a/examples/tutorial_thread/CMakeLists.txt +++ b/examples/tutorial_thread/CMakeLists.txt @@ -8,7 +8,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES}) get_filename_component(SOURCE_NAME ${EXAMPLE_FILE} NAME_WE) - if (UNIX AND NOT APPLE) + if (UNIX OR APPLE) set(EXE_NAME "${SOURCE_NAME}.bin") elseif (WIN32) set(EXE_NAME "${SOURCE_NAME}") diff --git a/examples/tutorial_wrapper/CMakeLists.txt b/examples/tutorial_wrapper/CMakeLists.txt index a2e093537fbf04621c385fd05b0492e32e55dd67..db1095b11058826a69490ee5d2fc130928b64e04 100644 --- a/examples/tutorial_wrapper/CMakeLists.txt +++ b/examples/tutorial_wrapper/CMakeLists.txt @@ -12,7 +12,7 @@ foreach(EXAMPLE_FILE ${EXAMPLE_FILES}) get_filename_component(SOURCE_NAME ${EXAMPLE_FILE} NAME_WE) - if (UNIX AND NOT APPLE) + if (UNIX OR APPLE) set(EXE_NAME "${SOURCE_NAME}.bin") elseif (WIN32) set(EXE_NAME "${SOURCE_NAME}") diff --git a/include/openpose/gpu/opencl.hcl b/include/openpose/gpu/opencl.hcl index d4e548d8f611414eeaa0c4e8e38bc4502fdf5b37..47b3157779a108568ec3d806a4dafd61a944e650 100644 --- a/include/openpose/gpu/opencl.hcl +++ b/include/openpose/gpu/opencl.hcl @@ -5,13 +5,16 @@ #define MULTI_LINE_STRING(ARG) #ARG -#define CL_HPP_ENABLE_EXCEPTIONS +#ifndef __APPLE__ + #define CL_HPP_ENABLE_EXCEPTIONS +#endif + #ifdef LOWER_CL_VERSION #define CL_HPP_MINIMUM_OPENCL_VERSION 120 #define CL_HPP_TARGET_OPENCL_VERSION 120 #else - #define CL_HPP_MINIMUM_OPENCL_VERSION 200 - #define CL_HPP_TARGET_OPENCL_VERSION 200 + #define CL_HPP_MINIMUM_OPENCL_VERSION 120 + #define CL_HPP_TARGET_OPENCL_VERSION 120 #endif typedef struct _cl_buffer_region cl_buffer_region; diff --git a/src/openpose/3d/CMakeLists.txt b/src/openpose/3d/CMakeLists.txt index a6aca2dab5f39bf33e94babbf556934a76e4fc09..55e555f0c4815ff169a20e92b4bc8048fcf9ed48 100644 --- a/src/openpose/3d/CMakeLists.txt +++ b/src/openpose/3d/CMakeLists.txt @@ -8,16 +8,16 @@ prepend(SOURCES_OP_3D_WITH_CP ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCES_OP_3D}) set(SOURCES_OP_3D_WITH_CP ${SOURCES_OP_3D_WITH_CP} PARENT_SCOPE) set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_3D_WITH_CP} PARENT_SCOPE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) if (${GPU_MODE} MATCHES "CUDA") cuda_add_library(openpose_3d ${SOURCES_OP_3D}) - else() + else () add_library(openpose_3d ${SOURCES_OP_3D}) endif () add_library(caffe SHARED IMPORTED) set_property(TARGET caffe PROPERTY IMPORTED_LOCATION ${Caffe_LIBS}) - target_link_libraries(openpose_3d caffe ${MKL_LIBS}) + target_link_libraries(openpose_3d caffe openpose_core ${MKL_LIBS}) if (BUILD_CAFFE) add_dependencies(openpose_3d openpose_caffe) @@ -28,4 +28,4 @@ if (UNIX AND NOT APPLE) RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/src/openpose/CMakeLists.txt b/src/openpose/CMakeLists.txt index 93d20bb1406f9d1d2be8fd6148588ad9678307a2..bf6bf88e9bf2ae82298784f89acc26dd2ffacf41 100644 --- a/src/openpose/CMakeLists.txt +++ b/src/openpose/CMakeLists.txt @@ -19,12 +19,12 @@ set(OP_HEADERS "") if (${GPU_MODE} MATCHES "CUDA") cuda_add_library(openpose ${SOURCES_OPENPOSE} ${OP_HEADERS}) -else() +else () add_library(openpose ${SOURCES_OPENPOSE} ${OP_HEADERS}) endif () # Ubuntu -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) target_link_libraries(openpose ${OpenPose_3rdparty_libraries}) if (CMAKE_COMPILER_IS_GNUCXX) foreach (SUB_DIR ${SUB_DIRS}) @@ -54,12 +54,12 @@ elseif (WIN32) set_property(TARGET openpose PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration)) set_property(TARGET openpose PROPERTY RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration)) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) add_library(caffe SHARED IMPORTED) set_property(TARGET caffe PROPERTY IMPORTED_LOCATION ${Caffe_LIBS}) - target_link_libraries(openpose caffe) + target_link_libraries(openpose caffe ${Boost_SYSTEM_LIBRARY} ${OpenCL_LIBRARIES}) if (BUILD_CAFFE) add_dependencies(openpose openpose_caffe) @@ -72,4 +72,4 @@ if (UNIX AND NOT APPLE) RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/src/openpose/calibration/CMakeLists.txt b/src/openpose/calibration/CMakeLists.txt index d88f29f771c61a070f77e79a2c6ea48b18e02342..60322632f34b4091cc555015e48ae50ed0726fdc 100644 --- a/src/openpose/calibration/CMakeLists.txt +++ b/src/openpose/calibration/CMakeLists.txt @@ -8,13 +8,15 @@ prepend(SOURCES_OP_CALIBRATION_WITH_CP ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCES_OP_ set(SOURCES_OP_CALIBRATION_WITH_CP ${SOURCES_OP_CALIBRATION_WITH_CP} PARENT_SCOPE) set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_CALIBRATION_WITH_CP} PARENT_SCOPE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) if (${GPU_MODE} MATCHES "CUDA") cuda_add_library(openpose_calibration ${SOURCES_OP_CALIBRATION}) - else() + else () add_library(openpose_calibration ${SOURCES_OP_CALIBRATION}) endif () + target_link_libraries(openpose_calibration openpose_core) + if (BUILD_CAFFE) add_dependencies(openpose_calibration openpose_caffe) endif (BUILD_CAFFE) @@ -24,4 +26,4 @@ if (UNIX AND NOT APPLE) RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/src/openpose/calibration/cameraParameterEstimation.cpp b/src/openpose/calibration/cameraParameterEstimation.cpp index b56c555eb177170a07a37ebba433a72236cc964f..a2da30b5593413fbe1ec18a4a9d046d4f37edba1 100644 --- a/src/openpose/calibration/cameraParameterEstimation.cpp +++ b/src/openpose/calibration/cameraParameterEstimation.cpp @@ -15,8 +15,8 @@ namespace op cv::Mat distortionCoefficients; Intrinsics() : - cameraMatrix{cv::Mat::eye(3, 3, CV_64F)}, - distortionCoefficients{cv::Mat::zeros(14, 1, CV_64F)} + cameraMatrix(cv::Mat::eye(3, 3, CV_64F)), + distortionCoefficients(cv::Mat::zeros(14, 1, CV_64F)) { } diff --git a/src/openpose/core/CMakeLists.txt b/src/openpose/core/CMakeLists.txt index d932f091b97dfdc821381d9a0b69a48cf7c228f5..2fb020adad095e5da60383ffc647da28c6568643 100644 --- a/src/openpose/core/CMakeLists.txt +++ b/src/openpose/core/CMakeLists.txt @@ -19,13 +19,21 @@ prepend(SOURCES_OP_CORE_WITH_CP ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCES_OP_CORE}) set(SOURCES_OP_CORE_WITH_CP ${SOURCES_OP_CORE_WITH_CP} PARENT_SCOPE) set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_CORE_WITH_CP} PARENT_SCOPE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) if (${GPU_MODE} MATCHES "CUDA") cuda_add_library(openpose_core ${SOURCES_OP_CORE}) - else() + else () add_library(openpose_core ${SOURCES_OP_CORE}) endif () + target_link_libraries(openpose_core openpose caffe ${OpenCV_LIBS} ${Caffe_LIBS} ${GLUT_LIBRARY} ${SPINNAKER_LIB} ${OpenCL_LIBRARIES} + ${GLOG_LIBRARY} ${OpenCV_LIBS} ${Caffe_LIBS} ${GFLAGS_LIBRARY} ${GLOG_LIBRARY} ${MKL_LIBS} ${GLUT_LIBRARY} ${SPINNAKER_LIB}) + + if (APPLE) + add_library(caffe SHARED IMPORTED) + set_property(TARGET caffe PROPERTY IMPORTED_LOCATION ${Caffe_LIBS}) + endif (APPLE) + if (BUILD_CAFFE) add_dependencies(openpose_core openpose_caffe) endif (BUILD_CAFFE) @@ -35,4 +43,4 @@ if (UNIX AND NOT APPLE) RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/src/openpose/face/CMakeLists.txt b/src/openpose/face/CMakeLists.txt index 6c20bf9432ab695f5109ce3375abb62253aa2b05..86e2c9806708db3e725d8e31335aa27c1ed21034 100644 --- a/src/openpose/face/CMakeLists.txt +++ b/src/openpose/face/CMakeLists.txt @@ -15,12 +15,14 @@ prepend(SOURCES_OP_FACE_WITH_CP ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCES_OP_FACE}) set(SOURCES_OP_FACE_WITH_CP ${SOURCES_OP_FACE_WITH_CP} PARENT_SCOPE) set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_FACE_WITH_CP} PARENT_SCOPE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) if (${GPU_MODE} MATCHES "CUDA") cuda_add_library(openpose_face ${SOURCES_OP_FACE}) - else() + else () add_library(openpose_face ${SOURCES_OP_FACE}) endif () + + target_link_libraries(openpose_face openpose_core) if (BUILD_CAFFE) add_dependencies(openpose_face openpose_caffe) @@ -31,4 +33,4 @@ if (UNIX AND NOT APPLE) RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/src/openpose/filestream/CMakeLists.txt b/src/openpose/filestream/CMakeLists.txt index d95c32d9baadc26ccd9dad0fd71284fee66fda86..35e93128f39d3464b61d88703807b8b27b0540eb 100644 --- a/src/openpose/filestream/CMakeLists.txt +++ b/src/openpose/filestream/CMakeLists.txt @@ -14,12 +14,14 @@ prepend(SOURCES_OP_FILESTREAM_WITH_CP ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCES_OP_F set(SOURCES_OP_FILESTREAM_WITH_CP ${SOURCES_OP_FILESTREAM_WITH_CP} PARENT_SCOPE) set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_FILESTREAM_WITH_CP} PARENT_SCOPE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) add_library(openpose_filestream ${SOURCES_OP_FILESTREAM}) + target_link_libraries(openpose_filestream openpose_core) + install(TARGETS openpose_filestream EXPORT OpenPose RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/src/openpose/gpu/CMakeLists.txt b/src/openpose/gpu/CMakeLists.txt index 610c27b48de9263050b70187a643b43f2301150d..10cf71653079bf9772059edaa481475c5ef12b74 100644 --- a/src/openpose/gpu/CMakeLists.txt +++ b/src/openpose/gpu/CMakeLists.txt @@ -8,18 +8,18 @@ prepend(SOURCES_OP_GPU_WITH_CP ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCES_OP_GPU}) set(SOURCES_OP_GPU_WITH_CP ${SOURCES_OP_GPU_WITH_CP} PARENT_SCOPE) set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_GPU_WITH_CP} PARENT_SCOPE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) if (${GPU_MODE} MATCHES "CUDA") cuda_add_library(openpose_gpu ${SOURCES_OP_GPU}) - else() + else () add_library(openpose_gpu ${SOURCES_OP_GPU}) endif () - # target_link_libraries(openpose_gpu openpose_core) + target_link_libraries(openpose_gpu openpose_core) install(TARGETS openpose_gpu EXPORT OpenPose RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/src/openpose/gpu/opencl.cpp b/src/openpose/gpu/opencl.cpp index ba8014315ce9218a5201b1af55044dbb4ea1338b..26bfe4776fbe0d650337aa4d6e7c289fb80104d4 100644 --- a/src/openpose/gpu/opencl.cpp +++ b/src/openpose/gpu/opencl.cpp @@ -53,6 +53,7 @@ namespace op replaceAll(src, "Type", type); program = cl::Program(context, src, true); } + #if defined(USE_OPENCL) && defined(CL_HPP_ENABLE_EXCEPTIONS) catch (cl::BuildError e) { auto buildInfo = e.getBuildLog(); @@ -62,6 +63,11 @@ namespace op error("OpenCL error: OpenPose crashed due to the previously printed errors.", __LINE__, __FUNCTION__, __FILE__); } + #endif + catch (const std::exception& e) + { + error(e.what(), __LINE__, __FUNCTION__, __FILE__); + } return true; #else UNUSED(program); @@ -231,10 +237,16 @@ namespace op } } } + #if defined(USE_OPENCL) && defined(CL_HPP_ENABLE_EXCEPTIONS) catch (cl::Error e) { op::log("Error: " + std::string(e.what())); } + #endif + catch (const std::exception& e) + { + error(e.what(), __LINE__, __FUNCTION__, __FILE__); + } } #else UNUSED(deviceId); @@ -417,7 +429,8 @@ namespace op std::vector platforms; std::vector devices; cl_uint type; - try { + try + { cl::Platform::get(&platforms); if (!platforms.size()) return -1; @@ -425,12 +438,21 @@ namespace op if (type == CL_SUCCESS) return devices.size(); else + { + error("No GPU Devices were found. OpenPose only supports GPU OpenCL", __LINE__, __FUNCTION__, __FILE__); return -1; + } } + #if defined(USE_OPENCL) && defined(CL_HPP_ENABLE_EXCEPTIONS) catch (cl::Error& e) { op::log("Error: " + std::string(e.what())); } + #endif + catch (const std::exception& e) + { + error(e.what(), __LINE__, __FUNCTION__, __FILE__); + } #else error("OpenPose must be compiled with the `USE_OPENCL` macro definition in order to use this" " functionality.", __LINE__, __FUNCTION__, __FILE__); diff --git a/src/openpose/gui/CMakeLists.txt b/src/openpose/gui/CMakeLists.txt index 10f4c47361d761cc317bc8027b9d9f7d2eafcc52..c5648ccf24ca9144e63b917f82288ec9ef02726f 100644 --- a/src/openpose/gui/CMakeLists.txt +++ b/src/openpose/gui/CMakeLists.txt @@ -13,7 +13,7 @@ set(SOURCES_OP_GUI_WITH_CP ${SOURCES_OP_GUI_WITH_CP} PARENT_SCOPE) set(SOURCES_OP_FILESTREAM_WITH_CP ${SOURCES_OP_FILESTREAM_WITH_CP} PARENT_SCOPE) set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_GUI_WITH_CP} PARENT_SCOPE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) add_library(openpose_gui ${SOURCES_OP_GUI}) target_link_libraries(openpose_gui openpose_pose ${OpenCV_LIBS}) @@ -22,5 +22,5 @@ if (UNIX AND NOT APPLE) RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/src/openpose/hand/CMakeLists.txt b/src/openpose/hand/CMakeLists.txt index fb592b57c72713dc9eafb8fd3f4865ad5ae9d250..be7792912578d8de9a9d4ce0839f0a1549e7fc5e 100644 --- a/src/openpose/hand/CMakeLists.txt +++ b/src/openpose/hand/CMakeLists.txt @@ -15,12 +15,14 @@ prepend(SOURCES_OP_HAND_WITH_CP ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCES_OP_HAND}) set(SOURCES_OP_HAND_WITH_CP ${SOURCES_OP_HAND_WITH_CP} PARENT_SCOPE) set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_HAND_WITH_CP} PARENT_SCOPE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) if (${GPU_MODE} MATCHES "CUDA") cuda_add_library(openpose_hand ${SOURCES_OP_HAND}) - else() + else () add_library(openpose_hand ${SOURCES_OP_HAND}) endif () + + target_link_libraries(openpose_hand openpose_core) if (BUILD_CAFFE) add_dependencies(openpose_hand openpose_caffe) @@ -31,4 +33,4 @@ if (UNIX AND NOT APPLE) RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/src/openpose/net/CMakeLists.txt b/src/openpose/net/CMakeLists.txt index 69fd9850f366031c9080e9e99abcb65a49cb9e1e..6686d03b22608163173726093efffdac33f6718b 100644 --- a/src/openpose/net/CMakeLists.txt +++ b/src/openpose/net/CMakeLists.txt @@ -18,16 +18,16 @@ prepend(SOURCES_OP_NET_WITH_CP ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCES_OP_NET}) set(SOURCES_OP_NET_WITH_CP ${SOURCES_OP_NET_WITH_CP} PARENT_SCOPE) set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_NET_WITH_CP} PARENT_SCOPE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) if (${GPU_MODE} MATCHES "CUDA") cuda_add_library(openpose_net ${SOURCES_OP_NET}) - else() + else () add_library(openpose_net ${SOURCES_OP_NET}) endif () add_library(caffe SHARED IMPORTED) set_property(TARGET caffe PROPERTY IMPORTED_LOCATION ${Caffe_LIBS}) - target_link_libraries(openpose_net caffe ${MKL_LIBS}) + target_link_libraries(openpose_net caffe ${MKL_LIBS} openpose_core) if (BUILD_CAFFE) add_dependencies(openpose_net openpose_caffe) @@ -38,4 +38,4 @@ if (UNIX AND NOT APPLE) RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/src/openpose/net/nmsBaseCL.cpp b/src/openpose/net/nmsBaseCL.cpp index a3c78e72310ceccbf60075bfe1b8a7854718e1f4..c496aa6078af5c4b5d4db80b017686853f9ec6a3 100644 --- a/src/openpose/net/nmsBaseCL.cpp +++ b/src/openpose/net/nmsBaseCL.cpp @@ -15,7 +15,7 @@ namespace op const std::string nmsOclCommonFunctions = MULTI_LINE_STRING( void nmsAccuratePeakPosition(__global const Type* sourcePtr, Type* fx, Type* fy, Type* fscore, const int peakLocX, const int peakLocY, const int width, const int height, - const T offsetX, const T offsetY) + const Type offsetX, const Type offsetY) { Type xAcc = 0.f; Type yAcc = 0.f; @@ -102,11 +102,11 @@ namespace op } ); - typedef cl::KernelFunctor NMSWriteKernelFunctor; + typedef cl::KernelFunctor NMSWriteKernelFunctor; const std::string nmsWriteKernel = MULTI_LINE_STRING( __kernel void nmsWriteKernel(__global Type* targetPtr, __global int* kernelPtr, __global const Type* sourcePtr, const int w, const int h, const int maxPeaks, const int debug, - const T offsetX, const T offsetY) + const Type offsetX, const Type offsetY) { int x = get_global_id(0); int y = get_global_id(1); @@ -249,12 +249,12 @@ namespace op " functionality.", __LINE__, __FUNCTION__, __FILE__); #endif } - #ifdef USE_OPENCL - catch (const cl::Error& e) - { - error(std::string(e.what()) + " : " + op::OpenCL::clErrorToString(e.err()) + " ID: " + - std::to_string(gpuID), __LINE__, __FUNCTION__, __FILE__); - } + #if defined(USE_OPENCL) && defined(CL_HPP_ENABLE_EXCEPTIONS) + catch (const cl::Error& e) + { + error(std::string(e.what()) + " : " + op::OpenCL::clErrorToString(e.err()) + " ID: " + + std::to_string(gpuID), __LINE__, __FUNCTION__, __FILE__); + } #endif catch (const std::exception& e) { diff --git a/src/openpose/net/resizeAndMergeBaseCL.cpp b/src/openpose/net/resizeAndMergeBaseCL.cpp index df3a63d0e74672533f1b409dbea4239d76fef355..5653198b9064e423789f70d01c4c62ce96a2cb49 100644 --- a/src/openpose/net/resizeAndMergeBaseCL.cpp +++ b/src/openpose/net/resizeAndMergeBaseCL.cpp @@ -326,7 +326,7 @@ namespace op " functionality.", __LINE__, __FUNCTION__, __FILE__); #endif } - #ifdef USE_OPENCL + #if defined(USE_OPENCL) && defined(CL_HPP_ENABLE_EXCEPTIONS) catch (const cl::Error& e) { error(std::string(e.what()) + " : " + op::OpenCL::clErrorToString(e.err()) + " ID: " + diff --git a/src/openpose/pose/CMakeLists.txt b/src/openpose/pose/CMakeLists.txt index 74b0267c7840150c01c0d18e84ef62490c396f83..a75a89ff726d98b4251730bce65c9938cb61c800 100644 --- a/src/openpose/pose/CMakeLists.txt +++ b/src/openpose/pose/CMakeLists.txt @@ -19,12 +19,14 @@ prepend(SOURCES_OP_POSE_WITH_CP ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCES_OP_POSE}) set(SOURCES_OP_POSE_WITH_CP ${SOURCES_OP_POSE_WITH_CP} PARENT_SCOPE) set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_POSE_WITH_CP} PARENT_SCOPE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) if (${GPU_MODE} MATCHES "CUDA") cuda_add_library(openpose_pose ${SOURCES_OP_POSE}) - else() + else () add_library(openpose_pose ${SOURCES_OP_POSE}) endif () + + target_link_libraries(openpose_pose openpose_core) if (BUILD_CAFFE) add_dependencies(openpose_pose openpose_caffe) @@ -35,4 +37,4 @@ if (UNIX AND NOT APPLE) RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/src/openpose/pose/poseRenderer.cpp b/src/openpose/pose/poseRenderer.cpp index 55b05090739e472bd1903feb16aeccc7cce6f566..0ef273ba22f536966eb244750d3b99dcd4444487 100644 --- a/src/openpose/pose/poseRenderer.cpp +++ b/src/openpose/pose/poseRenderer.cpp @@ -29,7 +29,7 @@ namespace op catch (const std::exception& e) { error(e.what(), __LINE__, __FUNCTION__, __FILE__); - return {}; + return std::map(); } } diff --git a/src/openpose/producer/CMakeLists.txt b/src/openpose/producer/CMakeLists.txt index 6130f7b7a875ee0e9ffa7b3f5c4d6f5e4d1037d5..de1ff329094ecd5d4abded1006ad586a511dd371 100644 --- a/src/openpose/producer/CMakeLists.txt +++ b/src/openpose/producer/CMakeLists.txt @@ -14,7 +14,7 @@ prepend(SOURCES_OP_PRODUCER_WITH_CP ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCES_OP_PRO set(SOURCES_OP_PRODUCER_WITH_CP ${SOURCES_OP_PRODUCER_WITH_CP} PARENT_SCOPE) set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_PRODUCER_WITH_CP} PARENT_SCOPE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) add_library(openpose_producer ${SOURCES_OP_PRODUCER}) target_link_libraries(openpose_producer ${OpenCV_LIBS} openpose_core openpose_thread openpose_filestream) @@ -24,4 +24,4 @@ if (UNIX AND NOT APPLE) RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/src/openpose/thread/CMakeLists.txt b/src/openpose/thread/CMakeLists.txt index 14b6814bcbf6c82b5f5e5187a8fd21b46705cc1d..501513978bfd7a40731bb108561034c630dcc16b 100644 --- a/src/openpose/thread/CMakeLists.txt +++ b/src/openpose/thread/CMakeLists.txt @@ -6,12 +6,14 @@ prepend(SOURCES_OP_THREAD_WITH_CP ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCES_OP_THREA set(SOURCES_OP_THREAD_WITH_CP ${SOURCES_OP_THREAD_WITH_CP} PARENT_SCOPE) set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_THREAD_WITH_CP} PARENT_SCOPE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) add_library(openpose_thread ${SOURCES_OP_THREAD}) + + target_link_libraries(openpose_thread openpose_core) install(TARGETS openpose_thread EXPORT OpenPose RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/src/openpose/tracking/CMakeLists.txt b/src/openpose/tracking/CMakeLists.txt index 1fe2e892824d3a824525b77227cfa46bd860c04b..7cff327bca06b930e75d007e72cade0359332d84 100644 --- a/src/openpose/tracking/CMakeLists.txt +++ b/src/openpose/tracking/CMakeLists.txt @@ -10,14 +10,14 @@ prepend(SOURCES_OP_TRACKING_WITH_CP ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCES_OP_TRA set(SOURCES_OP_TRACKING_WITH_CP ${SOURCES_OP_TRACKING_WITH_CP} PARENT_SCOPE) set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_TRACKING_WITH_CP} PARENT_SCOPE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) add_library(openpose_tracking ${SOURCES_OP_TRACKING}) - set_target_properties(openpose_tracking PROPERTIES COMPILE_FLAGS ${OP_CXX_FLAGS}) + target_link_libraries(openpose_tracking openpose_core) install(TARGETS openpose_tracking EXPORT OpenPose RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/src/openpose/utilities/CMakeLists.txt b/src/openpose/utilities/CMakeLists.txt index d18cc8d543fd2abe3c4fad75422135dc1021f89b..46ccede059b7b6069c11e52466105c1a3bb937d1 100644 --- a/src/openpose/utilities/CMakeLists.txt +++ b/src/openpose/utilities/CMakeLists.txt @@ -12,10 +12,10 @@ prepend(SOURCES_OP_UTILITIES_WITH_CP ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCES_OP_UT set(SOURCES_OP_UTILITIES_WITH_CP ${SOURCES_OP_UTILITIES_WITH_CP} PARENT_SCOPE) set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_UTILITIES_WITH_CP} PARENT_SCOPE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) if (${GPU_MODE} MATCHES "CUDA") cuda_add_library(openpose_utilities ${SOURCES_OP_UTILITIES}) - else() + else () add_library(openpose_utilities ${SOURCES_OP_UTILITIES}) endif () @@ -26,4 +26,4 @@ if (UNIX AND NOT APPLE) RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE) diff --git a/src/openpose/utilities/fileSystem.cpp b/src/openpose/utilities/fileSystem.cpp index a5e6e9ff8ca0a7c509f3918a538f9a3567583f48..aca7b0cf8f4d017e5221a106082a869d989cd7ca 100644 --- a/src/openpose/utilities/fileSystem.cpp +++ b/src/openpose/utilities/fileSystem.cpp @@ -2,7 +2,7 @@ #ifdef _WIN32 #include // _mkdir #include // DWORD, GetFileAttributesA -#elif defined __unix__ +#elif defined __unix__ || defined __APPLE__ #include // opendir #include // mkdir #else @@ -26,7 +26,7 @@ namespace op { #ifdef _WIN32 const auto status = _mkdir(formatedPath.c_str()); - #elif defined __unix__ + #elif defined __unix__ || defined __APPLE__ // Create folder // Access permission - 775 (7, 7, 4+1) // https://www.gnu.org/software/libc/manual/html_node/Permission-Bits.html @@ -62,7 +62,7 @@ namespace op return true; // It is not a directory return false; // this is not a directory! - #elif defined __unix__ + #elif defined __unix__ || defined __APPLE__ // It is a directory if (auto* directory = opendir(formatedPath.c_str())) { @@ -291,7 +291,7 @@ namespace op while (FindNextFile(hFind, &data) != 0); FindClose(hFind); } - #elif defined __unix__ + #elif defined __unix__ || defined __APPLE__ std::shared_ptr directoryPtr( opendir(formatedPath.c_str()), [](DIR* formatedPath){ formatedPath && closedir(formatedPath); } diff --git a/src/openpose/wrapper/CMakeLists.txt b/src/openpose/wrapper/CMakeLists.txt index 89b709e1db94e75ca77cc305c5fe0c50075b33df..2007dbad2f92554f375749b228823e7649c79b38 100644 --- a/src/openpose/wrapper/CMakeLists.txt +++ b/src/openpose/wrapper/CMakeLists.txt @@ -12,7 +12,7 @@ prepend(SOURCES_OP_WRAPPER_WITH_CP ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCES_OP_WRAP set(SOURCES_OP_WRAPPER_WITH_CP ${SOURCES_OP_WRAPPER_WITH_CP} PARENT_SCOPE) set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_WRAPPER_WITH_CP} PARENT_SCOPE) -if (UNIX AND NOT APPLE) +if (UNIX OR APPLE) add_library(openpose_wrapper ${SOURCES_OP_WRAPPER}) target_link_libraries(openpose_wrapper openpose_thread openpose_pose openpose_hand openpose_core openpose_face openpose_filestream openpose_gui openpose_producer @@ -23,4 +23,4 @@ if (UNIX AND NOT APPLE) RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/openpose) -endif (UNIX AND NOT APPLE) +endif (UNIX OR APPLE)