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

[wxwidgets] build failure on linux #23758

Closed
talregev opened this issue Mar 25, 2022 · 20 comments · Fixed by #23765
Closed

[wxwidgets] build failure on linux #23758

talregev opened this issue Mar 25, 2022 · 20 comments · Fixed by #23765
Assignees
Labels
category:port-bug The issue is with a library, which is something the port should already support

Comments

@talregev
Copy link
Contributor

talregev commented Mar 25, 2022

Host Environment

  • OS: Linux

To Reproduce
Steps to reproduce the behavior:
./vcpkg install wxwidgets

Failure logs
-Cut and paste the appropriate build messages from the console output.
-Please attach any additional failure logs mentioned in the console output.

tal@tal-pav15:~/vcpkg$ ./vcpkg install wxwidgets
Computing installation plan...
The following packages will be built and installed:
    wxwidgets[core]:x64-linux -> 3.1.5#7
Detecting compiler hash for triplet x64-linux...
Restored 0 packages from /home/tal/.cache/vcpkg/archives in 10.06 ms. Use --debug to see more details.
Starting package 1/1: wxwidgets:x64-linux
Building package wxwidgets[core]:x64-linux...
-- Using cached wxWidgets-wxWidgets-9c0a8be1dc32063d91ed1901fd5fcd54f4f955a1.tar.gz.
-- Extracting source /home/tal/vcpkg/downloads/wxWidgets-wxWidgets-9c0a8be1dc32063d91ed1901fd5fcd54f4f955a1.tar.gz
-- Applying patch disable-platform-lib-dir.patch
-- Applying patch fix-build.patch
-- Using source at /home/tal/vcpkg/buildtrees/wxwidgets/src/54f4f955a1-0d7c66a59e.clean
-- Configuring x64-linux-dbg
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:128 (message):
    Command failed: /home/tal/vcpkg/downloads/tools/cmake-3.22.2-linux/cmake-3.22.2-linux-x86_64/bin/cmake /home/tal/vcpkg/buildtrees/wxwidgets/src/54f4f955a1-0d7c66a59e.clean -DwxUSE_REGEX=builtin -DwxUSE_ZLIB=sys -DwxUSE_EXPAT=sys -DwxUSE_LIBJPEG=sys -DwxUSE_LIBPNG=sys -DwxUSE_LIBTIFF=sys -DwxBUILD_DISABLE_PLATFORM_LIB_DIR=ON -DwxUSE_STL=OFF -DwxUSE_STD_CONTAINERS=OFF -DCMAKE_MAKE_PROGRAM=/home/tal/vcpkg/downloads/tools/ninja-1.10.2-linux/ninja -DCMAKE_SYSTEM_NAME=Linux -DBUILD_SHARED_LIBS=OFF -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/home/tal/vcpkg/scripts/toolchains/linux.cmake -DVCPKG_TARGET_TRIPLET=x64-linux -DVCPKG_SET_CHARSET_FLAG=ON -DVCPKG_PLATFORM_TOOLSET=external -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE -DCMAKE_VERBOSE_MAKEFILE=ON -DVCPKG_APPLOCAL_DEPS=OFF -DCMAKE_TOOLCHAIN_FILE=/home/tal/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON -DVCPKG_CXX_FLAGS= -DVCPKG_CXX_FLAGS_RELEASE= -DVCPKG_CXX_FLAGS_DEBUG= -DVCPKG_C_FLAGS= -DVCPKG_C_FLAGS_RELEASE= -DVCPKG_C_FLAGS_DEBUG= -DVCPKG_CRT_LINKAGE=dynamic -DVCPKG_LINKER_FLAGS= -DVCPKG_LINKER_FLAGS_RELEASE= -DVCPKG_LINKER_FLAGS_DEBUG= -DVCPKG_TARGET_ARCHITECTURE=x64 -DCMAKE_INSTALL_LIBDIR:STRING=lib -DCMAKE_INSTALL_BINDIR:STRING=bin -D_VCPKG_ROOT_DIR=/home/tal/vcpkg -D_VCPKG_INSTALLED_DIR=/home/tal/vcpkg/installed -DVCPKG_MANIFEST_INSTALL=OFF -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/home/tal/vcpkg/packages/wxwidgets_x64-linux/debug
    Working Directory: /home/tal/vcpkg/buildtrees/wxwidgets/x64-linux-dbg
    Error code: 1
    See logs for more information:
      /home/tal/vcpkg/buildtrees/wxwidgets/config-x64-linux-dbg-out.log
      /home/tal/vcpkg/buildtrees/wxwidgets/config-x64-linux-dbg-err.log

