Skip to content
Draft

Meshroom #216403

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 123 additions & 0 deletions pkgs/applications/graphics/meshroom/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
{ lib
, fetchFromGitHub
, callPackage
, alice-vision
, python3
, qtbase
, qtdeclarative
, qttools
, qtquickcontrols
, qtquickcontrols2
, qtgraphicaleffects
, qt3d
, qtlocation
, qtcharts
, wrapQtAppsHook
, makeWrapper
}:

let
validLocalVersion = s: builtins.match "^[a-zA-Z0-9.]+$" s != null;
mkLocalVersion = s: let s' = lib.replaceStrings ["-"] ["."] s; in lib.throwIfNot (validLocalVersion s') "invalid local version ${s'}" s';
qtalicevision = callPackage ./qtalicevision.nix { };
qmlalembic = callPackage ./qmlalembic.nix { };

in
python3.pkgs.buildPythonApplication rec {
pname = "meshroom";
version = "unstable-2023-02-09";

src = fetchFromGitHub {
owner = "alicevision";
repo = pname;
rev = "334bfc8b00b6f82e8405a3c7537c8936abace124";
hash = "sha256-RjayS1SfG17T5Xn5P6JBg5nNGZVSLuZ7X5aAWrlHVPg=";
};

format = "pyproject";

ppl = ''
[tool.poetry]
name = "${pname}"
version = "2021.1.0+${mkLocalVersion version}"
description = "Meshroom"
authors = ["nobody"]
readme = "README.md"
packages = [{include = "meshroom"}]

[tool.poetry.dependencies]
python = "^3.7"
psutil = "^5.9"
PySide2 = "^5.11"

[tool.poetry.scripts]
meshroom = 'meshroom.ui.__main__:main'

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
'';
# markdown = "^2.4"


passAsFile = [ "ppl" ];

postPatch = ''
rm setup.py
cp $pplPath pyproject.toml

sed -i 's/^/ /' meshroom/ui/__main__.py
sed -i '1 i\def main():''\n' meshroom/ui/__main__.py
'';

makeWrapperArgs = [
"--set ALICEVISION_ROOT ${alice-vision.dev}"
"--set MESHROOM_OUTPUT_QML_WARNINGS 1"
"\${qtWrapperArgs[@]}"
];

nativeBuildInputs = [
python3.pkgs.poetry-core

makeWrapper

wrapQtAppsHook

qtbase
qttools
qtdeclarative
qtquickcontrols
qtquickcontrols2
qtgraphicaleffects
qt3d
qtlocation
qtcharts

qmlalembic
qtalicevision
];

propagatedBuildInputs = with python3.pkgs; [
# cx_Freeze
pyside2
psutil
requests
markdown2
qtpy
pysideShiboken
];

nativeCheckInputs = [
python3.pkgs.pytestCheckHook
];

meta = {
description = "3D Reconstruction Software";
homepage = "https://github.com/alicevision/meshroom";
license = lib.licenses.mpl20;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ tmarkus ];
};
}


46 changes: 46 additions & 0 deletions pkgs/applications/graphics/meshroom/qmlalembic.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{ lib
, stdenv
, cmake
, fetchFromGitHub
, alembic
, qtbase
, qtdeclarative
, qt3d
, wrapQtAppsHook
}:

stdenv.mkDerivation rec {
pname = "qmlalembic";
version = "unstable-2023-02-08";

src = fetchFromGitHub {
owner = "alicevision";
repo = pname;
rev = "e9ca28118d649ad4e937a85b1c9d33acc178f533";
hash = "sha256-5FoQTEEOrfljigo69ucX9Sugu3psbJ6A7aSGsFCmsr4=";
};

cmakeFlags = [
"-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/${qtbase.qtQmlPrefix}/.."
];

nativeBuildInputs = [
cmake
wrapQtAppsHook
];

buildInputs = [
alembic.dev
qtbase
qtdeclarative
qt3d
];

meta = {
description = "3D Reconstruction Software";
homepage = "https://github.com/alicevision/meshroom";
license = lib.licenses.mpl20;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ tmarkus ];
};
}
51 changes: 51 additions & 0 deletions pkgs/applications/graphics/meshroom/qtalicevision.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{ lib
, stdenv
, cmake
, fetchFromGitHub
, alice-vision
, qtbase
, qtdeclarative
, qt3d
, qtcharts
, qttools
, wrapQtAppsHook
}:

