JBenda/inkcpp

Difficult distribution structure for non-Unreal install

LilithSilver opened this issue · 5 comments

When running cmake --install . --prefix Path/To/Desired/Library/Directory, it creates a structure intended to be used without Unreal. However, this has some issues:

  • This command fails if the project was built with --config Debug instead of Release
  • The inkcpp directory still includes an Unreal-style directory structure, plugin files, and headers
  • To use the project, it's necessary to include two directories: include and inkcpp/Source/inkcpp/Public. Ideally these should all be in the include directory.
  • As it only builds for Release, the copied .lib files are only for Release configurations and will error if used in a project set to Debug.
    • The user must currently manually copy over the debug .lib and .pdb files from the generated Debug build, and link them separately in their project config, if they wish to use them in a Debug configuration. I've added that to the README in a PR for now.
    • A standard pattern I've seen is to have a lib structure like lib/Debug/x64/*.lib and similar for /Release.
  • May want to consider a separate --install component for the C++ package files and the cl binary -- most projects, when using the former, won't need the generated bin folder, and anything using the cl application won't need the library files.

There are workarounds that I've added to the README, so it's not urgent, but it would probably be a good idea to set up this as a separate config at some point!

Thanks for the investigation, I will take a look at this, this weekend

Yea, somehow the pure component is not any longer in the CMake files, I will soon open a PR, then you can try it again ^^

I would propose the following components:

unreal: do the unreal installation stuff
library: a clean include and lib folder
cl: only the binary

Does this sound reasonable?

Yes, that sounds exactly right. Thank you for looking into this!

@LilithSilver feel free to check out #43, the according documentation can be found at https://github.com/brwarner/inkcpp/wiki/building

Closing since #43 was merged!