adamrehn / conan-ue4cli

Integrate third-party libraries into the Unreal Engine with Conan
https://docs.adamrehn.com/conan-ue4cli/
MIT License
87 stars 20 forks source link

ue4 conan generate error finding libc++.a file for x86_64 architecture #19

Closed LukeVanNamen closed 2 years ago

LukeVanNamen commented 2 years ago

I am running into the following error when I try to run ue4 conan generate on my source code install of the Unreal Engine. Here is the error I am receiving:

[user@fedora UnrealEngine]$ ls
cpp.hint              GenerateProjectFiles.bat      Makefile   Setup.command
Default.uprojectdirs  GenerateProjectFiles.command  README.md  Setup.sh
Engine                GenerateProjectFiles.sh       Samples    Templates
FeaturePacks          LICENSE.md                    Setup.bat  UE5.code-workspace

[user@fedora UnrealEngine]$ pwd
/home/user/UnrealEngine

[user@fedora UnrealEngine]$ ue4 setroot /home/user/UnrealEngine
Set engine root path override: /home/user/UnrealEngine
Using user-specified engine root: /home/user/UnrealEngine

[user@fedora UnrealEngine]$ ue4 conan generate
Using user-specified engine root: /home/user/UnrealEngine
Removing the "ue5.0-Linux-x86_64-unknown-linux-gnu" Conan profile if it already exists...
Removing any previous versions of profile base packages...
Creating "ue5.0-Linux-x86_64-unknown-linux-gnu" Conan profile using autodetected settings...
Installing profile base packages...
Copying the "ue5.0-Linux-x86_64-unknown-linux-gnu" Conan profile into a new profile named "ue4"...
Retrieving thirdparty library list from UBT...
Removing any previous versions of generated wrapper packages for 5.0...
Generating and installing toolchain wrapper package...
  Wrapping clang: /home/user/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v20_clang-13.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang
  Wrapping lib++: /home/user/UnrealEngine/Engine/Source/ThirdParty/Unix/LibCxx/lib/Unix/x86_64-unknown-linux-gnu/libc++.a
