-
Notifications
You must be signed in to change notification settings - Fork 617
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove all build-time header generation #606
Remove all build-time header generation #606
Conversation
- removed the auto-generation step from the build process - added test in HalfTest Signed-off-by: Cary Phillips <cary@ilm.com>
- remove auto-generation of the header tables - add test to IlmImfTest to validate the headers Signed-off-by: Cary Phillips <cary@ilm.com>
Also: - added comments to the new tests - fixed export headers in Makefile.am Signed-off-by: Cary Phillips <cary@ilm.com>
Signed-off-by: Cary Phillips <cary@ilm.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Cary!
Looks fine mostly, although shouldn't we leave the targets to build the generate programs? If you want, you can add an EXCLUDE_FROM_ALL tag to the add_executable calls |
My preference would be to remove the generator code altogether, decrease
the entropy of the project. Or leave it as a comment, although if we did
ever need it, it’s in the git history. It’s not like we’re ever going to
change it.
The half table generation is quite simple. The DWA look generation is quite
complex because it’s multithreaded.
On Wed, Nov 6, 2019 at 12:36 AM Kimball Thurston ***@***.***> wrote:
Looks fine mostly, although shouldn't we leave the targets to build the
generate programs? If you want, you can add an EXCLUDE_FROM_ALL tag to the
add_executable calls
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#606>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AFC3DGPC5PFNOCRRNOYMJZ3QSJ62LANCNFSM4JIIQQXA>
.
--
Cary Phillips | R&D Supervisor | ILM | San Francisco
|
Since the space occupied by the headers was discussed: they are obviously not meant for human consumption. So a substantial amount of space could be saved by choosing a different layout:
|
I experimented with reducing the whitespace, and the files got smaller, but not by enough to justify disturbing the code. There is definitely bloat here, as some of these could be generated efficiently at runtime, but I don't think space concerns are significant. |
Add toFloat.h, eLut.h, b44ExpLogTable.h, dwaLookups.h as first-class headers, and remove the associated cmake/autoconf build rules.
Also:
code from the generation programs)
global namespace.
-The original generation program code is still in the repo, although it's no longer compiled or used.
The rationale behind this is to simplify the build process, as the header generation is a frequent source of problems for users building the library, at the cost of disk space. At 6258948 bytes, dwaLookups.h is now the single largest file in the project repo, although it's only 13% of the total repo size, only about twice the size of several of the included test .exr images, so not onerously large.
The original idea discussed in the TSC was to retain make targets to generate the headers, but after considering it further, it seems more appropriate to just do the validation with code inside the test projects. This removes all the complexity of building the generation programs from the Makefiles once and for all, rather than just moving the complexity into the test project Makefiles.