-
Notifications
You must be signed in to change notification settings - Fork 444
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
CMake and ext package upgrades #1016
CMake and ext package upgrades #1016
Conversation
Signed-off-by: Michael Dolan <michdolan@gmail.com>
Signed-off-by: Michael Dolan <michdolan@gmail.com>
@michdolan Thanks for modernizing & improving the external library integration. But, could you explain the rational of the first two bullets (i.e. |
As for the rationale for preferring third-party CMake configs: Most of our upstream dependencies provide CMake configs with their installs (in the new versions I proposed), which allows us to greatly reduce dependence on our CMake find modules for knowing where to find packages or how to check versions. Eventually, we can rely on the configs alone, and have no custom logic. The only thing stopping us from doing that right now is the handling of |
This all looks good from my point of view. For a while now, I've had my projects using CMake 3.12 as a minimum for the same reasons, I export cmake config files, and am slowly retiring my own FindFoo.cmake modules as my dependencies reliably have their own exported config files. I still have a couple places where I do automatic downloads, but enough people/sites have trouble with that to cause me to slowly remove them one by one, making my builds assume that all dependencies are present, but supplying scripts that download/build/install any of the dependencies that are not extremely common in all the distros. So I've come to think the best policy is to leave it up to the users to install the dependencies, but I give them tools to at least make it a single easy command when they need to do it. |
By checking what is done in OpenImageIO, I agree that having a findXX from third-party libraries is extremely useful to simplify any cmake integration. By default, it could provide the version, and a standard way to search for the library. However, Windows platform support is still weak for the search part. So, the On the other hand, the automatic OpenColorIO library build is also mandatory (whatever is the platform) for most of our devs/users i.e. search for third-party libraries and if not found, download & compile, to guaranty a successful build without worrying about dependencies. With the current work, the only missing piece is now the generated findOpenColorIO() and perhaps adjustments between findXX() vs. Other aspects about using installed third-party libraries is the low control on the version, the dynamic vs. static library, and sometime the namespace. From the various integrations I did, I now always strongly recommend to generate & link with static libraries for all mandatory third-party dependencies, and hides private symbols (including third-party library ones). When integrating a library in a larger program (Maya, Flame, etc) there is a great chance that some third-party libraries be already used by the app or by another third-party dependency (out of your control) and that versions be different. The proposed approach avoids symbol conflicts at link time, weird crashes on client site at runtime. |
Signed-off-by: Michael Dolan <michdolan@gmail.com>
When looking at the CI builds, I notice that:
|
When some third-party libraries are missing, the code could provide a additional one-line explanation on how to add the support:
|
[Warning already present i.e. not from this PR]
The change could be part of another PR. |
Hey, was just about to put in a PR around this. It may be isolated to my environment, however This would have to be updated in the python bindings I'll make an updated PR to your branch. |
@michdolan I have the same problem on macos with Python 2.7.16 & cmake 3.16.5. |
I will address the remaining comments once I merge Sean's PR into my branch. |
[Suggestions]
|
CMake supports both.
I agree that 3.x is preferred, but technically 2.7 will still work too. If I bump the minimum we will be dropping support for Python 2 bindings.
These warnings are coming from our find modules. Is your suggestion to address the
I added a new macro to print a standard message about using @hodoulp on a somewhat related point, should |
@scoopxyz thanks for resolving the CLA issue. The DCO is now failing as it thinks your sign-off name should be your github handle. See: https://github.com/AcademySoftwareFoundation/OpenColorIO/pull/1016/checks?check_run_id=815283666 |
No, That's a false dependency. To be removed. |
…emySoftwareFoundation#1015) Add a test for View serialization. Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>
* Refactor CLF tests Signed-off-by: Doug Walker <Doug.Walker@autodesk.com> * Address review comments Signed-off-by: Doug Walker <Doug.Walker@autodesk.com> * Tweak test names Signed-off-by: Doug Walker <Doug.Walker@autodesk.com> * Transform_missing build break fix Signed-off-by: Doug Walker <Doug.Walker@autodesk.com> * Windows build break fix Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>
* TSC meeting notes 2020-04-27 Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com> * Add space to unlock the CI builds Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com> Co-authored-by: doug-walker <43830961+doug-walker@users.noreply.github.com>
…wareFoundation#1013) Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com> Co-authored-by: doug-walker <43830961+doug-walker@users.noreply.github.com>
* 2020-05-11 tsc mtg notes Signed-off-by: Doug Walker <Doug.Walker@autodesk.com> * Adjust wording Signed-off-by: Doug Walker <Doug.Walker@autodesk.com> Co-authored-by: Michael Dolan <michdolan@gmail.com> Co-authored-by: Patrick Hodoul <patrickhodoul@gmail.com>
…ademySoftwareFoundation#1022) Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
* Add TSC notes for 05-18-2020 Signed-off-by: Michael Dolan <michdolan@gmail.com> * Fix indentation issue Signed-off-by: Michael Dolan <michdolan@gmail.com> * Fix typo Signed-off-by: Michael Dolan <michdolan@gmail.com> Co-authored-by: Patrick Hodoul <patrickhodoul@gmail.com>
…tion#1020) Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
Signed-off-by: Mei Chu <meimchu@gmail.com>
* Add notes from 06-01-2020 TSC meeting Signed-off-by: Michael Dolan <michdolan@gmail.com> * Fix typo Signed-off-by: Michael Dolan <michdolan@gmail.com>
* Refactor PyBuiltinTransform Signed-off-by: Michael Dolan <michdolan@gmail.com> * Add unit tests, fix None style handling Signed-off-by: Michael Dolan <michdolan@gmail.com> * Fix Python 2/3 compatibility issue Signed-off-by: Michael Dolan <michdolan@gmail.com> * Fix Windows warning Signed-off-by: Michael Dolan <michdolan@gmail.com> Co-authored-by: Patrick Hodoul <patrickhodoul@gmail.com>
Signed-off-by: Michael Dolan <michdolan@gmail.com> Co-authored-by: Patrick Hodoul <patrickhodoul@gmail.com>
* Initial update to python unit test module LookTest. Signed-off-by: Mei Chu <meimchu@gmail.com> * Updated PyLook and added some extra wrong type tests for LookTest.py Signed-off-by: Mei Chu <meimchu@gmail.com> * Updated LookTest and PyLook according to feedbacks. Signed-off-by: Mei Chu <meimchu@gmail.com> * Updated python LookTest according to further feedbacks. Signed-off-by: Mei Chu <meimchu@gmail.com> * Updated constructor method names per feedback. Signed-off-by: Mei Chu <meimchu@gmail.com> Co-authored-by: Patrick Hodoul <patrickhodoul@gmail.com>
* Add TSC meeting notes for 06-22-2020 Signed-off-by: Michael Dolan <michdolan@gmail.com> * Fix typo Signed-off-by: Michael Dolan <michdolan@gmail.com>
…twareFoundation#1043) Signed-off-by: Simran Brucherseifer <simran.brucherseifer@gmail.com> Co-authored-by: Patrick Hodoul <patrickhodoul@gmail.com>
Signed-off-by: Simran Brucherseifer <simran.brucherseifer@gmail.com> Co-authored-by: Patrick Hodoul <patrickhodoul@gmail.com>
Signed-off-by: Michael Dolan <michdolan@gmail.com>
Signed-off-by: Michael Dolan <michdolan@gmail.com>
Signed-off-by: Michael Dolan <michdolan@gmail.com>
Signed-off-by: Michael Dolan <michdolan@gmail.com>
…eline (AcademySoftwareFoundation#1038) * Add ViewingRules, DisplayViewTransform, and ViewingPipeline Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com> * Add version check to config sanity check. Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com> * Adjust comments Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com> * Update ViewingPipeline.cpp Fix indentation Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com> Co-authored-by: Patrick Hodoul <patrickhodoul@gmail.com>
…ion#1048) Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
…areFoundation#1042) * Add defStr to transform classes, cleanup param names Signed-off-by: Michael Dolan <michdolan@gmail.com> * Update unit test params Signed-off-by: Michael Dolan <michdolan@gmail.com> * Update param name in DisplayViewTransform test Signed-off-by: Michael Dolan <michdolan@gmail.com>
…ademySoftwareFoundation#1037) * Add documentation working group notes from 06-12-2020 Signed-off-by: Michael Dolan <michdolan@gmail.com> * Correct section title Signed-off-by: Michael Dolan <michdolan@gmail.com> * Fix typo Signed-off-by: Michael Dolan <michdolan@gmail.com> * Fix typo, add notes from 06-18-2020 meeting Signed-off-by: Michael Dolan <michdolan@gmail.com>
…1040) Signed-off-by: Michael Dolan <michdolan@gmail.com>
Signed-off-by: Michael Dolan <michdolan@gmail.com> Co-authored-by: Patrick Hodoul <patrickhodoul@gmail.com>
* Modified CMakeLists.txt Signed-off-by: ChinYing-Li <chinying.li@mail.utoronto.ca> * Support headless rendering in Linux build with EGL (AcademySoftwareFoundation#1039) Signed-off-by: ChinYing-Li <chinying.li@mail.utoronto.ca> * Fix CMakeLists bugs Made OglApp's destructor virtual Signed-off-by: ChinYing-Li <chinying.li@mail.utoronto.ca> * Remove bugs in app's CMakeLists (AcademySoftwareFoundation#1039) Signed-off-by: ChinYing-Li <chinying.li@mail.utoronto.ca> * Modified CMakeLists and add factory function for OglAppRcPtr (AcademySoftwareFoundation#1039) Signed-off-by: ChinYing-Li <chinying.li@mail.utoronto.ca> * Use imported target to find EGL (AcademySoftwareFoundation#1039) Change the CI workflow to build with headless option Signed-off-by: ChinYing-Li <chinying.li@mail.utoronto.ca> * Modify CMakeLists to properly link EGL (AcademySoftwareFoundation#1039) Remove unused variables (AcademySoftwareFoundation#1039) Include glext.h and debug print (AcademySoftwareFoundation#1039) Check GLEW initialization (AcademySoftwareFoundation#1039) Signed-off-by: ChinYing-Li <chinying.li@mail.utoronto.ca> * Add debug print for HeadlessApp initialization (AcademySoftwareFoundation#1039) Signed-off-by: ChinYing-Li <chinying.li@mail.utoronto.ca> * Modify CMakeLists to accomodate system that support GLVND (AcademySoftwareFoundation#1039) Remove unused variables (AcademySoftwareFoundation#1039) Define GLEW_EGL preprocessor for NVidia implementation (AcademySoftwareFoundation#1039) Signed-off-by: ChinYing-Li <chinying.li@mail.utoronto.ca> * Fix CMakeLists (AcademySoftwareFoundation#1039) Add the factory method for creating OglAppRcPtr Modify CMakeLists (AcademySoftwareFoundation#1039) Signed-off-by: ChinYing-Li <chinying.li@mail.utoronto.ca> * Rename the factory method OglApp::CreateOglApp (AcademySoftwareFoundation#1039) Signed-off-by: ChinYing-Li <chinying.li@mail.utoronto.ca> * Change workflow to check the GL vendor of CI Linux build (AcademySoftwareFoundation#1039) Signed-off-by: ChinYing-Li <chinying.li@mail.utoronto.ca> * Add proper mechanism to detect GLVND support in CmakeLists (AcademySoftwareFoundation#1039) Signed-off-by: ChinYing-Li <chinying.li@mail.utoronto.ca> * Reformat the code (AcademySoftwareFoundation#1039) Signed-off-by: ChinYing-Li <chinying.li@mail.utoronto.ca> * Turn off GPU unit test in CI (AcademySoftwareFoundation#1039) Signed-off-by: ChinYing-Li <chinying.li@mail.utoronto.ca>
Fixes AcademySoftwareFoundation#1050. Authored by @LazyDodo. Signed-off-by: Troy James Sobotka <troy.sobotka@gmail.com> Co-authored-by: Patrick Hodoul <patrickhodoul@gmail.com>
Signed-off-by: Michael Dolan <michdolan@gmail.com>
b63d696
to
acf1d15
Compare
A variety of updates to ext package versions and CMake find modules:
<package>_ROOT
variables for overriding package locationsSigned-off-by: Michael Dolan michdolan@gmail.com