Traceback (most recent call last):
  File "/home/user/.local/bin/ue4", line 8, in <module>
    sys.exit(main())
  File "/home/user/.local/lib/python3.10/site-packages/ue4cli/cli.py", line 222, in main
    SUPPORTED_COMMANDS[command]['action'](manager, args)
  File "/usr/local/lib/python3.10/site-packages/conan_ue4cli/main.py", line 48, in main
    SUBCOMMANDS[subcommand]['function'](manager, args[1:])
  File "/usr/local/lib/python3.10/site-packages/conan_ue4cli/commands/generate.py", line 169, in generate
    PackageManagement.install(join(packagesDir, 'toolchain-wrapper'), channel, profile, [
  File "/usr/local/lib/python3.10/site-packages/conan_ue4cli/common/PackageManagement.py", line 16, in install
    return Utility.run(['conan', 'create', '.', 'adamrehn/' + channel, '--profile=' + profile] + args, cwd=packageDir)
  File "/usr/local/lib/python3.10/site-packages/conan_ue4cli/common/Utility.py", line 29, in run
    raise Exception(
Exception: child process ['conan', 'create', '.', 'adamrehn/5.0', '--profile=ue5.0-Linux-x86_64-unknown-linux-gnu', '--env', 'WRAPPED_TOOLCHAIN=/home/user/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v20_clang-13.0.1-centos7/x86_64-unknown-linux-gnu', '--env', 'WRAPPED_LIBCXX=/home/user/UnrealEngine/Engine/Source/ThirdParty/Unix/LibCxx'] failed with exit code 1
stdout: "Exporting package recipe
toolchain-wrapper/ue4@adamrehn/5.0 exports: Copied 4 '.py' files: conanfile.py, ClangInterposition.py, clang++.py, clang.py
toolchain-wrapper/ue4@adamrehn/5.0: A new conanfile.py version was exported
toolchain-wrapper/ue4@adamrehn/5.0: Folder: /home/user/.conan/data/toolchain-wrapper/ue4/adamrehn/5.0/export
toolchain-wrapper/ue4@adamrehn/5.0: Exported revision: 3845df134b0b0b303c03d66020e6c06c
Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=clang
compiler.libcxx=libc++
compiler.version=13
os=Linux
os_build=Linux
[options]
[build_requires]
*: toolchain-wrapper/ue4@adamrehn/5.0
[env]
UNREAL_ENGINE_VERSION=5.0
WRAPPED_LIBCXX=/home/user/UnrealEngine/Engine/Source/ThirdParty/Unix/LibCxx
WRAPPED_TOOLCHAIN=/home/user/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v20_clang-13.0.1-centos7/x86_64-unknown-linux-gnu
toolchain-wrapper/ue4@adamrehn/5.0: Forced build from source
Installing package: toolchain-wrapper/ue4@adamrehn/5.0
Requirements
    toolchain-wrapper/ue4@adamrehn/5.0 from local cache - Cache
Packages
    toolchain-wrapper/ue4@adamrehn/5.0:7398dab5728f06866bd82627d2e411754f86297a - Build

Installing (downloading, building) binaries...
toolchain-wrapper/ue4@adamrehn/5.0: Configuring sources in /home/user/.conan/data/toolchain-wrapper/ue4/adamrehn/5.0/source
toolchain-wrapper/ue4@adamrehn/5.0: Copying sources to build folder
toolchain-wrapper/ue4@adamrehn/5.0: Building your package in /home/user/.conan/data/toolchain-wrapper/ue4/adamrehn/5.0/build/7398dab5728f06866bd82627d2e411754f86297a
toolchain-wrapper/ue4@adamrehn/5.0: Generator txt created conanbuildinfo.txt
toolchain-wrapper/ue4@adamrehn/5.0: Aggregating env generators
toolchain-wrapper/ue4@adamrehn/5.0: Calling build()
toolchain-wrapper/ue4@adamrehn/5.0: Package '7398dab5728f06866bd82627d2e411754f86297a' built
toolchain-wrapper/ue4@adamrehn/5.0: Build folder /home/user/.conan/data/toolchain-wrapper/ue4/adamrehn/5.0/build/7398dab5728f06866bd82627d2e411754f86297a
toolchain-wrapper/ue4@adamrehn/5.0: Generated conaninfo.txt
toolchain-wrapper/ue4@adamrehn/5.0: Generated conanbuildinfo.txt
toolchain-wrapper/ue4@adamrehn/5.0: Generating the package
toolchain-wrapper/ue4@adamrehn/5.0: Package folder /home/user/.conan/data/toolchain-wrapper/ue4/adamrehn/5.0/package/7398dab5728f06866bd82627d2e411754f86297a
toolchain-wrapper/ue4@adamrehn/5.0: Calling package()
"
stderr: "toolchain-wrapper/ue4@adamrehn/5.0: WARN: This conanfile has no build step
ERROR: toolchain-wrapper/ue4@adamrehn/5.0: Error in package() method, line 69
    libraries = dirname(self._find_libcxx(libcxx, architecture))
while calling '_find_libcxx', line 42
    raise RuntimeError('Failed to locate libc++.a for architecture "{}" inside directory "{}"!'.format(architecture, root))
    RuntimeError: Failed to locate libc++.a for architecture "x86_64" inside directory "/home/user/UnrealEngine/Engine/Source/ThirdParty/Unix/LibCxx"!
"

[user@fedora UnrealEngine]$ cd /home/user/UnrealEngine/Engine/Source/ThirdParty/Unix/LibCxx/lib/Unix/x86_64-unknown-linux-gnu/
[user@fedora x86_64-unknown-linux-gnu]$ ls
libc++.a  libc++abi.a

[user@fedora x86_64-unknown-linux-gnu]$ conan search
Existing package recipes:

TestPlugin/0.1@user+conan-practice/beta
libcxx/ue4@adamrehn/profile
toolchain-wrapper/ue4@adamrehn/5.0
ue4lib/ue4@adamrehn/profile
ue4util/ue4@adamrehn/profile 

I'm not sure what the problem is because I can clearly see the libc++.a file. And I'm also able to to see the profiles after doing a quick conan search.

trungus commented 2 years ago

Hi @LukeVanNamen,

The problem is reported in the issue 14

As a simple workaround you can create a symlink called Linux inside of directory /home/user/UnrealEngine/Engine/Source/ThirdParty/Unix/LibCxx/lib something like this ln -s Unix Linux

Best Regards