Opened 13 years ago
Closed 11 years ago
#31778 closed defect (fixed)
hugin-app @2011.0.0 not compiling, clang error, then "QDGetPictureBounds" not declared error with llvm-gcc-4.2
Reported by: | philippe.bernery@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | hvdwolf@…, p.schmiedeskamp@…, eddedmondson@…, nickbroon@…, hanche | |
Port: | hugin-app |
Description
I tried both with "clang" (the default on my machine as I have Xcode 4.2 installed) and llvm-gcc-4.2
Here is an extract of the error with clang:
[ 37%] Built target flann_cpp /usr/bin/make -f src/foreign/zthread/src/CMakeFiles/ZThread.dir/build.make src/foreign/zthread/src/CMakeFiles/ZThread.dir/depend make[2]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0' cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0 && /opt/local/bin/cmake -E cmake_depends "Unix Makefiles" /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0 /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/foreign/zthread/src /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0 /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/foreign/zthread/src /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/foreign/zthread/src/CMakeFiles/ZThread.dir/DependInfo.cmake --color= make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0' /usr/bin/make -f src/foreign/zthread/src/CMakeFiles/ZThread.dir/build.make src/foreign/zthread/src/CMakeFiles/ZThread.dir/build make[2]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0' /opt/local/bin/cmake -E cmake_progress_report /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/CMakeFiles [ 37%] Building CXX object src/foreign/zthread/src/CMakeFiles/ZThread.dir/AtomicCount.cxx.o cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/foreign/zthread/src && /Developer/usr/bin/clang++ -DNDEBUG -pipe -O2 -arch i386 -O3 -DNDEBUG -arch i386 -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/hugin_base -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/foreign -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/foreign/vigra -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/celeste -I/opt/local/include -I/opt/local/include/OpenEXR -I/System/Library/Frameworks/GLUT.framework/Headers -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/foreign/zthread/src/../include -o CMakeFiles/ZThread.dir/AtomicCount.cxx.o -c /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/foreign/zthread/src/AtomicCount.cxx In file included from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/foreign/zthread/src/AtomicCount.cxx:55: In file included from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/foreign/zthread/src/vanilla/SimpleAtomicCount.cxx:26: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/foreign/zthread/src/../include/zthread/Guard.h:117:9: error: void function 'createScope' should not return a value [-Wreturn-type] return false; ^ ~~~~~ /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/foreign/zthread/src/../include/zthread/Guard.h:121:5: error: void function 'createScope' should not return a value [-Wreturn-type] return true; ^ ~~~~ 2 errors generated.
Here is the error when using llvm-gcc-4.2 as the compiler:
[ 58%] Building CXX object src/hugin1/base_wx/CMakeFiles/huginbasewx.dir/huginConfig.cpp.o cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/hugin1/base_wx && /Developer/usr/bin/llvm-g++-4.2 -Dhuginbasewx_EXPORTS -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXMAC__ -pipe -O2 -arch i386 -I/opt/local/include/wx-2.8 -O3 -DNDEBUG -arch i386 -isysroot / -mmacosx-version-min=10.7 -fPIC -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/hugin_base -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/foreign -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/foreign/vigra -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/celeste -I/opt/local/include -I/opt/local/include/OpenEXR -I/System/Library/Frameworks/GLUT.framework/Headers -I/opt/local/lib/wx/include/mac-unicode-release-2.8 -I/opt/local/include/wx-2.8 -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/hugin1 -o CMakeFiles/huginbasewx.dir/huginConfig.cpp.o -c /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/hugin1/base_wx/huginConfig.cpp In file included from /opt/local/include/wx-2.8/wx/mac/private.h:4, from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/hugin1/base_wx/platform.h:45, from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_hugin-app/hugin-app/work/hugin-2011.0.0/src/hugin1/base_wx/huginConfig.cpp:31: /opt/local/include/wx-2.8/wx/mac/carbon/private.h: In function ‘Rect* wxMacGetPictureBounds(Picture**, Rect*)’: /opt/local/include/wx-2.8/wx/mac/carbon/private.h:1375: error: ‘QDGetPictureBounds’ was not declared in this scope /opt/local/include/wx-2.8/wx/mac/carbon/private.h: At global scope: /opt/local/include/wx-2.8/wx/mac/carbon/private.h:1459: error: ‘Cursor’ does not name a type /opt/local/include/wx-2.8/wx/mac/carbon/private.h:1488: error: ‘ClassicCursor’ does not name a type
Looking on the Internet, I saw that there may be some errors when using wxWidgets on Lion. I tried to add "--with-macosx-sdk=/Developer/SDKs/MacOSX10.6.sdk --with-macosx-version-min=10.6" to the configure command but without success. Also, I'm not sure about the way to do add these parameters. I used this command line:
sudo port -d install hugin-app configure.compiler=llvm-gcc-4.2 configure.args-append="--with-macosx-sdk=/Developer/SDKs/MacOSX10.6.sdk --with-macosx-version-min=10.6"
Change History (15)
comment:1 Changed 13 years ago by eddedmondson@…
comment:3 Changed 13 years ago by philippe.bernery@…
I still get the issue. I tried both
sudo port -d install hugin-app configure.compiler=llvm-gcc-4.2 configure.args-append=-DCMAKE_OSX_DEPLOYMENT_TARGET=10.6 configure.sdkroot=/Developer/SDKs/MacOSX10.6.sdk
and
sudo port -d install hugin-app configure.compiler=llvm-gcc-4.2 configure.args-append -DCMAKE_OSX_DEPLOYMENT_TARGET=10.6 configure.sdkroot /Developer/SDKs/MacOSX10.6.sdk
and got the error about QDGetPictureBounds.
I perfomed a
sudo port clean hugin-app
before each compile.
FYI, my variants.conf contains:
+no_x11 -x11 +quartz +no_tkinter +universal
comment:6 Changed 13 years ago by nickbroon@…
2011.2.0 and 2011.4.0 are both now available. Perhaps packaging one of those and see if it works would be help.
comment:7 follow-up: 12 Changed 13 years ago by hvdwolf@…
In the past weeks I have been looking at this issue but I have no idea where the clang issue comes from. I'm still on Snow Leopard and have no intentions yet to switch and it seems only to occur on lion. Next week I will work on the 2011.4.0 Portfile. I have no idea whether that will solve it and it will off course not solve the current issue in 2011.0 on Lion.
comment:8 Changed 13 years ago by hvdwolf@…
Now there is another new issue. boost 1.48 is the default boost for MacPorts. Hugin needs to be patched to work with boost 1.48. They already made a patch for the hugin trunk, which I applied to 2011.4.0, but it's not sufficient on OSX. I filed a bug report at the hugin launchpad.
comment:9 Changed 13 years ago by hvdwolf@…
Hugin need to be patched, but it's not only hugin. It's an issue between Apples Assertmacros.h and boost 1.48 check() macros. See boost ticket https://svn.boost.org/trac/boost/ticket/6219.
It requires a huge load of
#ifdef check #undef check #endif
before a lot of Boost includes in the hugin code, so it's not a hugin issue either. But it's quite a lot of work.
I assume this will influence a lot of boost related ports.
comment:10 Changed 13 years ago by hanche
Well, it seems that nobody has sufficient time and inclination to fix this bug. Is there a way to mark the port as broken on Lion, so that people don't waste time trying to compile it and its many dependencies (as I just did)?
comment:12 Changed 12 years ago by jmroot (Joshua Root)
Replying to hvdwolf@…:
In the past weeks I have been looking at this issue but I have no idea where the clang issue comes from.
The error reported by clang is pretty simple: the function 'createScope' is declared to not return a value, but then it returns a value. This is completely bogus code, but probably not hard to fix.
comment:13 Changed 12 years ago by hvdwolf@…
The next hugin 2012.0 is to be released soon. hugin is currently built against Carbon using wxWidgets. The conflicting macro between boost >=1.48 and Apple inside assertMacros.h is a piece of carbon code that is necessary for wxwidgets 2.8 carbon. It's a conflict I can't solve. I already skipped the entire boost patch and wrote a few patches to compile hugin against wxwidgets 2.9 for Cocoa. These patches are in a hugin development branch and not ready for release yet. It has the advantage that hugin can be compiled both for i386 and x86_64. 64bits builds weren't posible against wxmac 2.8 as carbon isn't 64bits. When I use the wxwidgets-devel 2.9 version and use the CPP/C/CXXFLAG "-D ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0" to overcome the boost issue, I can compile hugin and I could build a portfile for that. Hugin against Cocoa works but needs finetuning and is not ready for release as drag&drop and a few more things are broken in wxwidgets 2.9.3 and 2.9.4. As it is not ready for release in 2012.0, it will not come to Macports soon either. I like to have a hugin 2012.2 release somewhere in autumn as well to implement all this, but at this moment I'm really in a situation I can't go forward. Which means that hugin will remain broken for a somewhat longer period or I should apply the hugin patches to 2012.0 as well and make a portfile that forces the use of wxwidgets-devel and deactivate wxwidgets (when installed).
Please advise in case of other solutions which I don't know now due to missing macports knowledge.
comment:14 Changed 11 years ago by mojca (Mojca Miklavec)
Is anyone "present here" still interested in the efforts to make Hugin work again? The reported error has been fixed both upstream and in MacPorts:
- http://sourceforge.net/p/hugin/hugin/ci/e07f13ff32a0677de4181f470792dcf770864378/
- https://bugs.launchpad.net/hugin/+bug/1213585
but there are a few other problems with boost.
comment:15 Changed 11 years ago by mojca (Mojca Miklavec)
Resolution: | → fixed |
---|---|
Status: | new → closed |
Version: | 2.0.3 |
I committed some patches in r110277, r110894 and now upgraded the port to 2013.0.0 in r113119.
I believe this particular issue is solved now, even though #41280 remains. I successfully built hugin-app
on 10.7 against wxWidgets-3.0 after manually fixing the other above mentioned problem.
In case that I forgot anything about this ticket, please reopen it or file a new one.
Drop your current configure.args-append and add
configure.args-append -DCMAKE_OSX_DEPLOYMENT_TARGET=10.6
configure.sdkroot /Developer/SDKs/MacOSX10.6.sdk
It still needs configure.compiler=llvm-gcc-4.2
You almost had the right answer - just that hugin is built with cmake and wxWidgets isn't, and they have different ways to do the same thing.