Call Stack (most recent call first):
  installed/x64-linux/share/vcpkg-cmake/vcpkg_cmake_configure.cmake:393 (vcpkg_execute_required_process)
  ports/wxwidgets/portfile.cmake:35 (vcpkg_cmake_configure)
  scripts/ports.cmake:145 (include)

wxwidgets.zip

Additional context
Add any other context about the problem here, such as what you have already tried to resolve the issue.

I try to talk with @JackBoosY many times to solve this issue.

@dg0yt
Copy link
Contributor

dg0yt commented Mar 25, 2022

@talregev I think you know that there were previous issues. vcpkg tool even prints the link:
https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+wxwidgets+in%3Atitle

@talregev
Copy link
Contributor Author

Like I say, I try to talk with @JackBoosY many times and we didn't solve this issue. There is a long time we cannot compile wxwidgets on linux. for a few years now. This is seems logic to you?

@dg0yt
Copy link
Contributor

dg0yt commented Mar 25, 2022

It is okay to express that you are not satisified with the progress. But I'm not convinced that opening another issue helps.

The key issue with wxwidgets on Linux in vcpkg now is that vcpkg doesn't have gtk3. So no CI. At least until #22201 is merged.

@talregev
Copy link
Contributor Author

@talregev I think you know that there were previous issues. vcpkg tool even prints the link: https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+wxwidgets+in%3Atitle

There is also a PR #17111, but they holding it for nothing.

It is okay to express that you are not satisified with the progress. But I'm not convinced that opening another issue helps.

The key issue with wxwidgets on Linux in vcpkg now is that vcpkg doesn't have gtk3. So no CI. At least until #22201 is merged.

The issue is not gtk. If you go to the PR #17111 , it already solve without the new gtk.

@dg0yt
Copy link
Contributor

dg0yt commented Mar 25, 2022

If you go to the PR #17111, it already solve without the new gtk.

REGRESSION: wxwidgets:x64-linux. If expected, add wxwidgets:x64-linux=fail to .\scripts\ci.baseline.txt.

