adamrehn / ue4cli

Command-line interface for Unreal Engine 4
https://docs.adamrehn.com/ue4cli/
MIT License
254 stars 47 forks source link

Problems with the Library Commands on 4.24.3 #21

Closed ik-funcom closed 4 years ago

ik-funcom commented 4 years ago

Hi!

Thanks for your great work, it should come in very handy if I can get it running.

I`m following the "Introduction to ue4cli", and almost none of the library commands in ue4cli work:

D:\>ue4 setroot D:\Tools\UE4\
Using user-specified engine root: D:\Tools\UE4

D:\>ue4 version
Using user-specified engine root: D:\Tools\UE4
4.24.3

D:\>ue4 libs
Using user-specified engine root: D:\Tools\UE4
Traceback (most recent call last):
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\kalujny\AppData\Local\Programs\Python\Python38\Scripts\ue4.exe\__main__.py", line 9, in <module>
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\cli.py", line 216, in main
    SUPPORTED_COMMANDS[command]['action'](manager, args)
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\cli.py", line 94, in <lambda>
    'action': lambda m, args: print('\n'.join(m.listThirdPartyLibs())),
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\UnrealManagerBase.py", line 178, in listThirdPartyLibs
    return interrogator.list(self.getPlatformIdentifier(), configuration, self._getLibraryOverrides())
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\UE4BuildInterrogator.py", line 20, in list
    modules = self._getThirdPartyLibs(platformIdentifier, configuration)
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\UE4BuildInterrogator.py", line 156, in _getThirdPartyLibs
    self.runUBTFunc('UE4Editor', platformIdentifier, configuration, args)
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\UnrealManagerBase.py", line 663, in <lambda>
    ubtLambda = lambda target, platform, config, args: self._runUnrealBuildTool(target, platform, config, args, True)
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\UnrealManagerBase.py", line 655, in _runUnrealBuildTool
    return Utility.capture(arguments, cwd=self.getEngineRoot(), raiseOnError=True)
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\Utility.py", line 125, in capture
    raise Exception(
Exception: child process ['D:\\Tools\\UE4\\Engine\\Build\\BatchFiles\\Build.bat', 'UE4Editor', 'Win64', 'Development', '-Mode=JsonExport', '-OutputFile=C:\\Users\\kalujny\\AppData\\Local\\Temp\\tmp1th1azlh\\ubt_output.json'] failed with exit code 5
stdout: "WARNING: Ignoring child plugin: CableComponent_XXX.uplugin - Unknown suffix "XXX". Expected valid platform or group
Writing C:\Users\kalujny\AppData\Local\Temp\tmp1th1azlh\ubt_output.json...
ERROR: Environment variable 'BinaryOutputDir' is not defined (referenced by D:\Tools\UE4\Engine\Plugins\Experimental\AlembicImporter\Source\ThirdParty\Alembic\AlembicLib.Build.cs)
"
stderr: ""

D:\>set BinaryOutputDir=D:\Temp

D:\>ue4 libs
Using user-specified engine root: D:\Tools\UE4
ADO
AMD_AGS
APEX
CEF3
Crunch
DX11
DX11Audio
DX12
DX9
DirectShow
DirectSound
Eigen
Expat
FBX
Facebook
ForsythTriOptimizer
FreeImage
FreeType2
GlsLang
GoogleARCoreSDK
GoogleInstantPreview
GoogleTest
GoogleVR
HLSLCC
HarfBuzz
ICU
IntelISPC
IntelISPCTexComp
IntelMetricsDiscovery
IntelTBB
IntelVTune
Kiss_FFT
LibOVRAudio
LibOVRAvatar
LibOVRPlatform
MCPP
MikkTSpace
NVAPI
NVAftermath
NvCloth
OVRPlugin
OpenGL
OpenSSL
OpenSubdiv
OpenVR
OpenXR
Perforce
PhysX
PhysXCookingLib
Python
QualcommTextureConverter
RenderDoc
SPIRVReflect
ShaderConductor
SpeedTree
Steamworks
UELibSampleRate
UEOgg
UEOpenExr
UElibJPG
UElibPNG
VHACD
VisualStudioDTE
VivoxClientAPI
VivoxCoreSDK
Vorbis
VorbisFile
Vulkan
WebRTC
WinHttp
WindowsMixedRealityInterop
XInput
coremod
gltfToolkit
libOpus
libPhonon
libWebSockets
libcurl
libstrophe
nvTessLib
nvTextureTools
nvTriStrip
portmidi
zlib

D:\>ue4 cxxflags
Traceback (most recent call last):
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\kalujny\AppData\Local\Programs\Python\Python38\Scripts\ue4.exe\__main__.py", line 9, in <module>
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\cli.py", line 216, in main
    SUPPORTED_COMMANDS[command]['action'](manager, args)
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\cli.py", line 100, in <lambda>
    'action': lambda m, args: print(m.getThirdPartyLibCompilerFlags(args)),
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\UnrealManagerBase.py", line 194, in getThirdPartyLibCompilerFlags
    if libs[0] == '--multiline':
IndexError: list index out of range

D:\>ue4 ldflags
Traceback (most recent call last):
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\kalujny\AppData\Local\Programs\Python\Python38\Scripts\ue4.exe\__main__.py", line 9, in <module>
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\cli.py", line 216, in main
    SUPPORTED_COMMANDS[command]['action'](manager, args)
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\cli.py", line 106, in <lambda>
    'action': lambda m, args: print(m.getThirdPartyLibLinkerFlags(args)),
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\UnrealManagerBase.py", line 211, in getThirdPartyLibLinkerFlags
    if libs[0] == '--multiline':
IndexError: list index out of range

D:\>ue4 includedirs
Traceback (most recent call last):
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\kalujny\AppData\Local\Programs\Python\Python38\Scripts\ue4.exe\__main__.py", line 9, in <module>
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\cli.py", line 216, in main
    SUPPORTED_COMMANDS[command]['action'](manager, args)
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\cli.py", line 118, in <lambda>
    'action': lambda m, args: print(m.getThirdPartyLibIncludeDirs(args)),
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\UnrealManagerBase.py", line 251, in getThirdPartyLibIncludeDirs
    if libs[0] == '--nodefaults':
IndexError: list index out of range

D:\>ue4 libfiles
Traceback (most recent call last):
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\kalujny\AppData\Local\Programs\Python\Python38\Scripts\ue4.exe\__main__.py", line 9, in <module>
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\cli.py", line 216, in main
    SUPPORTED_COMMANDS[command]['action'](manager, args)
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\cli.py", line 124, in <lambda>
    'action': lambda m, args: print(m.getThirdPartyLibFiles(args)),
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\UnrealManagerBase.py", line 263, in getThirdPartyLibFiles
    if libs[0] == '--nodefaults':
IndexError: list index out of range

D:\>ue4 cmakeflags
Traceback (most recent call last):
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\kalujny\AppData\Local\Programs\Python\Python38\Scripts\ue4.exe\__main__.py", line 9, in <module>
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\cli.py", line 216, in main
    SUPPORTED_COMMANDS[command]['action'](manager, args)
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\cli.py", line 112, in <lambda>
    'action': lambda m, args: print(m.getThirdPartyLibCmakeFlags(args)),
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\UnrealManagerBase.py", line 233, in getThirdPartyLibCmakeFlags
    if libs[0] == '--multiline':
IndexError: list index out of range

D:\>ue4 defines
Traceback (most recent call last):
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\kalujny\AppData\Local\Programs\Python\Python38\Scripts\ue4.exe\__main__.py", line 9, in <module>
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\cli.py", line 216, in main
    SUPPORTED_COMMANDS[command]['action'](manager, args)
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\cli.py", line 130, in <lambda>
    'action': lambda m, args: print(m.getThirdPartyLibDefinitions(args)),
  File "c:\users\kalujny\appdata\local\programs\python\python38\lib\site-packages\ue4cli\UnrealManagerBase.py", line 275, in getThirdPartyLibDefinitions
    if libs[0] == '--nodefaults':
IndexError: list index out of range
ik-funcom commented 4 years ago

Hm, is that because LIBS are actually required params to those commands?

Library-related commands
------------------------
These commands are for developers compiling modules that need to build against
UE4-bundled third-party libs for purposes of interoperability with the engine:
libs - List the supported third-party libs
cxxflags [--multiline] [--nodefaults] [LIBS] - Print compiler flags for building against libs
ldflags [--multiline] [--flagsonly] [--nodefaults] [LIBS] - Print linker flags for building against libs
cmakeflags [--multiline] [--nodefaults] [LIBS] - Print CMake flags for building against libs
includedirs [--nodefaults] [LIBS] - Print include directories for building against libs
libfiles [--nodefaults] [LIBS] - Print library files for building against libs
defines [--nodefaults] [LIBS] - Print preprocessor definitions for building against libs
adamrehn commented 4 years ago

The error ERROR: Environment variable 'BinaryOutputDir' is not defined is the result of a bug in UnrealBuildTool, as documented here: https://github.com/adamrehn/ue4-docker/issues/65

All of the library-related commands aside from ue4 libs do indeed require that at least one library name is specified. I'll endeavour to improve the error output to better reflect that in a future version of ue4cli.