DaemonEngine / crunch

Advanced DXTc texture compression and transcoding library and tool, upgraded with Unity improvements, added features, extended system and hardware support, deeply tested.
https://github.com/DaemonEngine/crunch
Other
16 stars 6 forks source link

cmake: rework things a bit #43

Closed illwieckz closed 1 year ago

illwieckz commented 1 year ago

For projects including crunch, building the whole project with crunch will honor standard BUILD_SHARED_LIBS cmake option to link the project, which, despite its name, is not an option to enable the building of shared libs, but an option to link the project against shared libs when building the project.

For people building a standalone redistributable command line tool, it would only be needed to keep BUILD_CRUNCH enabled and BUILD_SHARED_LIBS disabled.

For people packaging the crunch command line tools and libraries in a standard distro package, it is possible to keep BUILD_CRUNCH enabled and also enable BUILD_SHARED_LIBCRN and BUILD_STATIC_LIBCRN to build both .so and .a variant, while BUILD_SHARED_LIBS will still decide how the crunch tool itself is linked.

The two options BUILD_SHARED_LIBCRN and BUILD_STATIC_LIBCRN are not needed when linking a project against crunch or building crunch tool itself, it's a convenience for when building a distribution package.

The install step also honors those two BUILD_SHARED_LIBCRN and BUILD_STATIC_LIBCRN variables. For example it is expected the static .a library built to statically link the crunch tool will not be installed if BUILD_STATIC_LIBCRN is disabled as it is nothing more than a temporary build file.

This is a better implementation of: