build: allow usage of ODM via CLI 'uv run odm ...'

pull/1943/head
spwoodcock 2025-10-27 11:18:31 +00:00
rodzic a47273c70c
commit 83dbc79a96
4 zmienionych plików z 22 dodań i 9 usunięć

Wyświetl plik

@ -11,7 +11,6 @@ superbuild_bin_path = os.path.join(superbuild_path, 'install', 'bin')
# add opencv,opensfm to python path
python_packages_paths = [os.path.join(superbuild_path, p) for p in [
'install/lib/python3.12/dist-packages',
'install/lib/python3.12/dist-packages',
'install/lib/python3/dist-packages',
'install/bin/opensfm',

Wyświetl plik

@ -42,6 +42,21 @@ dependencies = [
"rawpy==0.25.0",
]
[dependency-groups]
resize = [
"piexif>=1.1.3",
]
[project.scripts]
odm = "run:run"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["opendm"]
[tool.uv]
environments = [
"sys_platform == 'darwin'",
@ -54,8 +69,3 @@ environments = [
"rasterio" = { url = "https://github.com/OpenDroneMap/windows-deps/releases/download/2.6.0/rasterio-1.4.3-cp312-cp312-win_amd64.whl", marker = "sys_platform == 'win32'" }
# NOTE we are using GDAL 3.11.1 for Windows, but 3.8.4 for Linux/Mac due to underlying system libs
"gdal" = { url = "https://github.com/OpenDroneMap/windows-deps/releases/download/2.6.0/gdal-3.11.1-cp312-cp312-win_amd64.whl", marker = "sys_platform == 'win32'" }
[dependency-groups]
resize = [
"piexif>=1.1.3",
]

8
run.py
Wyświetl plik

@ -24,7 +24,7 @@ def odm_version():
except:
return "?"
if __name__ == '__main__':
def run():
args = config.config()
log.ODM_INFO('Initializing ODM %s - %s' % (odm_version(), system.now()))
@ -112,4 +112,8 @@ if __name__ == '__main__':
log.ODM_INFO('MMMMMMMMMMMMMMMNmmNMMMMMMMNmmmmNMMMMMMMNNMMMMMMMMMNNMMMMMMMMMMMM')
log.ODM_INFO('ODM app finished - %s' % system.now())
else:
exit(retcode)
exit(retcode)
if __name__ == '__main__':
run()

Wyświetl plik

@ -683,7 +683,7 @@ wheels = [
[[package]]
name = "odm"
version = "3.6.0"
source = { virtual = "." }
source = { editable = "." }
dependencies = [
{ name = "appsettings", marker = "sys_platform == 'darwin' or sys_platform == 'linux' or sys_platform == 'win32'" },
{ name = "beautifulsoup4", marker = "sys_platform == 'darwin' or sys_platform == 'linux' or sys_platform == 'win32'" },