Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

winrt-runtime fails to build in MSYS2 MINGW64 #46

Closed
mimi89999 opened this issue Mar 29, 2024 · 0 comments · Fixed by #51
Closed

winrt-runtime fails to build in MSYS2 MINGW64 #46

mimi89999 opened this issue Mar 29, 2024 · 0 comments · Fixed by #51
Labels
bug Something isn't working

Comments

@mimi89999
Copy link
Contributor

      WARNING setuptools_scm._integration.setuptools pyproject.toml does not contain a tool.setuptools_scm section
      running bdist_wheel
      running build
      running build_py
      package init file 'src/winrt/__init__.py' not found (or not a regular file)
      creating build
      creating build/lib.mingw_x86_64-3.11
      creating build/lib.mingw_x86_64-3.11/winrt
      creating build/lib.mingw_x86_64-3.11/winrt/system
      copying src/winrt/system/__init__.py -> build/lib.mingw_x86_64-3.11/winrt/system
      running egg_info
      writing src/winrt_runtime.egg-info/PKG-INFO
      writing dependency_links to src/winrt_runtime.egg-info/dependency_links.txt
      writing top-level names to src/winrt_runtime.egg-info/top_level.txt
      ERROR setuptools_scm._file_finders.git listing git files failed - pretending there aren't any
      reading manifest file 'src/winrt_runtime.egg-info/SOURCES.txt'
      writing manifest file 'src/winrt_runtime.egg-info/SOURCES.txt'
      copying src/winrt/_winrt.pyi -> build/lib.mingw_x86_64-3.11/winrt
      copying src/winrt/py.typed -> build/lib.mingw_x86_64-3.11/winrt
      running build_ext
      building 'winrt._winrt' extension
      creating build/temp.mingw_x86_64-3.11
      gcc -DNDEBUG -g -fwrapv -O3 -Wall -march=nocona -msahf -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -O3 -march=nocona -msahf -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -O3 -IC:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt -IC:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/pywinrt -IC:/msys64/mingw64/include/python3.11 -c _winrt.cpp -o build/temp.mingw_x86_64-3.11/_winrt.o -std=c++20
      In file included from C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/Windows.Foundation.h:6,
                       from C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/pywinrt/pybase.h:10,
                       from _winrt.cpp:5:
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h: In member function 'void winrt::impl::factory_cache_entry_base::clear()':
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h:6382:77: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
       6382 |             bool exchanged = __sync_bool_compare_and_swap((__int128*)this, *(__int128*)&current_value, (__int128)0);
            |                                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from C:/msys64/mingw64/include/c++/13.2.0/bits/stl_pair.h:60,
                       from C:/msys64/mingw64/include/c++/13.2.0/bits/stl_algobase.h:64,
                       from C:/msys64/mingw64/include/c++/13.2.0/bits/specfun.h:43,
                       from C:/msys64/mingw64/include/c++/13.2.0/cmath:3699,
                       from C:/msys64/mingw64/include/c++/13.2.0/math.h:36,
                       from C:/msys64/mingw64/include/ieeefp.h:5,
                       from C:/msys64/mingw64/include/python3.11/pyport.h:230,
                       from C:/msys64/mingw64/include/python3.11/Python.h:38,
                       from C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/pywinrt/pybase.h:4:
      C:/msys64/mingw64/include/c++/13.2.0/type_traits: In instantiation of 'constexpr const bool std::is_base_of_v<winrt::Windows::Foundation::IUnknown, IInitializeWithWindow>':
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h:1980:45:   required by substitution of 'template<class T> using winrt::impl::com_ref = std::conditional_t<is_base_of_v<winrt::Windows::Foundation::IUnknown, T>, T, winrt::com_ptr<T> > [with T = IInitializeWithWindow]'
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h:2008:17:   required by substitution of 'template<class To, class From, typename std::enable_if<is_com_interface_v<To>, int>::type <anonymous> > winrt::impl::com_ref<T> winrt::impl::as(From*) [with To = IInitializeWithWindow; From = <missing>; typename std::enable_if<is_com_interface_v<To>, int>::type <anonymous> = <missing>]'
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h:2109:32:   required from 'auto winrt::Windows::Foundation::IUnknown::as() const [with To = IInitializeWithWindow]'
      _winrt.cpp:224:62:   required from here
      C:/msys64/mingw64/include/c++/13.2.0/type_traits:3361:40: error: invalid use of incomplete type 'struct IInitializeWithWindow'
       3361 |   inline constexpr bool is_base_of_v = __is_base_of(_Base, _Derived);
            |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from _winrt.cpp:2:
      C:/msys64/mingw64/include/shobjidl.h:2412:19: note: forward declaration of 'struct IInitializeWithWindow'
       2412 | typedef interface IInitializeWithWindow IInitializeWithWindow;
            |                   ^~~~~~~~~~~~~~~~~~~~~
      C:/msys64/mingw64/include/c++/13.2.0/type_traits: In instantiation of 'struct std::is_base_of<winrt::Windows::Foundation::IUnknown, IInitializeWithWindow>':
      C:/msys64/mingw64/include/c++/13.2.0/type_traits:201:58:   required by substitution of 'template<class _B1, class _B2, class ... _Bn> struct std::__detail::__disjunction_impl<typename std::enable_if<(!(bool)(_B1::value)), void>::type, _B1, _B2, _Bn ...> [with _B1 = std::is_base_of<winrt::Windows::Foundation::IUnknown, IInitializeWithWindow>; _B2 = std::is_base_of<winrt::impl::abi<winrt::Windows::Foundation::IUnknown>::type, IInitializeWithWindow>; _Bn = {winrt::impl::is_implements<IInitializeWithWindow, void>, winrt::impl::is_classic_com_interface<IInitializeWithWindow>}]'
      C:/msys64/mingw64/include/c++/13.2.0/type_traits:227:12:   required from 'struct std::disjunction<std::is_base_of<winrt::Windows::Foundation::IUnknown, IInitializeWithWindow>, std::is_base_of<winrt::impl::abi<winrt::Windows::Foundation::IUnknown>::type, IInitializeWithWindow>, winrt::impl::is_implements<IInitializeWithWindow, void>, winrt::impl::is_classic_com_interface<IInitializeWithWindow> >'
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h:1998:12:   required from 'struct winrt::impl::is_com_interface<IInitializeWithWindow>'
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h:2001:69:   required from 'constexpr const bool winrt::impl::is_com_interface_v<IInitializeWithWindow>'
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h:2004:92:   required by substitution of 'template<class To, class From, typename std::enable_if<(! is_com_interface_v<To>), int>::type <anonymous> > auto winrt::impl::as(From*) [with To = IInitializeWithWindow; From = winrt::impl::abi<winrt::Windows::Foundation::IUnknown>::type; typename std::enable_if<(! is_com_interface_v<To>), int>::type <anonymous> = <missing>]'
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h:2109:32:   required from 'auto winrt::Windows::Foundation::IUnknown::as() const [with To = IInitializeWithWindow]'
      _winrt.cpp:224:62:   required from here
      C:/msys64/mingw64/include/c++/13.2.0/type_traits:1411:38: error: invalid use of incomplete type 'struct IInitializeWithWindow'
       1411 |     : public integral_constant<bool, __is_base_of(_Base, _Derived)>
            |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      C:/msys64/mingw64/include/shobjidl.h:2412:19: note: forward declaration of 'struct IInitializeWithWindow'
       2412 | typedef interface IInitializeWithWindow IInitializeWithWindow;
            |                   ^~~~~~~~~~~~~~~~~~~~~
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h: In instantiation of 'constexpr const bool winrt::impl::is_com_interface_v<IInitializeWithWindow>':
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h:2004:92:   required by substitution of 'template<class To, class From, typename std::enable_if<(! is_com_interface_v<To>), int>::type <anonymous> > auto winrt::impl::as(From*) [with To = IInitializeWithWindow; From = winrt::impl::abi<winrt::Windows::Foundation::IUnknown>::type; typename std::enable_if<(! is_com_interface_v<To>), int>::type <anonymous> = <missing>]'
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h:2109:32:   required from 'auto winrt::Windows::Foundation::IUnknown::as() const [with To = IInitializeWithWindow]'
      _winrt.cpp:224:62:   required from here
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h:2001:69: error: 'value' is not a member of 'winrt::impl::is_com_interface<IInitializeWithWindow>'
       2001 |     inline constexpr bool is_com_interface_v = is_com_interface<T>::value;
            |                                                                     ^~~~~
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h: In instantiation of 'auto winrt::Windows::Foundation::IUnknown::as() const [with To = IInitializeWithWindow]':
      _winrt.cpp:224:62:   required from here
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h:2109:32: error: no matching function for call to 'as<IInitializeWithWindow>(winrt::impl::unknown_abi* const&)'
       2109 |             return impl::as<To>(m_ptr);
            |                    ~~~~~~~~~~~~^~~~~~~
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/Windows.Foundation.h:3057:10: note: candidate: 'template<class To, class From, typename std::enable_if<(! is_com_interface_v<To>), int>::type <anonymous> > auto winrt::impl::as(From*)'
       3057 |     auto as(From* ptr)
            |          ^~
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/Windows.Foundation.h:3057:10: note:   substitution of deduced template arguments resulted in errors seen above
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h:2008:17: note: candidate: 'template<class To, class From, typename std::enable_if<is_com_interface_v<To>, int>::type <anonymous> > winrt::impl::com_ref<T> winrt::impl::as(From*)'
       2008 |     com_ref<To> as(From* ptr)
            |                 ^~
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/base.h:2008:17: note:   substitution of deduced template arguments resulted in errors seen above
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/Windows.Foundation.h: In instantiation of 'int32_t winrt::impl::delegate<winrt::Windows::Foundation::AsyncActionCompletedHandler, H>::Invoke(void*, int32_t) [with H = winrt::impl::wait_for_completed<winrt::Windows::Foundation::IAsyncAction>(const winrt::Windows::Foundation::IAsyncAction&, uint32_t)::shared_type; int32_t = int]':
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/Windows.Foundation.h:804:27:   required from here
      C:/msys64/tmp/pip-build-env-eqdq46t3/overlay/lib/python3.11/site-packages/winrt_sdk/cppwinrt/winrt/Windows.Foundation.h:806:102: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
        806 |             (*this)(*reinterpret_cast<winrt::Windows::Foundation::IAsyncAction const*>(&asyncInfo), *reinterpret_cast<winrt::Windows::Foundation::AsyncStatus const*>(&asyncStatus));
            |                                                                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      error: command 'C:\\msys64\\mingw64\\bin/gcc.exe' failed with exit code 1
      [end of output]
@dlech dlech added the bug Something isn't working label Mar 29, 2024
dlech added a commit that referenced this issue Apr 28, 2024
gcc on MINGW64 needs and extra define to tell headers that we are
targeting Windows 10 and above.

Also move everything non-msvc into a mingw32 check since other compilers
are not tested.

Fixes: #46
@dlech dlech closed this as completed in #51 Apr 28, 2024
dlech added a commit that referenced this issue Apr 28, 2024
gcc on MINGW64 needs and extra define to tell headers that we are
targeting Windows 10 and above.

Also move everything non-msvc into a mingw32 check since other compilers
are not tested.

Fixes: #46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Development

Successfully merging a pull request may close this issue.

2 participants