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

libxml, libxslt #65

Open
fabiencastan opened this issue Apr 20, 2012 · 2 comments
Open

libxml, libxslt #65

fabiencastan opened this issue Apr 20, 2012 · 2 comments

Comments

@fabiencastan
Copy link

Hi,

If we configure cmake to not use libxml and libxslt, the build fails.

In "Shiboken/generator/main.cpp", DOCSTRINGS_ENABLED seems to be defined even if we don't have libxml/libxslt installed. And "qtdocgenerator.cpp" is included in all cases.

"Shiboken/generator/main.cpp":

ifndef DOCSTRINGS_ENABLED

    errorPrint("shiboken: Doc strings extractions was not enabled in this shiboken build.");
    return EXIT_FAILURE;

else

    generators << new QtDocGenerator;

endif

2012-04-20 14:44:52,977 - setuptools - INFO - [ 96%] Building CXX object generator/CMakeFiles/shiboken.dir/qtdoc/qtdocgenerator.cpp.obj
2012-04-20 14:44:52,977 - setuptools - INFO - qtdocgenerator.cpp
2012-04-20 14:44:56,778 - setuptools - INFO - Linking CXX executable shiboken.exe
2012-04-20 14:44:56,977 - setuptools - INFO - qtdocgenerator.cpp.obj : error LNK2019: unresolved external symbol "public: __cdecl DocParser::DocParser(void)" (?
?0DocParser@@qeaa@XZ) referenced in function "public: __cdecl QtDocParser::QtDocParser(void)" (??0QtDocParser@@qeaa@XZ)
2012-04-20 14:44:56,977 - setuptools - INFO -
2012-04-20 14:44:56,977 - setuptools - INFO - qtdocgenerator.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl QtDocParser::fill
Documentation(class AbstractMetaClass *)" (?fillDocumentation@QtDocParser@@UEAAXPEAVAbstractMetaClass@@@z)
2012-04-20 14:44:56,977 - setuptools - INFO -
2012-04-20 14:44:56,977 - setuptools - INFO - qtdocgenerator.cpp.obj : error LNK2001: unresolved external symbol "public: virtual class Documentation __cdecl Qt
DocParser::retrieveModuleDocumentation(class QString const &)" (?retrieveModuleDocumentation@QtDocParser@@UEAA?AVDocumentation@@AEBVQString@@@z)
2012-04-20 14:44:56,977 - setuptools - INFO -
2012-04-20 14:44:56,977 - setuptools - INFO - qtdocgenerator.cpp.obj : error LNK2001: unresolved external symbol "public: virtual class Documentation __cdecl Qt
DocParser::retrieveModuleDocumentation(void)" (?retrieveModuleDocumentation@QtDocParser@@UEAA?AVDocumentation@@xz)
2012-04-20 14:44:56,977 - setuptools - INFO -
2012-04-20 14:44:56,977 - setuptools - INFO - qtdocgenerator.cpp.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl DocParser::~DocParser(
void)" (??1DocParser@@UEAA@XZ) referenced in function "public: virtual __cdecl QtDocParser::~QtDocParser(void)" (??1QtDocParser@@UEAA@XZ)
2012-04-20 14:44:56,987 - setuptools - INFO -
2012-04-20 14:44:56,987 - setuptools - INFO - qtdocgenerator.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl DoxygenParser::fi
llDocumentation(class AbstractMetaClass *)" (?fillDocumentation@DoxygenParser@@UEAAXPEAVAbstractMetaClass@@@z)
2012-04-20 14:44:56,987 - setuptools - INFO -
2012-04-20 14:44:56,987 - setuptools - INFO - qtdocgenerator.cpp.obj : error LNK2001: unresolved external symbol "public: virtual class Documentation __cdecl Do
xygenParser::retrieveModuleDocumentation(class QString const &)" (?retrieveModuleDocumentation@DoxygenParser@@UEAA?AVDocumentation@@AEBVQString@@@z)
2012-04-20 14:44:56,987 - setuptools - INFO -
2012-04-20 14:44:56,987 - setuptools - INFO - qtdocgenerator.cpp.obj : error LNK2001: unresolved external symbol "public: virtual class Documentation __cdecl Do
xygenParser::retrieveModuleDocumentation(void)" (?retrieveModuleDocumentation@DoxygenParser@@UEAA?AVDocumentation@@xz)
2012-04-20 14:44:56,987 - setuptools - INFO -
2012-04-20 14:44:56,987 - setuptools - INFO - shiboken.exe : fatal error LNK1120: 8 unresolved externals
2012-04-20 14:44:56,987 - setuptools - INFO -
2012-04-20 14:44:56,987 - setuptools - INFO - LINK failed. with 2
2012-04-20 14:44:56,987 - setuptools - INFO - NMAKE : fatal error U1077: '"c:\Program Files (x86)\CMake 2.8\bin\cmake.exe"' : return code '0xffffffff'
2012-04-20 14:44:56,997 - setuptools - INFO - Stop.
2012-04-20 14:44:56,997 - setuptools - INFO - NMAKE : fatal error U1077: '"c:\program files (x86)\microsoft visual studio 9.0\vc\bin\amd64\nmake.exe"' : return
code '0x2'
2012-04-20 14:44:56,997 - setuptools - INFO - Stop.
2012-04-20 14:44:56,997 - setuptools - INFO - NMAKE : fatal error U1077: '"c:\program files (x86)\microsoft visual studio 9.0\vc\bin\amd64\nmake.exe"' : return
code '0x2'
2012-04-20 14:44:56,997 - setuptools - INFO - Stop.
2012-04-20 14:44:56,997 - setuptools - ERROR - Traceback (most recent call last):
File "build.py", line 288, in main
process_modules(compil, options.build_module, options.download, modules[options.pyside_version], modules_dir, install_dir, qtinfo, py_executable, py_include
_dir, py_library)
File "build.py", line 74, in process_modules
process_module(compil, download, module, modules_dir, install_dir, qtinfo, py_executable, py_include_dir, py_library)
File "build.py", line 153, in process_module
raise Exception("Error compiling " + module_name)
Exception: Error compiling Shiboken

@yann-lty
Copy link

Hi,

Finally found this bug's origin. I'm not really familiar with the cmake project hierarchy but there is a problem with the propagation of DOCSTRINGS_DISABLE variable. Assuming we don't have libxml and/or libxslt, DOCSTRINGS_DISABLE is correctly set to true in shiboken/CMakeLists.txt, but it's set to false inside shiboken/generator/CMakeLists.txt.

shiboken/generator/CMakeLists.txt :
if (NOT DISABLE_DOCSTRINGS)
set(shiboken_SRC ${shiboken_SRC} qtdoc/qtdocgenerator.cpp)
add_definitions(-DDOCSTRINGS_ENABLED)
endif()

The test above passes; Consequences : it adds to the project the qtdocgenerator.cpp source file which needs those missing libs and also set this wrong definition stating that we have docstrings support.
Hardcoding DISABLE_DOCSTRINGS value to 1 inside shiboken/generator/CMakeLists.txt solved the compilation errors, so this seems to be the only cause of this issue.

Regards,
Yann

@yann-lty
Copy link

Actually the bug was already reported here : https://bugreports.qt-project.org/browse/PYSIDE-8. A patch is proposed.

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

2 participants