diff --git a/.SRCINFO b/.SRCINFO index bb3eb109b630..c38d5c84cfba 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,10 +1,10 @@ pkgbase = alice-vision pkgdesc = Photogrammetric Computer Vision Framework which provides a 3D Reconstruction and Camera Tracking algorithms - pkgver = 3.2.0 - pkgrel = 7 + pkgver = 3.3.0 + pkgrel = 1 url = https://alicevision.github.io/ arch = x86_64 - license = MPL2 + license = MPL-2.0 license = MIT makedepends = boost makedepends = ninja @@ -16,6 +16,7 @@ pkgbase = alice-vision makedepends = cmake makedepends = doxygen makedepends = python-sphinx + makedepends = nanoflann depends = boost-libs depends = openimageio depends = flann @@ -23,29 +24,32 @@ pkgbase = alice-vision depends = coin-or-clp depends = ceres-solver depends = cctag + depends = openmesh + depends = libe57format depends = alembic depends = opengv depends = opencv depends = popsift depends = uncertainty-framework depends = assimp + depends = onnx + depends = onnxruntime + depends = cuda options = !lto options = !debug - source = git+https://github.com/alicevision/AliceVision#tag=v3.2.0 + source = git+https://github.com/alicevision/AliceVision#tag=v3.3.0 source = MeshSDFilter::git+https://github.com/alicevision/MeshSDFilter.git#branch=av_develop - source = nanoflann::git+https://github.com/alicevision/nanoflann.git source = FindCoinUtils.cmake source = FindClp.cmake source = FindOsi.cmake - source = fix-computeUncertainty-build.patch source = fix-default-ocio-path.patch - sha256sums = SKIP + source = fix-build.patch sha256sums = SKIP sha256sums = SKIP sha256sums = d21691bfd9c2561cea52b5f48caf885ec6f8c2a0603ce594914bff610e77a0c5 sha256sums = 6523435334eec6e39a244371287504cd0a0e88aa0cbe5dcac38b819ea881074e sha256sums = fbb87c86bc0b2ee2c98abfbecb0d555f75f01ccf5d4c59c22bb598e7f2897bf9 - sha256sums = 17546a6c362782f90d1d85eb7a4b42b96f5f51879c68efbcbcf07635e0f60cbc sha256sums = 3f02c715f27498ac8982edee3e3af151b0cd2a9cb83da37fef3b7fec1e34b169 + sha256sums = c2146670be19ef6af0960a0e1cd5b6baae68ca54cf28b164977d265bd1d9a27b pkgname = alice-vision diff --git a/PKGBUILD b/PKGBUILD index 974bd5a98a9e..3e90f86aed99 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,43 +1,41 @@ -# Maintainer: Sven-Hendrik Haase +# Maintainer: sfn +# Contributor: Sven-Hendrik Haase # Contributor: bartus -pkgbase=alice-vision -pkgname=('alice-vision') # 'alice-vision-cuda' -pkgver=3.2.0 -pkgrel=7 +pkgname='alice-vision' +pkgver=3.3.0 +pkgrel=1 +options=('!lto' '!debug') pkgdesc="Photogrammetric Computer Vision Framework which provides a 3D Reconstruction and Camera Tracking algorithms" arch=('x86_64') url="https://alicevision.github.io/" -options=('!lto' '!debug') # debug package is kinda big -- needs investigation! +#options=('!debug') # debug package is kinda big -- needs investigation! license=('MPL-2.0' 'MIT') -depends=('boost-libs' 'openimageio' 'flann' 'geogram' 'coin-or-clp' 'ceres-solver' 'cctag' - 'alembic' 'opengv' 'opencv' 'popsift' 'uncertainty-framework' 'assimp') +depends=('boost-libs' 'openimageio' 'flann' 'geogram' 'coin-or-clp' 'ceres-solver' 'cctag' 'openmesh' 'libe57format' + 'alembic' 'opengv' 'opencv' 'popsift' 'uncertainty-framework' 'assimp' 'onnx' 'onnxruntime' 'cuda') makedepends=('boost' 'ninja' 'eigen' 'freetype2' 'coin-or-coinutils' 'coin-or-lemon' - 'git' 'cmake' 'doxygen' 'python-sphinx') # 'cuda' + 'git' 'cmake' 'doxygen' 'python-sphinx' 'nanoflann') source=("git+https://github.com/alicevision/AliceVision#tag=v${pkgver}" "MeshSDFilter::git+https://github.com/alicevision/MeshSDFilter.git#branch=av_develop" - "nanoflann::git+https://github.com/alicevision/nanoflann.git" "FindCoinUtils.cmake" "FindClp.cmake" "FindOsi.cmake" - "fix-computeUncertainty-build.patch" "fix-default-ocio-path.patch" + "fix-build.patch" ) sha256sums=('SKIP' - 'SKIP' 'SKIP' 'd21691bfd9c2561cea52b5f48caf885ec6f8c2a0603ce594914bff610e77a0c5' '6523435334eec6e39a244371287504cd0a0e88aa0cbe5dcac38b819ea881074e' 'fbb87c86bc0b2ee2c98abfbecb0d555f75f01ccf5d4c59c22bb598e7f2897bf9' - '17546a6c362782f90d1d85eb7a4b42b96f5f51879c68efbcbcf07635e0f60cbc' - '3f02c715f27498ac8982edee3e3af151b0cd2a9cb83da37fef3b7fec1e34b169') + '3f02c715f27498ac8982edee3e3af151b0cd2a9cb83da37fef3b7fec1e34b169' + 'c2146670be19ef6af0960a0e1cd5b6baae68ca54cf28b164977d265bd1d9a27b') prepare() { cd AliceVision git submodule init git config submodule."src/dependencies/MeshSDFilter".url "${srcdir}/MeshSDFilter" - git config submodule."src/dependencies/nanoflann".url "${srcdir}/nanoflann" git -c protocol.file.allow=always submodule update # alice-vision requires a patched coinutils with cmake integration @@ -48,13 +46,13 @@ prepare() { -i src/*/*/CMakeLists.txt # fix build - patch -p1 -i ../fix-computeUncertainty-build.patch + patch -p1 -i ../fix-build.patch # fix default OCIO config path patch -p1 -i ../fix-default-ocio-path.patch # fix doc build sed -i '/^ *install.*doc/s/doc/htmlDoc/' src/CMakeLists.txt - ln -rs docs/sphinx{,/rst} + #ln -rs docs/sphinx{,/rst} } build() { @@ -68,45 +66,25 @@ build() { -DCOINUTILS_INCLUDE_DIR_HINTS=/usr/include/coin \ -DCLP_INCLUDE_DIR_HINTS=/usr/include/coin \ -DOSI_INCLUDE_DIR_HINTS=/usr/include/coin \ - -DLEMON_INCLUDE_DIR_HINTS=/usr/include/lemon \ -DPopSift_DIR=/usr \ -DCCTag_DIR=/usr/lib/cmake/CCTag \ -DUNCERTAINTYTE_DIR=/usr \ -DMAGMA_ROOT=/opt/cuda/targets/x86_64-linux/ \ - -DALICEVISION_BUILD_EXAMPLES=OFF \ - -DALICEVISION_USE_CUDA=OFF \ + -DALICEVISION_USE_CUDA=ON \ -DALICEVISION_USE_CCTAG=ON \ -DALICEVISION_USE_POPSIFT=ON \ -DALICEVISION_USE_UNCERTAINTYTE=ON \ -DALICEVISION_USE_ALEMBIC=ON \ -DALICEVISION_USE_OPENGV=ON \ -DALICEVISION_USE_OPENCV=ON \ - -DALICEVISION_USE_ONNX=OFF + -DALICEVISION_USE_ONNX=ON \ + -DALICEVISION_USE_USD=OFF \ + -DCMAKE_CXX_STANDARD=17 \ + -DCMAKE_C_COMPILER=/usr/bin/gcc-14 \ + -DCMAKE_CXX_COMPILER=/usr/bin/g++-14 \ + -DCMAKE_CUDA_FLAGS="-dno-lto" ninja -C build -# cmake \ -# -Bbuild-cuda \ -# -GNinja \ -# -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \ -# -DCMAKE_INSTALL_PREFIX=/usr \ -# -DCOINUTILS_INCLUDE_DIR_HINTS=/usr/include/coin \ -# -DCLP_INCLUDE_DIR_HINTS=/usr/include/coin \ -# -DOSI_INCLUDE_DIR_HINTS=/usr/include/coin \ -# -DLEMON_INCLUDE_DIR_HINTS=/usr/include/lemon \ -# -DPopSift_DIR=/usr \ -# -DCCTag_DIR=/usr/lib/cmake/CCTag \ -# -DUNCERTAINTYTE_DIR=/usr \ -# -DMAGMA_ROOT=/usr \ -# -DALICEVISION_CUDA_CC_LIST="52;53;60;61;62;70;72;75;80;86;87;89;90" \ -# -DALICEVISION_BUILD_EXAMPLES=OFF \ -# -DALICEVISION_USE_CUDA=ON \ -# -DALICEVISION_USE_CCTAG=ON \ -# -DALICEVISION_USE_POPSIFT=ON \ -# -DALICEVISION_USE_UNCERTAINTYTE=ON \ -# -DALICEVISION_USE_ALEMBIC=ON \ -# -DALICEVISION_USE_OPENGV=ON \ -# -DALICEVISION_USE_OPENCV=ON -# ninja -C build-cuda } package_alice-vision() { @@ -123,23 +101,4 @@ package_alice-vision() { install -Dm755 LICENSE-MIT-libmv.md "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE-MIT-libmv.md } -package_alice-vision-cuda() { - pkgdesc="Photogrammetric Computer Vision Framework which provides a 3D Reconstruction and Camera Tracking algorithms (with CUDA)" - depends+=('cuda') - conflicts=('alice-vision') - provides=('alice-vision') - - cd AliceVision - - ninja -C build-cuda doc_doxygen - DESTDIR="${pkgdir}" ninja -C build-cuda install - - # Don't search for unofficial coin-or cmake config - sed -e '/CoinUtils/d' -e '/Clp/d' -e '/Osi/d' -i "$pkgdir"/usr/share/aliceVision/cmake/AliceVisionConfig.cmake - - install -Dm755 COPYING.md "${pkgdir}"/usr/share/licenses/${pkgname}/COPYING.md - install -Dm755 LICENSE-MPL2.md "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE-MPL2.md - install -Dm755 LICENSE-MIT-libmv.md "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE-MIT-libmv.md -} - # vim:set ts=2 sw=2 et: diff --git a/fix-build.patch b/fix-build.patch new file mode 100644 index 000000000000..84b4d55b3f56 --- /dev/null +++ b/fix-build.patch @@ -0,0 +1,146 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index dfa00ff0b..720af36aa 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -333,7 +333,7 @@ endif() + # ============================================================================== + # OpenImageIO + # ============================================================================== +-find_package(OpenImageIO 2.0.9 REQUIRED) ++find_package(OpenImageIO REQUIRED) + if (OPENIMAGEIO_FOUND OR OpenImageIO_FOUND) + message(STATUS "OpenImageIO found.") + else() +@@ -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) +@@ -618,7 +620,7 @@ endif() + # - optional, only external and enabled only if ALICEVISION_USE_UNCERTAINTYTE is ON + # ============================================================================== + set(ALICEVISION_HAVE_UNCERTAINTYTE 0) +- ++find_package(UncertaintyTE) + if (ALICEVISION_BUILD_SFM) + if (NOT ALICEVISION_USE_UNCERTAINTYTE STREQUAL "OFF") + find_package(UncertaintyTE) +@@ -876,6 +878,7 @@ set(ALICEVISION_INCLUDE_DIRS + ${COINUTILS_INCLUDE_DIRS} + ${CLP_INCLUDE_DIRS} + ${OSI_INCLUDE_DIRS} ++ ${Python3_INCLUDE_DIRS} + ) + + include_directories(${ALICEVISION_INCLUDE_DIRS}) +@@ -912,7 +915,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 +923,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/image/io.cpp b/src/aliceVision/image/io.cpp +index f335ae457..5682a303c 100644 +--- a/src/aliceVision/image/io.cpp ++++ b/src/aliceVision/image/io.cpp +@@ -1284,7 +1284,7 @@ void readImage(const std::string& path, Image& image, const ImageReadO + + void logOIIOImageCacheInfo() + { +- oiio::ImageCache* cache = oiio::ImageCache::create(true); ++ oiio::ImageCache* cache = oiio::ImageCache::create(true).get(); + + int maxOpenFiles = -1; + cache->getattribute("max_open_files", maxOpenFiles); +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/software/pipeline/main_panoramaInit.cpp b/src/software/pipeline/main_panoramaInit.cpp +index ae02b385d..4ae7d75b5 100644 +--- a/src/software/pipeline/main_panoramaInit.cpp ++++ b/src/software/pipeline/main_panoramaInit.cpp +@@ -91,7 +91,7 @@ class PyramidFloat + oiio::ImageBuf buf_src(spec_src, const_cast(_levels[level - 1].data())); + oiio::ImageBuf buf_dst(spec_dst, const_cast(_levels[level].data())); + +- oiio::ImageBufAlgo::resize(buf_dst, buf_src, "gaussian"); ++ oiio::ImageBufAlgo::resize(buf_dst, buf_src, {{"filtername", "gaussian"}}); + } + + return true; +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(&sfmDataFilename)->required(), + "SfMData file to align.") + ("output,o", po::value(&outSfMDataFilename)->required(), +@@ -51,13 +52,11 @@ int aliceVision_main(int argc, char** argv) + ("algorithm,a", po::value(&algorithm)->default_value(algorithm), + "Algorithm.") + ("debug,d", po::value(&debug)->default_value(debug), +- "Enable creation of debug files in the current folder.") +- ("verboseLevel,v", po::value(&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; diff --git a/fix-computeUncertainty-build.patch b/fix-computeUncertainty-build.patch deleted file mode 100644 index 24e716f16d1e..000000000000 --- a/fix-computeUncertainty-build.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/src/software/utils/main_computeUncertainty.cpp b/src/software/utils/main_computeUncertainty.cpp -index 23d2ab9ee..5bba4d7b2 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) - std::string algorithm = cov::EAlgorithm_enumToString(cov::eAlgorithmSvdTaylorExpansion); - bool debug = false; - -- params.add_options() -+ po::options_description requiredParams("Required parameters"); -+ requiredParams.add_options() - ("input,i", po::value(&sfmDataFilename)->required(), - "SfMData file to align.") - ("output,o", po::value(&outSfMDataFilename)->required(), -@@ -51,12 +52,10 @@ int aliceVision_main(int argc, char **argv) - ("algorithm,a", po::value(&algorithm)->default_value(algorithm), - "Algorithm.") - ("debug,d", po::value(&debug)->default_value(debug), -- "Enable creation of debug files in the current folder.") -- ("verboseLevel,v", po::value(&verboseLevel)->default_value(verboseLevel), -- "verbosity level (fatal, error, warning, info, debug, trace)."); -+ "Enable creation of debug files in the current folder."); - - CmdLine cmdline("AliceVision computeUncertainty"); -- cmdline.add(params); -+ cmdline.add(requiredParams); - if (!cmdline.execute(argc, argv)) - { - return EXIT_FAILURE;