Skip to content
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

Debug build TBB and Python CMake issues #65

Open
jcowles opened this issue Sep 26, 2016 · 6 comments
Open

Debug build TBB and Python CMake issues #65

jcowles opened this issue Sep 26, 2016 · 6 comments

Comments

@jcowles
Copy link

jcowles commented Sep 26, 2016

System Information (OS, Hardware, etc.)

Windows

CMake fails to find tbb_debug.lib when it is present and attempts to use pythonXX_d.lib, even when it's not present.

The TBB issue is due to a hard coded string, which seems like it should be easy to fix, I'm not sure what's going on with Python.

@jtran56
Copy link

jtran56 commented Sep 26, 2016

Filed as internal issue #137874.

@meshula
Copy link
Member

meshula commented Sep 26, 2016

Getting Python to work in a debug build is super-super gross, because cmake expects a global configuration, and all the dependencies, including say PyImath if you are using OpenEXR, will all need to be globally debug-configured. This is simply going to fall over dead as soon as you try to actually use python, because the command line available python command line interpreter is not going to be a debug build. Where this is going to super-duper extra-special bite you is when you try to build a DCC plugin, because you won't be able to get Python-debug compiled version of Maya, or whatever. At ILM, we built Zeno with a modded pyconfig to suppress this, and you can observe a similar ... I hesitate to call a workaround for such a broken scheme a hack ... pattern in usd-build-club.

https://github.com/vfxpro99/usd-build-club/blob/master/prerequisites-vc140-x64/pyconfig.h

This ... hack ... suppresses the hideous _d convention and allows a debug configuration of USD to link against the release python.

You'll see the same-ish ... hackery ... for tbb -

https://github.com/vfxpro99/usd-build-club/blob/master/prerequisites-vc140-x64/tbb_config.h

@ghost
Copy link

ghost commented Sep 27, 2016

I always built USD in a release configuration.

I added an option, PXR_HYBRID_BUILD_MODE, that would disable optimisations so that you can debug it.

@meshula
Copy link
Member

meshula commented Sep 27, 2016

I like that. I personally like three configurations, I usually call them DEBUG, DEVELOP, RELEASE where DEVELOP is the one you mention. And obviously I like to hack Python integration to avoid the Debug bear trap.

@ghost
Copy link

ghost commented Sep 27, 2016

Hey Nick,

So yeah your DEVELOP configuration is the same as my HYBRID configuration.

Is this something you did for OSX too? It would be great to agree upon some standard.

@meshula
Copy link
Member

meshula commented Sep 27, 2016

Not officially. I'm fine with any name. My logic on "develop" was that it describes the work you're doing, in the same same sense that "debug" and "release" describe what you're doing when you select that variant.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants