Fails to install on Windows

A colleague and I tried installing OGDF-Python on Windows.

The colleague tried it with pip, which failed. I tried it with uv on Windows 11, which also failed.

Steps to reproduce

  1. Get UV (or pip) on Windows
uv init some-demo
uv add ogdf-python[quickstart]

This results in the following error

Using CPython 3.13.3
Creating virtual environment at: .venv
Resolved 115 packages in 2.53s
  × Failed to build `ogdf-wheel==2023.9`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `hatchling.build.build_wheel` failed (exit code: 1)

      [stdout]
      Set wheel tag to py3-none-win_amd64

      Config
      {'artifacts': [],
       'build_hooks': ('custom',),
       'dependencies': [],
       'extra_metadata': {},
       'force_include': {},
       'force_include_editable': {},
       'infer_tag': False,
       'pure_python': False,
       'shared_data': {},
       'shared_scripts': {},
       'tag': 'py3-none-win_amd64'}
      {'_BuilderConfig__build_config': {'ignore-vcs': True,
                                        'targets': {'sdist': {'exclude': ['cmake_build',
                                                                          'dist',
                                                                          'wheelhouse',
                                                                          '.git*']},
                                                    'wheel': {'exclude': ['cmake_build',
                                                                          'dist',
                                                                          'wheelhouse',
                                                                          '.git*',
                                                                          'hatch_build.py',
                                                                          'test_*.py'],
                                                              'hooks': {'custom': {}}}}},
       '_BuilderConfig__builder': <hatchling.builders.wheel.WheelBuilder object at 0x00000217695196A0>,
       '_BuilderConfig__exclude_all': False,
       '_BuilderConfig__plugin_name': 'wheel',
       '_BuilderConfig__root':
      'C:\\Users\\Stefnotch\\AppData\\Local\\uv\\cache\\sdists-v9\\pypi\\ogdf-wheel\\2023.9\\lybCf4tAJyalrkxzFzCZo\\src',
       '_BuilderConfig__target_config': {'exclude': ['cmake_build',
                                                     'dist',
                                                     'wheelhouse',
                                                     '.git*',
                                                     'hatch_build.py',
                                                     'test_*.py'],
                                         'hooks': {'custom': {}}},
       '_WheelBuilderConfig__core_metadata_constructor': None,
       '_WheelBuilderConfig__extra_metadata': None,
       '_WheelBuilderConfig__macos_max_compat': None,
       '_WheelBuilderConfig__shared_data': None,
       '_WheelBuilderConfig__shared_scripts': None,
       '_WheelBuilderConfig__strict_naming': None,
       'build_artifact_spec': None,
       'build_force_include': {},
       'build_reserved_paths': set(),
       'hook_config': {'custom': {}}}


      Running cmake
      C:\Users\Stefnotch\AppData\Local\uv\cache\sdists-v9\pypi\ogdf-wheel\2023.9\lybCf4tAJyalrkxzFzCZo\src\ogdf
      -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=ON
      -DCMAKE_INSTALL_PREFIX=C:\Users\Stefnotch\AppData\Local\uv\cache\sdists-v9\pypi\ogdf-wheel\2023.9\lybCf4tAJyalrkxzFzCZo\src\src\ogdf_wheel\install
      -DOGDF_USE_ASSERT_EXCEPTIONS=ON -DOGDF_MEMORY_MANAGER=POOL_TS -DOGDF_WARNING_ERRORS=OFF
      -DCMAKE_BUILD_RPATH=$ORIGIN;@loader_path -DCMAKE_INSTALL_RPATH=$ORIGIN;@loader_path -DMACOSX_RPATH=TRUE

      [stderr]
      Traceback (most recent call last):
        File "<string>", line 11, in <module>
          wheel_filename = backend.build_wheel("C:\\Users\\Stefnotch\\AppData\\Local\\uv\\cache\\builds-v0\\.tmpASz6Rw",
      {}, None)
        File "C:\Users\Stefnotch\AppData\Local\uv\cache\builds-v0\.tmpXMbJLD\Lib\site-packages\hatchling\build.py",
      line 58, in build_wheel
          return os.path.basename(next(builder.build(directory=wheel_directory, versions=['standard'])))
                                  ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File
      "C:\Users\Stefnotch\AppData\Local\uv\cache\builds-v0\.tmpXMbJLD\Lib\site-packages\hatchling\builders\plugin\interface.py",
      line 147, in build
          build_hook.initialize(version, build_data)
          ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
        File
      "C:\Users\Stefnotch\AppData\Local\uv\cache\sdists-v9\pypi\ogdf-wheel\2023.9\lybCf4tAJyalrkxzFzCZo\src\hatch_build.py",
      line 131, in initialize
          self.run("cmake", self.ogdf_src_dir, *flags)
          ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File
      "C:\Users\Stefnotch\AppData\Local\uv\cache\sdists-v9\pypi\ogdf-wheel\2023.9\lybCf4tAJyalrkxzFzCZo\src\hatch_build.py",
      line 84, in run
          return subprocess.run(args, capture_output=False, check=True, cwd=self.cmake_build_dir)
                 ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\Stefnotch\AppData\Roaming\uv\python\cpython-3.13.3-windows-x86_64-none\Lib\subprocess.py", line
      554, in run
          with Popen(*popenargs, **kwargs) as process:
               ~~~~~^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\Stefnotch\AppData\Roaming\uv\python\cpython-3.13.3-windows-x86_64-none\Lib\subprocess.py", line
      1039, in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
          ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                              pass_fds, cwd, env,
                              ^^^^^^^^^^^^^^^^^^^
          ...<5 lines>...
                              gid, gids, uid, umask,
                              ^^^^^^^^^^^^^^^^^^^^^^
                              start_new_session, process_group)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\Stefnotch\AppData\Roaming\uv\python\cpython-3.13.3-windows-x86_64-none\Lib\subprocess.py", line
      1551, in _execute_child
          hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
                             ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
                                   # no special security
                                   ^^^^^^^^^^^^^^^^^^^^^
          ...<4 lines>...
                                   cwd,
                                   ^^^^
                                   startupinfo)
                                   ^^^^^^^^^^^^
      FileNotFoundError: [WinError 2] The system cannot find the file specified

      hint: This usually indicates a problem with the package or the build environment.
  help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip
        locking and syncing

It seems like installing ogdf-wheel fails.

I'm happy to try out other things, just let me know.