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 ofRelease
- 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
andinkcpp/Source/inkcpp/Public
. Ideally these should all be in theinclude
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 likelib/Debug/x64/*.lib
and similar for/Release
.
- The user must currently manually copy over the debug
- 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 generatedbin
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!