Can't compile HeeksCAD

Hi,
I’m trying to compile heekscad which is a tool I use for my work. I’m able to compile it with Fedora 25 in my notebook but I can’t do it with my up to date Tumbleweed desktop.

This is the error message I get right after beginning compilation:

...
In file included from /home/luispa/src/heekscad-master/src/stdafx.h:263:0,
                 from /home/luispa/src/heekscad-master/interface/DoubleInput.cpp:5:
/home/luispa/src/heekscad-master/src/HeeksCAD.h: At global scope:
/home/luispa/src/heekscad-master/src/HeeksCAD.h:227:8: warning: ‘template<class> class std::auto_ptr’ is deprecated -Wdeprecated-declarations]
   std::auto_ptr<VectorFonts> m_pVectorFonts; // QCAD format fonts that have been loaded.
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /home/luispa/src/heekscad-master/src/stdafx.h:42,
                 from /home/luispa/src/heekscad-master/interface/DoubleInput.cpp:5:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /home/luispa/src/heekscad-master/src/stdafx.h:263:0,
                 from /home/luispa/src/heekscad-master/interface/DoubleInput.cpp:5:
/home/luispa/src/heekscad-master/src/HeeksCAD.h:236:8: warning: ‘template<class> class std::auto_ptr’ is deprecated -Wdeprecated-declarations]
   std::auto_ptr<CAutoSave> m_pAutoSave;
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /home/luispa/src/heekscad-master/src/stdafx.h:42,
                 from /home/luispa/src/heekscad-master/interface/DoubleInput.cpp:5:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /home/luispa/src/heekscad-master/src/stdafx.h:263:0,
                 from /home/luispa/src/heekscad-master/interface/DoubleInput.cpp:5:
/home/luispa/src/heekscad-master/src/HeeksCAD.h:426:8: warning: ‘template<class> class std::auto_ptr’ is deprecated -Wdeprecated-declarations]
   std::auto_ptr<VectorFonts> & GetAvailableFonts(const bool force_read = false);
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /home/luispa/src/heekscad-master/src/stdafx.h:42,
                 from /home/luispa/src/heekscad-master/interface/DoubleInput.cpp:5:
/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /usr/include/wx-3.0/wx/intl.h:17:0,
                 from /usr/include/wx-3.0/wx/wx.h:22,
                 from /home/luispa/src/heekscad-master/src/stdafx.h:29,
                 from /home/luispa/src/heekscad-master/interface/DoubleInput.cpp:5:
/home/luispa/src/heekscad-master/interface/DoubleInput.cpp: In member function ‘virtual const wxChar* CInputApply::GetTitle()’:
/home/luispa/src/heekscad-master/interface/DoubleInput.cpp:19:34: error: cannot convert ‘const wxString’ to ‘const wxChar* {aka const wchar_t*}’ in return
  const wxChar* GetTitle(){return _("Apply");}
                                  ^
/home/luispa/src/heekscad-master/interface/DoubleInput.cpp: In member function ‘virtual const wxChar* CInputApply::GetToolTip()’:
/home/luispa/src/heekscad-master/interface/DoubleInput.cpp:21:36: error: cannot convert ‘const wxString’ to ‘const wxChar* {aka const wchar_t*}’ in return
  const wxChar* GetToolTip(){return _("Accept value and continue");}
                                    ^
/home/luispa/src/heekscad-master/interface/DoubleInput.cpp: In member function ‘virtual const wxChar* CInputCancel::GetTitle()’:
/home/luispa/src/heekscad-master/interface/DoubleInput.cpp:29:34: error: cannot convert ‘const wxString’ to ‘const wxChar* {aka const wchar_t*}’ in return
  const wxChar* GetTitle(){return _("Cancel");}
                                  ^