(In addition, if you go to the PR #17111, you will see that my comments about correctly dealing with the debug variant are not resolved.)

@talregev
Copy link
Contributor Author

I didn't expect to solve all the problems, but at least let break the problems and deal with them one of the time.
Starting to compile the wxwidgets on Linux, and I can search workaround for other problems.
Will you agree on that?

@JackBoosY JackBoosY added the category:port-bug The issue is with a library, which is something the port should already support label Mar 25, 2022
@JackBoosY
Copy link
Contributor

Very sorry for long time no response, because I'm quite busy in those days.

CMake Error at build/cmake/modules/cotire.cmake:2374 (file):
  Error evaluating generator expression:

    $<COMPILE_LANG_AND_ID:CUDA,NVIDIA>

  $<COMPILE_LANG_AND_ID:lang,id> may only be used with binary targets to
  specify include directories, compile definitions, and compile options.  It
  may not be used with the add_custom_command, add_custom_target, or
  file(GENERATE) commands.
Call Stack (most recent call first):
  build/cmake/modules/cotire.cmake:2996 (cotire_generate_target_script)
  build/cmake/modules/cotire.cmake:3387 (cotire_process_target_language)
  build/cmake/modules/cotire.cmake:3571 (cotire_target)
  build/cmake/functions.cmake:391 (cotire)
  build/cmake/functions.cmake:407 (wx_target_enable_precomp)
  build/cmake/lib/net/CMakeLists.txt:39 (wx_finalize_lib)

I remember I fixed this issue before, can anyone metion me about this part?

@dg0yt
Copy link
Contributor

dg0yt commented Mar 25, 2022

Starting to compile the wxwidgets on Linux, and I can search workaround for other problems.
Will you agree on that?

It is not my decision. But I'm not too optimistic about PRs that cannot be tested in CI.
The issues in your build logs need to be solved on a platform which is in CI.

@talregev
Copy link
Contributor Author

Very sorry for long time no response, because I'm quite busy in those days.

CMake Error at build/cmake/modules/cotire.cmake:2374 (file):
  Error evaluating generator expression:

    $<COMPILE_LANG_AND_ID:CUDA,NVIDIA>

  $<COMPILE_LANG_AND_ID:lang,id> may only be used with binary targets to
  specify include directories, compile definitions, and compile options.  It
  may not be used with the add_custom_command, add_custom_target, or
  file(GENERATE) commands.
Call Stack (most recent call first):
  build/cmake/modules/cotire.cmake:2996 (cotire_generate_target_script)
  build/cmake/modules/cotire.cmake:3387 (cotire_process_target_language)
  build/cmake/modules/cotire.cmake:3571 (cotire_target)
  build/cmake/functions.cmake:391 (cotire)
  build/cmake/functions.cmake:407 (wx_target_enable_precomp)
  build/cmake/lib/net/CMakeLists.txt:39 (wx_finalize_lib)

I remember I fixed this issue before, can anyone metion me about this part?

Can you make a PR to solve only this problem?

@JackBoosY
Copy link
Contributor

@talregev Yeah, but I forgot how I fixed this issue, let me view my commits.

@talregev
Copy link
Contributor Author

@talregev Yeah, but I forgot how I fixed this issue, let me view my commits.

Thank you.

@dg0yt
Copy link
Contributor

dg0yt commented Mar 25, 2022

The Cotire stuff should be disabled IIRC. There were multiple wxwidgets PRs from @JackBoosY at some point.

@talregev
Copy link
Contributor Author

Maybe this will help?
d37218d

@JackBoosY
Copy link
Contributor

The Cotire stuff should be disabled IIRC. There were multiple wxwidgets PRs from @JackBoosY at some point.

Agreed, upstream wxwidgets should deprecate Cotire in their cmake build system, which is not suitable for modernizing cmake exports.

@talregev
Copy link
Contributor Author

talregev commented Mar 25, 2022

The Cotire stuff should be disabled IIRC. There were multiple wxwidgets PRs from @JackBoosY at some point.

Agreed, upstream wxwidgets should deprecate Cotire in their cmake build system, which is not suitable for modernizing cmake exports.

@JackBoosY @dg0yt Can you help them to do that? They ask for help. They ask for assistance of cmake experts.

@JackBoosY
Copy link
Contributor

Maybe this will help? d37218d

I don't think it's related to this issue.

@talregev
Copy link
Contributor Author

talregev commented Mar 25, 2022

Maybe this will help? d37218d

I don't think it's related to this issue.

ok. Can you try something you think it will work? I can also test it on my machine.

@JackBoosY
Copy link
Contributor

@talregev

The Cotire stuff should be disabled IIRC. There were multiple wxwidgets PRs from @JackBoosY at some point.

Agreed, upstream wxwidgets should deprecate Cotire in their cmake build system, which is not suitable for modernizing cmake exports.

@JackBoosY @dg0yt Can you help them to do that? They ask for help. They ask for assistance of cmake experts.

That's a big work since Wxwidgets's buildsystem is huge, I don't think I have much time to make some help in this part.

ok. Can you try something you think it will work? I can also test it on my machine.

I can repro this issue locally, so let me fix it.

@JackBoosY
Copy link
Contributor

Related fix: wxWidgets/wxWidgets@2f6dd5e

@talregev
Copy link
Contributor Author

talregev commented Mar 25, 2022

Related fix: wxWidgets/wxWidgets@2f6dd5e

Can you make a PR with a patches for all the fixes that you make for wxwidgets?
Also for this?
wxWidgets/wxWidgets#2402

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-bug The issue is with a library, which is something the port should already support
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants