From e0210afda68debf2b4cc67fc963738da95275047 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Wed, 10 Aug 2022 14:38:34 -0400 Subject: [PATCH] Compiles OpenMVS --- SuperBuild/CMakeLists.txt | 23 ++++++++++++++++++++++- SuperBuild/cmake/External-OpenMVS.cmake | 3 ++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/SuperBuild/CMakeLists.txt b/SuperBuild/CMakeLists.txt index 51408a9e..81f33148 100644 --- a/SuperBuild/CMakeLists.txt +++ b/SuperBuild/CMakeLists.txt @@ -7,6 +7,23 @@ if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") endif() +if (APPLE) + # Use homebrew's clang compiler since Apple + # does not allow us to link to libomp + foreach(CXX_PATH /opt/homebrew/bin/c++-12 /usr/local/c++-12) + message("Checking for ${CXX_PATH}...") + if(EXISTS "${CXX_PATH}") + message("Found Homebrew's compiler: ${CXX_PATH}") + set(CMAKE_CXX_COMPILER ${CXX_PATH}) + set(APPLE_CMAKE_ARGS "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") + break() + endif() + endforeach() + if (NOT APPLE_CMAKE_ARGS) + message(WARNING "Cannot find Homebrew's compiler, compilation might fail...") + endif() +endif() + # Setup SuperBuild root location set(SB_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}) @@ -160,10 +177,13 @@ if (WIN32) else() set (POISSON_BUILD_CMD make -j${nproc} poissonrecon) set (POISSON_BIN_PATH "Linux/PoissonRecon") + if (APPLE) + set(POISSON_BUILD_CMD COMPILER=${CMAKE_CXX_COMPILER} make -j${nproc} -f Makefile.macos poissonrecon) + endif() endif() externalproject_add(poissonrecon GIT_REPOSITORY https://github.com/OpenDroneMap/PoissonRecon.git - GIT_TAG 272 + GIT_TAG m1native PREFIX ${SB_BINARY_DIR}/PoissonRecon SOURCE_DIR ${SB_SOURCE_DIR}/PoissonRecon UPDATE_COMMAND "" @@ -180,6 +200,7 @@ externalproject_add(dem2mesh SOURCE_DIR ${SB_SOURCE_DIR}/dem2mesh CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${SB_INSTALL_DIR} ${WIN32_GDAL_ARGS} + ${APPLE_CMAKE_ARGS} ) externalproject_add(dem2points diff --git a/SuperBuild/cmake/External-OpenMVS.cmake b/SuperBuild/cmake/External-OpenMVS.cmake index 95438758..7f2c6e3b 100644 --- a/SuperBuild/cmake/External-OpenMVS.cmake +++ b/SuperBuild/cmake/External-OpenMVS.cmake @@ -24,7 +24,8 @@ externalproject_add(eigen34 ) SET(ARM64_CMAKE_ARGS "") -if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64" ) + +if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64" OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm64") SET(ARM64_CMAKE_ARGS -DOpenMVS_USE_SSE=OFF) endif()