stdenv.mkDerivation rec {
pname = "qtalicevision";
version = "unstable-2023-01-18";

src = fetchFromGitHub {
owner = "alicevision";
repo = pname;
rev = "cba5efc6fc933206c147a10f079c427534bf2599";
hash = "sha256-2nZctjGxTHK9mq8yOgqCpPwe/+KS7e7sML4F++a89GI=";
};

cmakeFlags = [
"-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/${qtbase.qtQmlPrefix}/.."
];

nativeBuildInputs = [
cmake
wrapQtAppsHook
qttools
];

buildInputs = [
alice-vision
qtbase
qtdeclarative
qt3d
qtcharts
# tbb_2021_8
];

meta = {
description = "3D Reconstruction Software";
homepage = "https://github.com/alicevision/meshroom";
license = lib.licenses.mpl20;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ tmarkus ];
};
}
21 changes: 21 additions & 0 deletions pkgs/development/libraries/alice-vision/FindClp.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND)
pkg_check_modules(PC_CLP IMPORTED_TARGET clp)

add_library(Coin::Clp ALIAS PkgConfig::PC_CLP)
endif()

find_path(CLP_INCLUDE_DIRS
NAMES ClpConfig.h
HINTS ${PC_CLP_INCLUDE_DIRS})

if (EXISTS "${CLP_INCLUDE_DIRS}/ClpConfig.h")
file(STRINGS "${CLP_INCLUDE_DIRS}/ClpConfig.h" clp_version_str REGEX "^#define[\t ]+CLP_VERSION[\t ]+\".*\"")
string(REGEX REPLACE "^#define[\t ]+CLP_VERSION[\t ]+\"([^\"]*)\".*" "\\1" Clp_VERSION "${clp_version_str}")
endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Clp
REQUIRED_VARS CLP_INCLUDE_DIRS
VERSION_VAR Clp_VERSION
)
21 changes: 21 additions & 0 deletions pkgs/development/libraries/alice-vision/FindCoinUtils.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND)
pkg_check_modules(PC_COINUTILS IMPORTED_TARGET coinutils)

add_library(Coin::CoinUtils ALIAS PkgConfig::PC_COINUTILS)
endif()

find_path(COINUTILS_INCLUDE_DIRS
NAMES CoinUtilsConfig.h
HINTS ${PC_COINUTILS_INCLUDE_DIRS})

if (EXISTS "${COINUTILS_INCLUDE_DIRS}/CoinUtilsConfig.h")
file(STRINGS "${COINUTILS_INCLUDE_DIRS}/CoinUtilsConfig.h" coinutils_version_str REGEX "^#define[\t ]+COINUTILS_VERSION[\t ]+\".*\"")
string(REGEX REPLACE "^#define[\t ]+COINUTILS_VERSION[\t ]+\"([^\"]*)\".*" "\\1" CoinUtils_VERSION "${coinutils_version_str}")
endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(CoinUtils
REQUIRED_VARS COINUTILS_INCLUDE_DIRS
VERSION_VAR CoinUtils_VERSION
)
22 changes: 22 additions & 0 deletions pkgs/development/libraries/alice-vision/FindOsi.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND)
pkg_check_modules(PC_OSI IMPORTED_TARGET osi)

add_library(Coin::Osi ALIAS PkgConfig::PC_OSI)
endif()

find_path(OSI_INCLUDE_DIRS
NAMES OsiConfig.h
HINTS ${PC_OSI_INCLUDE_DIRS})

if (EXISTS "${OSI_INCLUDE_DIRS}/OsiConfig.h")
file(STRINGS "${OSI_INCLUDE_DIRS}/OsiConfig.h" osi_version_str REGEX "^#define[\t ]+OSI_VERSION[\t ]+\".*\"")
string(REGEX REPLACE "^#define[\t ]+OSI_VERSION[\t ]+\"([^\"]*)\".*" "\\1" Osi_VERSION "${osi_version_str}")
endif()


include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Osi
REQUIRED_VARS OSI_INCLUDE_DIRS
VERSION_VAR Osi_VERSION
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
diff --git a/nix/store/ipz4izl82p822flysklls9bnm686ay14-source/src/CMakeLists.txt b/pkgs/applications/graphics/alice-vision/CMakeLists.txt
index 118281d65cb..85b15586452 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -178,7 +178,6 @@ endif()
set(CMAKE_MODULE_PATH
${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
include(OptimizeForArchitecture)
-OptimizeForArchitecture()
set(ALICEVISION_HAVE_SSE 0)
if(SSE2_FOUND OR TARGET_ARCHITECTURE STREQUAL "native")
if(MSVC AND NOT ${CMAKE_CL_64})
Loading