usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

[UHD] 4.8.0.0 build concerns msys2/mingw64

CG
Chris Gorman
Mon, Mar 24, 2025 9:10 PM

Hello USRP users,

I am packaging uhd 4.8.0.0 for msys/mingw and have run into a question
about the build process.  I have a build process that runs now but I
am concerned about how I manage to get python3.12/site-packages/uhd
installed.

I have made the following changes.  I install python-poetry as a
dependency, so I don't have to install it via pip.

diff --git a/host/python/CMakeLists.txt b/host/python/CMakeLists.txt
index df2353758..037f1475c 100644
--- a/host/python/CMakeLists.txt
+++ b/host/python/CMakeLists.txt
@@ -244,7 +244,6 @@ if (WIN32)
DEPENDS ${PYUHD_FILES} pyuhd_library)
add_custom_command(
TARGET pyuhd_wheel

  •           COMMAND ${PYTHON_EXECUTABLE} -m pip install poetry
              COMMAND ${PYTHON_EXECUTABLE} -m poetry build
      )
    

endif(WIN32)

And I manage the dependencies in pyproject.toml via pacman
dependencies, so I have removed them.

diff --git a/host/python/pyproject.toml.in b/host/python/pyproject.toml.in
index 66227c633..942e9cd15 100644
--- a/host/python/pyproject.toml.in
+++ b/host/python/pyproject.toml.in
@@ -18,10 +18,10 @@ exclude = [
]

[tool.poetry.dependencies]
-python = ">=3.10,<3.13"
-numpy = "^@UHD_NUMPY_MIN_VERSION@"
-mako = ">=@UHD_PY_MAKO_MIN_VERSION@"
-ruamel-yaml = ">=@UHD_RUAMEL_YAML_MIN_VERSION@"
+#python = ">=3.10,<3.13"
+#numpy = ">=@UHD_NUMPY_MIN_VERSION@"
+#mako = ">=@UHD_PY_MAKO_MIN_VERSION@"
+#ruamel-yaml = ">=@UHD_RUAMEL_YAML_MIN_VERSION@"

[tool.poetry.build]

Poetry should build a platform specific wheel, because the binding lib

These two changes allow me to install the
python-3.12/site-packages/uhd dir via a call to pip.  This is the call
I make in the build script.

pip install --ignore-installed --prefix="${pkgdir}"/"${MINGW_PREFIX}"
dist/uhd*.whl

My problem is I would prefer not to use python-pip to install the
uhd*.whl file.  It caught me a few times by deleting the installed uhd
directory before I wised up and passed the --ignore-installed switch.
I could proceed with it, but I was hoping someone might be able to
help me to change the correct part of the host/python/CMakeLists.txt
so I don't use poetry to build the whl file and simply copy the uhd
directory as is done with the usrp_mpm folder.

Any pointers or starters on how to accomplish this would be appreciated.

Thanks in advance,

Chris

Hello USRP users, I am packaging uhd 4.8.0.0 for msys/mingw and have run into a question about the build process. I have a build process that runs now but I am concerned about how I manage to get python3.12/site-packages/uhd installed. I have made the following changes. I install python-poetry as a dependency, so I don't have to install it via pip. diff --git a/host/python/CMakeLists.txt b/host/python/CMakeLists.txt index df2353758..037f1475c 100644 --- a/host/python/CMakeLists.txt +++ b/host/python/CMakeLists.txt @@ -244,7 +244,6 @@ if (WIN32) DEPENDS ${PYUHD_FILES} pyuhd_library) add_custom_command( TARGET pyuhd_wheel - COMMAND ${PYTHON_EXECUTABLE} -m pip install poetry COMMAND ${PYTHON_EXECUTABLE} -m poetry build ) endif(WIN32) And I manage the dependencies in pyproject.toml via pacman dependencies, so I have removed them. diff --git a/host/python/pyproject.toml.in b/host/python/pyproject.toml.in index 66227c633..942e9cd15 100644 --- a/host/python/pyproject.toml.in +++ b/host/python/pyproject.toml.in @@ -18,10 +18,10 @@ exclude = [ ] [tool.poetry.dependencies] -python = ">=3.10,<3.13" -numpy = "^@UHD_NUMPY_MIN_VERSION@" -mako = ">=@UHD_PY_MAKO_MIN_VERSION@" -ruamel-yaml = ">=@UHD_RUAMEL_YAML_MIN_VERSION@" +#python = ">=3.10,<3.13" +#numpy = ">=@UHD_NUMPY_MIN_VERSION@" +#mako = ">=@UHD_PY_MAKO_MIN_VERSION@" +#ruamel-yaml = ">=@UHD_RUAMEL_YAML_MIN_VERSION@" [tool.poetry.build] # Poetry should build a platform specific wheel, because the binding lib These two changes allow me to install the python-3.12/site-packages/uhd dir via a call to pip. This is the call I make in the build script. pip install --ignore-installed --prefix="${pkgdir}"/"${MINGW_PREFIX}" dist/uhd*.whl My problem is I would prefer not to use python-pip to install the uhd*.whl file. It caught me a few times by deleting the installed uhd directory before I wised up and passed the --ignore-installed switch. I could proceed with it, but I was hoping someone might be able to help me to change the correct part of the host/python/CMakeLists.txt so I don't use poetry to build the whl file and simply copy the uhd directory as is done with the usrp_mpm folder. Any pointers or starters on how to accomplish this would be appreciated. Thanks in advance, Chris