aur/fix-build.patch

367 lines
16 KiB
Diff

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 313a704c8..1e39e8dbf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.14)
-project(aliceVision LANGUAGES C CXX)
+project(aliceVision LANGUAGES C CXX CUDA)
option(ALICEVISION_BUILD_DEPENDENCIES "Build all AliceVision dependencies" OFF)
option(AV_BUILD_ALICEVISION "Enable building of AliceVision" ON)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index dfa00ff0b..0c1a917d9 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -123,7 +123,7 @@ if (ALICEVISION_USE_RPATH)
set(CMAKE_MACOSX_RPATH 1)
set(CMAKE_INSTALL_RPATH "@loader_path/../${CMAKE_INSTALL_LIBDIR};@loader_path")
elseif (UNIX)
- set(CMAKE_INSTALL_RPATH "\\$ORIGIN/../${CMAKE_INSTALL_LIBDIR};\\$ORIGIN")
+ set(CMAKE_INSTALL_RPATH "\\$ORIGIN/../${CMAKE_INSTALL_LIBDIR};\\$ORIGIN;/opt/alicevision/lib")
endif()
endif()
@@ -180,8 +180,8 @@ endmacro(add_target_properties)
# ==============================================================================
set(CMAKE_MODULE_PATH
${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
-include(OptimizeForArchitecture)
-OptimizeForArchitecture()
+#include(OptimizeForArchitecture)
+#OptimizeForArchitecture() #we don't want this as it causes a segfault and anyway we want to refer to makepkg config
set(ALICEVISION_HAVE_SSE 0)
if (SSE2_FOUND OR TARGET_ARCHITECTURE STREQUAL "native")
if (MSVC AND NOT ${CMAKE_CL_64})
@@ -373,7 +373,7 @@ endif()
# ==============================================================================
# Eigen
# ==============================================================================
-find_package(Eigen3 3.3 REQUIRED)
+find_package(Eigen3 REQUIRED)
if (Eigen3_FOUND OR EIGEN3_FOUND)
# message(STATUS "EIGEN_INCLUDE_DIR: ${EIGEN_INCLUDE_DIR}")
if (AV_EIGEN_MEMORY_ALIGNMENT)
@@ -448,7 +448,9 @@ endif()
# Flann
# ==============================================================================
if (ALICEVISION_BUILD_SFM)
- find_package(lz4 REQUIRED)
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(lz4 REQUIRED IMPORTED_TARGET liblz4)
+ add_library(lz4::lz4 ALIAS PkgConfig::lz4)
find_package(flann REQUIRED)
if (TARGET lz4::lz4)
@@ -583,6 +585,8 @@ set(ALICEVISION_HAVE_USD 0)
if (NOT ALICEVISION_USE_USD STREQUAL "OFF")
find_package(pxr CONFIG)
+ find_package(X11 REQUIRED)
+ find_package(hdf5 REQUIRED)
if (pxr_FOUND)
set(ALICEVISION_HAVE_USD 1)
@@ -705,7 +709,9 @@ if (ALICEVISION_HAVE_CUDA)
set(CUDA_NVCC_FLAGS_DEBUG "${CUDA_NVCC_FLAGS_DEBUG};-G;-g")
# set(CUDA_NVCC_FLAGS_RELEASE "${CUDA_NVCC_FLAGS_RELEASE};-O3")
- if (CUDA_VERSION_MAJOR VERSION_GREATER_EQUAL 12)
+ if (CUDA_VERSION_MAJOR VERSION_GREATER_EQUAL 13)
+ set(ALICEVISION_CUDA_CC_LIST_BASIC 75 80 86 87 89 90)
+ elseif (CUDA_VERSION_MAJOR VERSION_GREATER_EQUAL 12)
set(ALICEVISION_CUDA_CC_LIST_BASIC 50 52 60 61 62 70 72 75 80 86 87 89 90)
elseif (CUDA_VERSION VERSION_GREATER_EQUAL 11.8)
set(ALICEVISION_CUDA_CC_LIST_BASIC 35 50 52 60 61 62 70 72 75 80 86 87 89 90)
@@ -733,7 +739,7 @@ if (ALICEVISION_HAVE_CUDA)
list(GET ALICEVISION_CUDA_CC_LIST ${ALICEVISION_CC_LIST_LEN} ALICEVISION_CUDA_CC_LIST_LAST)
set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS};-gencode;arch=compute_${ALICEVISION_CUDA_CC_LIST_LAST},code=compute_${ALICEVISION_CUDA_CC_LIST_LAST}")
- set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS};-std=c++20")
+ set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS};-std=c++20;-ccbin=SEDNVCC_CCBINHERE;-Xcompiler=-fno-lto")
# default stream legacy implies that the 0 stream synchronizes all streams
set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS};--default-stream;legacy")
@@ -876,6 +882,7 @@ set(ALICEVISION_INCLUDE_DIRS
${COINUTILS_INCLUDE_DIRS}
${CLP_INCLUDE_DIRS}
${OSI_INCLUDE_DIRS}
+ ${Python3_INCLUDE_DIRS}
)
include_directories(${ALICEVISION_INCLUDE_DIRS})
@@ -912,7 +919,7 @@ else()
set(SPHINX_HTML_DIR "${CMAKE_CURRENT_BINARY_DIR}/htmlDoc")
configure_file(
- "${CMAKE_CURRENT_SOURCE_DIR}/../docs/sphinx/rst/conf.py"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../docs/sphinx/conf.py"
"${CMAKE_CURRENT_BINARY_DIR}/conf.py"
@ONLY
)
@@ -920,7 +927,7 @@ else()
add_custom_target(doc ALL
${SPHINX_EXECUTABLE}
-b html
- "${CMAKE_CURRENT_SOURCE_DIR}/../docs/sphinx/rst"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../docs/sphinx/"
"${SPHINX_HTML_DIR}"
COMMENT "Building HTML documentation with Sphinx"
)
diff --git a/src/aliceVision/gpu/gpu.cpp b/src/aliceVision/gpu/gpu.cpp
index afb6e8756..ff8d5636c 100644
--- a/src/aliceVision/gpu/gpu.cpp
+++ b/src/aliceVision/gpu/gpu.cpp
@@ -113,7 +113,7 @@ std::string gpuInformationCUDA()
<< "\t- id: " << i << std::endl
<< "\t- name: " << deviceProperties.name << std::endl
<< "\t- compute capability: " << deviceProperties.major << "." << deviceProperties.minor << std::endl
- << "\t- clock frequency (kHz): " << deviceProperties.clockRate << std::endl
+ //<< "\t- clock frequency (kHz): " << deviceProperties.clockRate << std::endl
<< "\t- total device memory: " << deviceProperties.totalGlobalMem / (1024 * 1024) << " MB " << std::endl
<< "\t- device memory available: " << avail / (1024 * 1024) << " MB " << std::endl
<< "\t- per-block shared memory: " << deviceProperties.sharedMemPerBlock << std::endl
diff --git a/src/aliceVision/image/CMakeLists.txt b/src/aliceVision/image/CMakeLists.txt
index cd4b4bc87..f432fc281 100644
--- a/src/aliceVision/image/CMakeLists.txt
+++ b/src/aliceVision/image/CMakeLists.txt
@@ -68,9 +68,10 @@ if (ALICEVISION_BUILD_SWIG_BINDING)
aliceVision_image
${Python3_LIBRARIES}
PRIVATE_INCLUDE_DIRS
+ ${ALICEVISION_ROOT}/external/tmpinstall/include
../include
${ALICEVISION_ROOT}/include
${Python3_INCLUDE_DIRS}
${Python3_NumPy_INCLUDE_DIRS}
)
-endif()
\ No newline at end of file
+endif()
diff --git a/src/cmake/AliceVisionConfig.cmake.in b/src/cmake/AliceVisionConfig.cmake.in
index 8dc4a0d12..6315227b4 100644
--- a/src/cmake/AliceVisionConfig.cmake.in
+++ b/src/cmake/AliceVisionConfig.cmake.in
@@ -48,7 +48,7 @@ include(CMakeFindDependencyMacro)
set(Ceres_DIR @Ceres_DIR@)
find_dependency(Ceres)
-find_dependency(OpenImageIO 2.1)
+find_dependency(OpenImageIO 2.1 PATHS /opt/alicevision)
# whether it is built with CCTags
set(ALICEVISION_HAVE_CCTAG @ALICEVISION_HAVE_CCTAG@)
diff --git a/src/cmake/Dependencies.cmake b/src/cmake/Dependencies.cmake
index c14b5c430..27bca5482 100644
--- a/src/cmake/Dependencies.cmake
+++ b/src/cmake/Dependencies.cmake
@@ -514,21 +514,20 @@ if(AV_BUILD_PNG)
ExternalProject_Add(
${PNG_TARGET}
- URL https://download.sourceforge.net/libpng/libpng-1.6.39.tar.gz
- URL_HASH MD5=93b8e79a008747e70f7704f600349559
- DOWNLOAD_DIR ${BUILD_DIR}/download/libpng
PREFIX ${BUILD_DIR}
BUILD_IN_SOURCE 0
BUILD_ALWAYS 0
UPDATE_COMMAND ""
- SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/png
+ SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/../../libpng-1.6.39
BINARY_DIR ${BUILD_DIR}/png_build
- INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
+ INSTALL_DIR ${BUILD_DIR}/tmpinstall
CONFIGURE_COMMAND ${CMAKE_COMMAND} ${CMAKE_CORE_BUILD_FLAGS}
${ZLIB_CMAKE_FLAGS}
-DPNG_ARM_NEON=${AV_PNG_ARM_NEON}
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
+ -DCMAKE_INSTALL_RPATH=/opt/alicevision/lib
+ -DCMAKE_POLICY_VERSION_MINIMUM=3.5
<SOURCE_DIR>
BUILD_COMMAND $(MAKE) -j${AV_BUILD_DEPENDENCIES_PARALLEL}
DEPENDS ${ZLIB_TARGET}
@@ -1136,36 +1135,32 @@ if(AV_BUILD_OPENIMAGEIO)
set(OPENIMAGEIO_TARGET openimageio)
ExternalProject_Add(${OPENIMAGEIO_TARGET}
- URL https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v2.5.18.0.tar.gz
- URL_HASH MD5=3975e5dc0970ad859244a58dc2b8e147
- DOWNLOAD_DIR ${BUILD_DIR}/download/oiio
PREFIX ${BUILD_DIR}
BUILD_IN_SOURCE 0
BUILD_ALWAYS 0
UPDATE_COMMAND ""
- SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/openimageio
+ SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/../../OpenImageIO-2.5.18.0
BINARY_DIR ${BUILD_DIR}/openimageio_build
- INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
+ INSTALL_DIR ${BUILD_DIR}/tmpinstall
CONFIGURE_COMMAND
${CMAKE_COMMAND}
${CMAKE_CORE_BUILD_FLAGS}
-DCMAKE_PREFIX_PATH=${CMAKE_INSTALL_PREFIX}
-DBOOST_ROOT=${CMAKE_INSTALL_PREFIX}
+ -DPNG_ROOT=${BUILD_DIR}/tmpinstall
-DOIIO_BUILD_TESTS:BOOL=OFF
-DOIIO_BUILD_TOOLS:BOOL=OFF
- -DILMBASE_HOME=${CMAKE_INSTALL_PREFIX}
- -DOPENEXR_HOME=${CMAKE_INSTALL_PREFIX}
${TIFF_CMAKE_FLAGS} ${ZLIB_CMAKE_FLAGS} ${PNG_CMAKE_FLAGS} ${JPEG_CMAKE_FLAGS} ${LIBRAW_CMAKE_FLAGS} ${OPENEXR_CMAKE_FLAGS}
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> <SOURCE_DIR>
-DSTOP_ON_WARNING=OFF
- -DUSE_FFMPEG=${AV_BUILD_FFMPEG}
- -DUSE_TURBOJPEG=${AV_BUILD_JPEG}
- -DUSE_LIBRAW=${AV_BUILD_LIBRAW}
- -DUSE_OPENEXR=${AV_BUILD_OPENEXR}
- -DUSE_TIFF=${AV_BUILD_TIFF}
- -DUSE_PNG=${AV_BUILD_PNG}
+ -DUSE_FFMPEG=ON
+ -DUSE_TURBOJPEG=ON
+ -DUSE_LIBRAW=ON
+ -DUSE_OPENEXR=ON
+ -DUSE_TIFF=ON
+ -DUSE_PNG=ON
-DPython_EXECUTABLE=${Python_EXECUTABLE}
- -DUSE_PYTHON=ON -DUSE_OPENCV=OFF -DUSE_OPENGL=OFF -DUSE_NUKE=OFF -DUSE_PTEX=OFF -DBUILD_DOCS=OFF -DBUILD_TESTING=OFF
+ -DUSE_PYTHON=ON -DUSE_OPENCV=ON -DUSE_OPENGL=ON -DUSE_NUKE=OFF -DUSE_PTEX=ON -DBUILD_DOCS=OFF -DBUILD_TESTING=OFF
# TODO: build with libheif
BUILD_COMMAND $(MAKE) -j${AV_BUILD_DEPENDENCIES_PARALLEL}
DEPENDS ${BOOST_TARGET} ${OPENEXR_TARGET} ${TIFF_TARGET} ${PNG_TARGET} ${JPEG_TARGET} ${LIBRAW_TARGET} ${ZLIB_TARGET} ${FFMPEG_TARGET} ${PYBIND11_TARGET}
@@ -1434,18 +1429,30 @@ if(AV_BUILD_ALICEVISION)
BINARY_DIR ${BUILD_DIR}/aliceVision_build
INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
CONFIGURE_COMMAND ${CMAKE_COMMAND}
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DBUILD_SHARED_LIBS:BOOL=ON -DTARGET_ARCHITECTURE=core
-DALICEVISION_ROOT=${ALICEVISION_ROOT}
+ -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=TRUE
+ -DCMAKE_INSTALL_PREFIX=/usr
+ -DOpenImageIO_ROOT=${ALICEVISION_ROOT}/external/tmpinstall
+ -DCOINUTILS_INCLUDE_DIR_HINTS=/usr/include/coin
+ -DCLP_INCLUDE_DIR_HINTS=/usr/include/coin
+ -DOSI_INCLUDE_DIR_HINTS=/usr/include/coin
+ -DPopSift_DIR=/usr
+ -DCCTag_DIR=/usr/lib/cmake/CCTag
+ -DUNCERTAINTYTE_DIR=/usr
+ -DMAGMA_ROOT=/opt/cuda/targets/x86_64-linux
-DALICEVISION_USE_ALEMBIC=ON
- -DMINIGLOG=ON
- -DALICEVISION_USE_CCTAG=${AV_BUILD_CCTAG}
- -DALICEVISION_USE_APRILTAG=${AV_BUILD_APRILTAG}
- -DALICEVISION_USE_OPENCV=${AV_BUILD_OPENCV}
- -DALICEVISION_USE_OPENGV=${AV_BUILD_OPENGV}
- -DALICEVISION_USE_POPSIFT=${AV_BUILD_POPSIFT}
- -DALICEVISION_USE_CUDA=${AV_USE_CUDA}
- -DALICEVISION_BUILD_SWIG_BINDING=${AV_USE_SWIG}
-DALICEVISION_BUILD_DOC=OFF
+ -DALICEVISION_USE_CUDA=ON
+ -DALICEVISION_USE_CCTAG=ON
+ -DALICEVISION_USE_POPSIFT=ON
+ -DALICEVISION_USE_UNCERTAINTYTE=OFF
+ -DALICEVISION_USE_ALEMBIC=ON
+ -DALICEVISION_USE_OPENGV=ON
+ -DALICEVISION_USE_OPENCV=ON
+ -DALICEVISION_USE_ONNX=ON
+ -DALICEVISION_USE_USD=ON
+ -DALICEVISION_BUILD_SWIG_BINDING=ON
+ -DCMAKE_CXX_STANDARD=17
${ZLIB_CMAKE_FLAGS}
${ASSIMP_CMAKE_FLAGS}
@@ -1476,5 +1483,6 @@ if(AV_BUILD_ALICEVISION)
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> <SOURCE_DIR>
DEPENDS ${AV_DEPS}
+ INSTALL_COMMAND ""
)
endif()
diff --git a/src/cmake/FindUncertaintyTE.cmake b/src/cmake/FindUncertaintyTE.cmake
index bcd4d6bfe..a1fa2b58f 100644
--- a/src/cmake/FindUncertaintyTE.cmake
+++ b/src/cmake/FindUncertaintyTE.cmake
@@ -52,7 +52,7 @@ ELSE(UNCERTAINTYTE_INCLUDE_DIR)
ENDIF(UNCERTAINTYTE_INCLUDE_DIR)
-GET_FILENAME_COMPONENT(UNCERTAINTYTE_LIBRARY_DIR "${UNCERTAINTYTE_LIBRARY}" PATH)
+cmake_path(GET UNCERTAINTYTE_LIBRARY ROOT_PATH UNCERTAINTYTE_LIBRARY_DIR)
if(UNCERTAINTYTE_INCLUDE_DIR)
message(STATUS "UncertaintyTE include directory: ${UNCERTAINTYTE_INCLUDE_DIR}")
diff --git a/src/cmake/Helpers.cmake b/src/cmake/Helpers.cmake
index 5c12a46ee..061775e9d 100644
--- a/src/cmake/Helpers.cmake
+++ b/src/cmake/Helpers.cmake
@@ -293,6 +293,8 @@ function(alicevision_swig_add_library module_name)
set_property(SOURCE ${SWIG_MODULE_SOURCES} PROPERTY CPLUSPLUS ON)
set_property(SOURCE ${SWIG_MODULE_SOURCES} PROPERTY SWIG_MODULE_NAME ${module_name})
+ set_property(SOURCE ${SWIG_MODULE_SOURCES} PROPERTY INCLUDE_DIRECTORIES ${SWIG_MODULE_PRIVATE_INCLUDE_DIRS})
+ set_property(SOURCE ${SWIG_MODULE_SOURCES} PROPERTY USE_TARGET_INCLUDE_DIRECTORIES FALSE)
swig_add_library(${module_name}
TYPE MODULE
diff --git a/src/software/export/CMakeLists.txt b/src/software/export/CMakeLists.txt
index d2085da6e..9b61b17cb 100644
--- a/src/software/export/CMakeLists.txt
+++ b/src/software/export/CMakeLists.txt
@@ -194,10 +194,7 @@ if (ALICEVISION_BUILD_SFM)
aliceVision_cmdline
aliceVision_mesh
Boost::program_options
- usd
- usdGeom
- usdImaging
- usdShade
+ usd_ms
)
endif()
diff --git a/src/software/utils/main_computeUncertainty.cpp b/src/software/utils/main_computeUncertainty.cpp
index 7949913fb..955d994f1 100644
--- a/src/software/utils/main_computeUncertainty.cpp
+++ b/src/software/utils/main_computeUncertainty.cpp
@@ -41,7 +41,8 @@ int aliceVision_main(int argc, char** argv)
bool debug = false;
// clang-format off
- params.add_options()
+ po::options_description requiredParams("Required parameters");
+ requiredParams.add_options()
("input,i", po::value<std::string>(&sfmDataFilename)->required(),
"SfMData file to align.")
("output,o", po::value<std::string>(&outSfMDataFilename)->required(),
@@ -51,13 +52,11 @@ int aliceVision_main(int argc, char** argv)
("algorithm,a", po::value<std::string>(&algorithm)->default_value(algorithm),
"Algorithm.")
("debug,d", po::value<bool>(&debug)->default_value(debug),
- "Enable creation of debug files in the current folder.")
- ("verboseLevel,v", po::value<std::string>(&verboseLevel)->default_value(verboseLevel),
- "Verbosity level (fatal, error, warning, info, debug, trace).");
+ "Enable creation of debug files in the current folder.");
// clang-format on
CmdLine cmdline("AliceVision computeUncertainty");
- cmdline.add(params);
+ cmdline.add(requiredParams);
if (!cmdline.execute(argc, argv))
{
return EXIT_FAILURE;
@@ -71,7 +70,7 @@ int aliceVision_main(int argc, char** argv)
// Load input scene
SfMData sfmData;
- if (!Load(sfmData, sfmDataFilename, ESfMData(ALL)))
+ if (!load(sfmData, sfmDataFilename, ESfMData(ALL)))
{
std::cerr << std::endl << "The input SfMData file \"" << sfmDataFilename << "\" cannot be read." << std::endl;
return EXIT_FAILURE;
@@ -148,7 +147,7 @@ int aliceVision_main(int argc, char** argv)
std::cout << "Save into \"" << outSfMDataFilename << "\"" << std::endl;
// Export the SfMData scene in the expected format
- if (!Save(sfmData, outSfMDataFilename, ESfMData(ALL)))
+ if (!save(sfmData, outSfMDataFilename, ESfMData(ALL)))
{
std::cerr << std::endl << "An error occurred while trying to save \"" << outSfMDataFilename << "\"." << std::endl;
return EXIT_FAILURE;