/home/luispa/src/heekscad-master/interface/DoubleInput.cpp: In member function ‘virtual const wxChar* CInputCancel::GetToolTip()’:
/home/luispa/src/heekscad-master/interface/DoubleInput.cpp:31:36: error: cannot convert ‘const wxString’ to ‘const wxChar* {aka const wchar_t*}’ in return
  const wxChar* GetToolTip(){return _("Cancel operation");}
                                    ^
make[2]: *** [interface/CMakeFiles/heeksintf.dir/build.make:63: interface/CMakeFiles/heeksintf.dir/DoubleInput.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:86: interface/CMakeFiles/heeksintf.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

Any workaround for this?

Thank you very much in advance,
Luis Pablo

there is a build available for TW
https://software.opensuse.org/package/HeeksCAD
0.7 is available from the Education repo
and 1.0.1712 from a user repo home:bmwiedemann:cnc
your best bet is to add the home:bmwiedemann:cnc repo and just install it

zypper ar -f http://download.opensuse.org/repositories/home:/bmwiedemann:/cnc/openSUSE_Tumbleweed/home:bmwiedemann:cnc.repo
zypper in heekscad

First,
As @I_A has provided for you, the app is available pre-compiled and ready for installation.

FYI-
The error your compilation is throwing says that several methods in the build have been deprecated and no longer supported. This suggests that the GCC (or whatever compiler is being used is the problem, which is a not uncommon problem in Tumbleweed since bleeding edge tools are always being made available and are installed.

This suggests that an older gcc can be installed to compile this app until they update their code.

TSU

Thank you very much for your replies. I tried with the precompiled packages but I had no luck with them. Education version has a broken dependency and the other repo installs OK but I get this error when I try to launch it:

Fatal Error: Mismatch between the program and library build versions detected.
The library used 2.8 (no debug,Unicode,compiler with C++ ABI 1011,wx containers,compatible with 2.6),
and your program used 2.8 (no debug,Unicode,compiler with C++ ABI 1010,wx containers,compatible with 2.6).
Abortado (`core' generado)

I recently upgraded to Fedora 26 so I needed to recompile Heekscad again. Fedora 26 is as bleeding edge as Tumbleweed however I can compile Heekscad on Fedora despite software versions are almost the same. This is the compilation output on Fedora:

cmake -DCMAKE_INSTALL_PREFIX=/usr ..                                       
-- The C compiler identification is GNU 7.1.1
-- The CXX compiler identification is GNU 7.1.1
-- Check for working C compiler: /usr/lib64/ccache/cc
-- Check for working C compiler: /usr/lib64/ccache/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/lib64/ccache/c++
-- Check for working CXX compiler: /usr/lib64/ccache/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found wxWidgets: -pthread;;;-lwx_baseu-3.0;-lwx_gtk3u_core-3.0;-lwx_gtk3u_gl-3.0 (found version "3.0.3") 
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.3.7") 
-- Checking for module 'libarea'
--   Package 'libarea', required by 'virtual:world', not found
-- libarea_INCLUDE_DIRS:     /usr/include/area
-- libarea_LIBRARIES:     /usr/lib64/libarea.so
-- CMAKE_BUILD_TYPE: 
-- CMAKE_INSTALL_PREFIX: /usr
-- LIB_INSTALL_DIR: /usr/lib
-- Found PythonLibs: /usr/lib64/[libpython2.7.so](http://libpython2.7.so) (found version "2.7.13") 
-- Found OpenGL: /usr/lib64/libGL.so  
-- Found wxWidgets: -pthread;;;-lwx_baseu-3.0;-lwx_gtk3u_core-3.0;-lwx_gtk3u_gl-3.0;-lwx_gtk3u_aui-3.0 (found version "3.0.3") 
-- wxWidgets_LIBRARIES: -pthread;;;-lwx_baseu-3.0;-lwx_gtk3u_core-3.0;-lwx_gtk3u_gl-3.0;-lwx_gtk3u_aui-3.0
-- wxWidgets_ROOT_DIR: 
-- wxWidgets_INCLUDE_DIRS: /usr/lib64/wx/include/gtk3-unicode-3.0;/usr/include/wx-3.0
-- Configuring done
-- Generating done
-- Build files have been written to: /home/luispa/src/heekscad-master/build
[luispa@luispa build]$ make
Scanning dependencies of target heeksintf
  1%] Building CXX object interface/CMakeFiles/heeksintf.dir/DoubleInput.cpp.o
In file included from /home/luispa/src/heekscad-master/src/stdafx.h:263:0,
                 from /home/luispa/src/heekscad-master/interface/DoubleInput.cpp:5:
/home/luispa/src/heekscad-master/src/HeeksCAD.h:227:8: aviso: ‘template<class> class std::auto_ptr’ es obsoleto -Wdeprecated-declarations]
   std::auto_ptr<VectorFonts> m_pVectorFonts; // QCAD format fonts that have been loaded.
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /home/luispa/src/heekscad-master/src/stdafx.h:42,
                 from /home/luispa/src/heekscad-master/interface/DoubleInput.cpp:5:
/usr/include/c++/7/bits/unique_ptr.h:51:28: nota: se declara aquí
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /home/luispa/src/heekscad-master/src/stdafx.h:263:0,
                 from /home/luispa/src/heekscad-master/interface/DoubleInput.cpp:5:
/home/luispa/src/heekscad-master/src/HeeksCAD.h:236:8: aviso: ‘template<class> class std::auto_ptr’ es obsoleto -Wdeprecated-declarations]
   std::auto_ptr<CAutoSave> m_pAutoSave;
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /home/luispa/src/heekscad-master/src/stdafx.h:42,
                 from /home/luispa/src/heekscad-master/interface/DoubleInput.cpp:5:
/usr/include/c++/7/bits/unique_ptr.h:51:28: nota: se declara aquí
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /home/luispa/src/heekscad-master/src/stdafx.h:263:0,
                 from /home/luispa/src/heekscad-master/interface/DoubleInput.cpp:5:
/home/luispa/src/heekscad-master/src/HeeksCAD.h:426:8: aviso: ‘template<class> class std::auto_ptr’ es obsoleto -Wdeprecated-declarations]
   std::auto_ptr<VectorFonts> & GetAvailableFonts(const bool force_read = false);
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /home/luispa/src/heekscad-master/src/stdafx.h:42,
                 from /home/luispa/src/heekscad-master/interface/DoubleInput.cpp:5:
/usr/include/c++/7/bits/unique_ptr.h:51:28: nota: se declara aquí
   template<typename> class auto_ptr;
                            ^~~~~~~~
  2%] Building CXX object interface/CMakeFiles/heeksintf.dir/Geom.cpp.o

And this is the compilation output on Tumbleweed:

luispa@linux-3uiw:~/src/heekscad/build> cmake -DCMAKE_INSTALL_PREFIX=/usr ..
-- The C compiler identification is GNU 7.1.1
-- The CXX compiler identification is GNU 7.1.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found wxWidgets: -L/usr/lib64;-pthread;;;-lwx_baseu-3.0;-lwx_gtk2u_core-3.0;-lwx_gtk2u_gl-3.0 (found version "3.0.3") 
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
-- Checking for module 'libarea'
--   No package 'libarea' found
-- libarea_INCLUDE_DIRS:     /usr/include/area
-- libarea_LIBRARIES:     /usr/lib64/libarea.so
-- CMAKE_BUILD_TYPE: 
-- CMAKE_INSTALL_PREFIX: /usr
-- LIB_INSTALL_DIR: /usr/lib
-- Found PythonLibs: /usr/lib64/libpython2.7.so (found version "2.7.13") 
-- Found OpenGL: /usr/lib64/libGL.so  
-- Found wxWidgets: -L/usr/lib64;-pthread;;;-lwx_baseu-3.0;-lwx_gtk2u_core-3.0;-lwx_gtk2u_gl-3.0;-lwx_gtk2u_aui-3.0 (found version "3.0.3") 
-- wxWidgets_LIBRARIES: -L/usr/lib64;-pthread;;;-lwx_baseu-3.0;-lwx_gtk2u_core-3.0;-lwx_gtk2u_gl-3.0;-lwx_gtk2u_aui-3.0
-- wxWidgets_ROOT_DIR: 
-- wxWidgets_INCLUDE_DIRS: /usr/lib64/wx/include/gtk2-unicode-3.0;/usr/include/wx-3.0
-- Configuring done
-- Generating done
-- Build files have been written to: /home/luispa/src/heekscad/build
luispa@linux-3uiw:~/src/heekscad/build> make                                                                                                                                                              
Scanning dependencies of target heeksintf                                                                                                                                                                 
  1%] Building CXX object interface/CMakeFiles/heeksintf.dir/DoubleInput.cpp.o                                                                                                                           
In file included from /usr/include/wx-3.0/wx/intl.h:17:0,
                 from /usr/include/wx-3.0/wx/wx.h:22,
                 from /home/luispa/src/heekscad/src/stdafx.h:29,
                 from /home/luispa/src/heekscad/interface/DoubleInput.cpp:5:
/home/luispa/src/heekscad/src/../interface/HeeksObj.h: In member function ‘virtual const wxChar* HeeksObj::GetTypeString() const’:
/home/luispa/src/heekscad/src/../interface/HeeksObj.h:123:56: error: cannot convert ‘const wxString’ to ‘const wxChar* {aka const wchar_t*}’ in return
  virtual const wxChar* GetTypeString(void)const{return _("Unknown");}
...
make[2]: *** [interface/CMakeFiles/heeksintf.dir/build.make:63: interface/CMakeFiles/heeksintf.dir/DoubleInput.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:86: interface/CMakeFiles/heeksintf.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

I think there should be some way to configure gcc for dealing with deprecated expressions but I don’t know how to do it.

More than likely you have both gcc7 and gcc6 installed (I assume gcc6 will work for you)
You can test whether gcc6 is installed by running the following in a console

zypper se -i gcc

If you don’t know how to specify a gcc in your makefile,
I wrote an article how to create an update-alternatives for you gcc so you can switch your entire system between versions however you wish.
https://en.opensuse.org/User:Tsu2/gcc_update-alternatives

Following my instructions,
You can easily switch to gcc6 for this specific project and then if you wish switch back to gcc7 (or not).

BTW -
Tumbleweed is not comparable to Fedora 26 (current, released Jan 2017).
Tumbleweed is more comparable to Fedora Rawhide.

TSU

Thank you very much for your help.

The situation got a bit better by downgrading wx packages to 2.8 version but it still gives a compilation error:

 82%] Building CXX object src/CMakeFiles/heekscad.dir/SolidTools.cpp.o
In file included from /home/luispa/src/heekscad/src/stdafx.h:263:0,
                 from /home/luispa/src/heekscad/src/SolidTools.cpp:5:
/home/luispa/src/heekscad/src/HeeksCAD.h:227:8: aviso: ‘template<class> class std::auto_ptr’ es obsoleto -Wdeprecated-declarations]
   std::auto_ptr<VectorFonts> m_pVectorFonts; // QCAD format fonts that have been loaded.
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /home/luispa/src/heekscad/src/stdafx.h:42,
                 from /home/luispa/src/heekscad/src/SolidTools.cpp:5:
/usr/include/c++/7/bits/unique_ptr.h:51:28: nota: se declara aquí
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /home/luispa/src/heekscad/src/stdafx.h:263:0,
                 from /home/luispa/src/heekscad/src/SolidTools.cpp:5:
/home/luispa/src/heekscad/src/HeeksCAD.h:236:8: aviso: ‘template<class> class std::auto_ptr’ es obsoleto -Wdeprecated-declarations]
   std::auto_ptr<CAutoSave> m_pAutoSave;
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /home/luispa/src/heekscad/src/stdafx.h:42,
                 from /home/luispa/src/heekscad/src/SolidTools.cpp:5:
/usr/include/c++/7/bits/unique_ptr.h:51:28: nota: se declara aquí
   template<typename> class auto_ptr;
                            ^~~~~~~~
In file included from /home/luispa/src/heekscad/src/stdafx.h:263:0,
                 from /home/luispa/src/heekscad/src/SolidTools.cpp:5:
/home/luispa/src/heekscad/src/HeeksCAD.h:426:8: aviso: ‘template<class> class std::auto_ptr’ es obsoleto -Wdeprecated-declarations]
   std::auto_ptr<VectorFonts> & GetAvailableFonts(const bool force_read = false);
        ^~~~~~~~
In file included from /usr/include/c++/7/bits/locale_conv.h:41:0,
                 from /usr/include/c++/7/locale:43,
                 from /usr/include/c++/7/iomanip:43,
                 from /home/luispa/src/heekscad/src/stdafx.h:42,
                 from /home/luispa/src/heekscad/src/SolidTools.cpp:5:
/usr/include/c++/7/bits/unique_ptr.h:51:28: nota: se declara aquí
   template<typename> class auto_ptr;
                            ^~~~~~~~
/home/luispa/src/heekscad/src/SolidTools.cpp: En la función miembro ‘virtual void OutlineSolids::Run()’:
/home/luispa/src/heekscad/src/SolidTools.cpp:133:23: error: ‘UniteCurves’ no es un miembro de ‘CArea’
   CArea area = CArea::UniteCurves(OutlineSolids_curves);
                       ^~~~~~~~~~~
make[2]: *** [src/CMakeFiles/heekscad.dir/build.make:1791: src/CMakeFiles/heekscad.dir/SolidTools.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:251: src/CMakeFiles/heekscad.dir/all] Error 2
make: *** [Makefile:130: all] Error 2


Things are “82%” better than in the initial situation but I’m still unable to compile it. Any idea?

I’d like to solve this for making this post useful for fellows how may want to compile Heekscad in the future.

I’d say see the spec file from home:/bmwiedemann:
and see if you have the needed packages
https://build.opensuse.org/package/view_file/home:bmwiedemann:cnc/HeeksCAD/HeeksCAD.spec?expand=1
from that file I don’t think it’s a gcc issue but a wxWidgets-wxcontainer-devel
https://software.opensuse.org/package/wxWidgets-wxcontainer-devel (you’d need wxWidgets-wxcontainer which is not included in the OSS repo not sure why)
https://software.opensuse.org/package/wxWidgets-wxcontainer
maybe you’d be better off downloading the src.rpm and building with rpmbuild
http://download.opensuse.org/repositories/home:/bmwiedemann:/cnc/openSUSE_Tumbleweed/src/HeeksCAD-1.0.1712-4.73.src.rpm
download and install that rpm as an ordinary user (NOT ROOT)

rpm -i http://download.opensuse.org/repositories/home:/bmwiedemann:/cnc/openSUSE_Tumbleweed/src/HeeksCAD-1.0.1712-4.73.src.rpm

then go in ~/rpmbuild/SPEC and execute

rpmbuild -bb HeeksCAD.spec

the output rpm can be found in ~/rpmbuild/RPMS/x86_64
rpmbuild will report on missing dependencies that ./configure && make would ignore

I finally compiled Heekscad. Here’s a resume of my experience. I donwgraded wx packages to version 2.8 and installed additional packages.

Wx stuff installed:
libwx_baseu-2_8-0-compat-lib-wxcontainer
libwx_baseu-2_8-0-wxcontainer
libwx_baseu-suse-nostl3
libwx_baseu-suse3
libwx_baseu_net-2_8-0-compat-lib-wxcontainer
libwx_baseu_net-suse-nostl3
libwx_baseu_net-suse3
libwx_baseu_xml-2_8-0-compat-lib-wxcontainer
libwx_baseu_xml-2_8-0-wxcontainer
libwx_baseu_xml-suse-nostl3
libwx_baseu_xml-suse3
libwx_gtk2u_adv-2_8-0-compat-lib-wxcontainer
libwx_gtk2u_adv-suse-nostl3
libwx_gtk2u_adv-suse3
libwx_gtk2u_aui-2_8-0-compat-lib-wxcontainer
libwx_gtk2u_aui-2_8-0-wxcontainer
libwx_gtk2u_aui-suse3
libwx_gtk2u_core-2_8-0-compat-lib-wxcontainer
libwx_gtk2u_core-2_8-0-wxcontainer
libwx_gtk2u_core-suse-nostl3
libwx_gtk2u_core-suse3
libwx_gtk2u_fl-2_8-0-compat-lib-wxcontainer
libwx_gtk2u_fl-2_8-0-wxcontainer
libwx_gtk2u_gizmos-2_8-0-compat-lib-wxcontainer
libwx_gtk2u_gl-2_8-0-compat-lib-wxcontainer
libwx_gtk2u_gl-2_8-0-wxcontainer
libwx_gtk2u_gl-suse3
libwx_gtk2u_html-2_8-0-compat-lib-wxcontainer
libwx_gtk2u_html-suse-nostl3
libwx_gtk2u_html-suse3
libwx_gtk2u_media-suse3
libwx_gtk2u_mmedia-2_8-0-compat-lib-wxcontainer
libwx_gtk2u_ogl-2_8-0-compat-lib-wxcontainer
libwx_gtk2u_plot-2_8-0-compat-lib-wxcontainer
libwx_gtk2u_propgrid-suse3
libwx_gtk2u_qa-2_8-0-compat-lib-wxcontainer
libwx_gtk2u_qa-2_8-0-wxcontainer
libwx_gtk2u_qa-suse-nostl3
libwx_gtk2u_qa-suse3
libwx_gtk2u_richtext-2_8-0-compat-lib-wxcontainer
libwx_gtk2u_richtext-suse3
libwx_gtk2u_stc-2_8-0-compat-lib-wxcontainer
libwx_gtk2u_stc-suse-nostl3
libwx_gtk2u_stc-suse3
libwx_gtk2u_svg-2_8-0-compat-lib-wxcontainer
libwx_gtk2u_webview-suse3
libwx_gtk2u_xrc-2_8-0-compat-lib-wxcontainer
libwx_gtk2u_xrc-suse3
libwxlua
wxWidgets-docs
wxWidgets-wxcontainer-compat-lib-config
wxWidgets-wxcontainer-devel

And
libXmu-devel
boost_1_64-devel
libboost_python-py2_7-1_64_0-devel
libboost_python-py3-1_64_0-devel
oce
oce-DRAWEXE
oce-devel

libarea must be compiled from source
git clone https://github.com/Heeks/libarea.git

After compiling heekscad
Copy or symlink
/usr/lib/libheekstinyxml* to /usr/lib64/libheekstinyxml*
/usr/lib/libarea* to /usr/lib64/libarea*

After that I compiled Heekscnc because I need it for CAM work. Heekscad starts OK but… (there’s always a “but”)… when I load a big file (i.e. 9MB) Heekscad becomes incredibly unresponsive, it takes several minutes for responding to a simple click in the menu bar. It also happened in Manjaro KDE current version but it doesn’t happen on Fedora or Ubuntu precompiled packages.

The only warning when launching it from the console is this (right after opening a file):

** (heekscad:2950): WARNING **: Invalid borders specified for theme pixmap:
        /usr/share/themes/Breeze/gtk-2.0/../assets/line-h.png,
borders don't fit within the image

Any idea?

This is the application I use the most and if I can’t use it with OpenSUSE I’ll be forced to move to Fedora or Ubuntu or an Ubuntu derivative.

Thank you very much in advance

using old libraries on TW is a bad idea and will potentially break your system if you want a stable release (not rolling) you can use LEAP (42.3 just came out)
did you try building it with the spec file, as you can see from that file (link bellow) there are different dependencies for *suse and fedora and as far as I can tell Fedora 26 is alpha software not comparable to TW TW is more like Arch
https://build.opensuse.org/package/view_file/home:bmwiedemann:cnc/HeeksCAD/HeeksCAD.spec?expand=1
imo if you want a stable distro use LEAP
if you can deal with the latest and greatest (which might have a hiccup here and there) use TW
update TW to the current release by running

zypper dup --no-allow-vendor-change 

use the prebuild package of HeeksCAD or use the spec file to build it (does that loading error occur with the binary rpm?)

man rpmbuild

you can also build it with ./configure && make
but see the spec file for the needed dependencies

ps
the warning


** (heekscad:2950): WARNING **: Invalid borders specified for theme pixmap:
        /usr/share/themes/Breeze/gtk-2.0/../assets/line-h.png,
borders don't fit within the image

can be ignored Breeze is a plasma 5 theme ported to gtk2 and gtk3 it might have issues with them you can ignore that warning or use a different gtk theme (how to change the gtk2 theme depends on the desktop you use)

if the program builds with wxWidgets 2.8.0 but fails with 2.8.12 you should open a bug report at
http://bugzilla.opensuse.org/
you might get better help there
you should report that your app builds with 2.8.0 but fails with 2.8.12

Thank you very much for your help. I tried to build Heekscad using rpmbuild but something went wrong:

/home/luispa/rpmbuild/BUILD/HeeksCAD-1.0/src/DigitizedPoint.cpp: In static member function 'static bool DigitizedPoint::GetEllipse(const DigitizedPoint&, const DigitizedPoint&, const DigitizedPoint&, gp_Elips&)':
/home/luispa/rpmbuild/BUILD/HeeksCAD-1.0/src/DigitizedPoint.cpp:288:9: warning: variable 'x_axis' set but not used -Wunused-but-set-variable]
  gp_Dir x_axis = e.XAxis().Direction();
         ^~~~~~
/home/luispa/rpmbuild/BUILD/HeeksCAD-1.0/src/DigitizedPoint.cpp:289:9: warning: variable 'y_axis' set but not used -Wunused-but-set-variable]
  gp_Dir y_axis = e.YAxis().Direction();
         ^~~~~~
make[1]: *** [CMakeFiles/Makefile2:251: src/CMakeFiles/heekscad.dir/all] Error 2
make: *** [Makefile:152: all] Error 2
error: Estado de salida erróneo de /var/tmp/rpm-tmp.mwn5BG (%build)


Errores de construcción RPM:
    Estado de salida erróneo de /var/tmp/rpm-tmp.mwn5BG (%build)


I don’t know what’s wrong with the binary files from the previous compilation, everything is OK until I open a file. Could it be related to STL files?

I just realized Heekscad behaves exactly the same in several distros in this desktop computer, so I’m beginning to suspect it could be a hardware related issue. Maybe, the old Radeon 3000 integrated video chipset is not working as expected-

if that’s the case I’m pretty sure it’s a software bug upstream and we’re beating a dead horse
I think you’d get better support from the developer over at github
https://github.com/Heeks/heekscad/issues
I’m pretty sure you can login at github with a google account

I just looked at theri issue page and surprise surprise HeeksCAD has issues with newer Linux distro’s it appears their makefile is tailored for an older version of the C++ standard then gcc7 defaults to
the solution is to tweak the makefile for more info see this thread
https://github.com/Heeks/heekscad/issues/411

Thank you very much for reply. I installed Fedora in a different partition, same version as the one installed in my laptop. I compiled Heekscad in both laptop and desktop but it works OK on the laptop but hangs when zoom in/out on the desktop. The laptop has an i5 with Intel integrated graphics card and the desktop has am AMD FX 8300 with a Asus MB with integrated Radeon 3000 graphics card. I think the processor and/or the graphics card is the culprit.