billyquith / GWork

Skinnable GUI with useful widget collection. Fork of GWEN.
https://billyquith.github.io/GWork/
Other
216 stars 30 forks source link

Header install problem #56

Closed Nopey closed 7 years ago

Nopey commented 7 years ago

The current cmake scripts have some issues. I. SFML renderer uses GL, but does not link to it. II. include headers are installed incorrectly.

minor issues: a) NULL renderer seems like pointless cruft. (its not even the default renderer) b) inability to compile multiple renderer (relatively minor)

I've fixed issue I and made a PR and will be fixing issue II shortly.

I feel the need to elaborate on Issue II. in source/platform/CMakeLists.txt the variable GWK_RENDER_HEADERS is set to all of the headers inside source/platform/include, save the inactive renderers. Then, those headers are installed in two locations, making two copies.

install(FILES ${GWK_RENDER_HEADERS}
        DESTINATION include/Gwork/Input)

install(FILES ${GWK_RENDER_HEADERS}
        DESTINATION include/Gwork/Renderers)

The end result is that source/platform/include/Gwork/BaseRender.h gets installed in include/Gwork/Render/BaseRender.h and include/Gwork/Input/BaseRender.h, but not include/Gwork/BaseRender.h

billyquith commented 7 years ago

The current cmake scripts have some issues. I. SFML renderer uses GL, but does not link to it.

I don't think this is correct, as you mention in the PR. GL is specified in the dependencies, and these have to be linked to in your project config. There is an example in the samples.

II. include headers are installed incorrectly.

On which platform? What happens?

a) NULL renderer seems like pointless cruft. (its not even the default renderer)

It is to test that everything compiles, without having to link to a specific renderer. This is used in the continuous integration tests. It is also used in the memory usage tests.

b) inability to compile multiple renderer (relatively minor)

This is mentioned in the building docs. No, you cannot build multiple targets. It is simple enough create multiple projects in different directories.

The end result is that source/platform/include/Gwork/BaseRender.h gets installed in include/Gwork/Render/BaseRender.h and include/Gwork/Input/BaseRender.h, but not include/Gwork/BaseRender.h

I will have to look into this.

billyquith commented 7 years ago

Thanks for reporting the install problem. I think that is fixed now.