Nuke is currently a concern. We were able to use a LD_PRELOAD
workaround to make Nuke11 use our c++14 Qt build, but it just feels
wrong. Instead of relying on that it's likely that we're going to keep
Nuke quarantined off in its own environment that's still using the
older C++11 / CY2017 environment.
This works for us because we have the resources to build our entire
tree in multiple permutations of #ifdefs, tool versions, compilers,
and build flags, but it's no small feat and probably quite prohibitive
for smaller shops.
What it effectively means for our internal code is that it has to
remain C++11 compatible because it's still being built in both C++11
and C++14 modes. Right now it works because there aren't any
low-level libraries that are forcing C++14 across public interfaces.
Once challenge was finding all the places where C++11 is hard-coded
and making those places more flexible. Environment variables aren't a
great solution, but for now we are using an environment variable in
our build environment that we've been hacking 3rd-party builds to
honor. A better approach might be to have an external package whose
only purpose is to define the variable build flags (currently
-std=c++14 vs. -std=c++11 and the ABI compatible #define) and make
every vfx open source project depend on it for getting its build
configuration.
That's more work then hacking it in, so you can imagine which one wins
in the short-term. For reference, here's[1] what we added to Ptex.
Follow-up question for the group -- what would be the best way to
manage changing build configurations across all open source vfx
projects? If we have rough consensus then we could start submitting
changes in that vein upstream as we find ourselves needing to change
things rather than making local site-specific tweaks.
Sorry for the long-winded answer. I can't answer on Pixar's behalf,
but from what I've seen they are not ready either since everything in
the tree is still expecting C++11. For reference, we had to make a
similar local tweak to USD here[2] (that change was not shared
upstream) to make it use C++14 rather than C++11, so it seems like
they haven't gotten there yet.
[1]
https://github.com/wdas/ptex/blob/master/CMakeLists.txt#L8
[2]
https://github.com/PixarAnimationStudios/USD/blob/master/cmake/defaults/gccclangshareddefaults.cmake#L31
An engineer from SideEffects mentioned that they had to make that same
USD tweak as well when building their USD integration for Houdini 17
(which is built in C++14 mode).
> --
> You received this message because you are subscribed to the Google Groups "vfx-platform-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
vfx-platform-dis...@googlegroups.com.
> To post to this group, send email to
vfx-platfo...@googlegroups.com.
> To view this discussion on the web visit
https://groups.google.com/d/msgid/vfx-platform-discuss/4F90CE35-C64F-429C-99B6-EFC071B0F08E%40larrygritz.com.
> For more options, visit
https://groups.google.com/d/optout.
--
David