Yes, it is indeed for eemodern.
Done (not only to ensure the other thread keeps clean but also to increase visibility of this call for testers.)
Was this specific to the features mentioned in the other thread? Might want to mention them here.
I would assume this is the mailing list discussion referenced by @eelik https://lists.launchpad.net/kicad-developers/msg40317.html
@hermit, no the features in the other thread are in master (and therefore in the nightlies). The eemodern branch is still too incomplete (and buggy) for the nightlies.
Hi @JeffYoung,
Any hints for solving this make error? Thanks!
[ 98%] Building CXX object qa/utils/kicad2step/CMakeFiles/qa_kicad2step.dir/pcb/test_base.cpp.o
/home/pedro/kicad/kicad-source-mirror/qa/utils/kicad2step/pcb/test_base.cpp: In member function ‘void PcbBase::SexprTo2DPosAndRot::test_method()’:
/home/pedro/kicad/kicad-source-mirror/qa/utils/kicad2step/pcb/test_base.cpp:112:5: error: could not convert ‘{{"(at 0 0 0)", true, {0.0, 0.0}, 0.0}, {"(at 3.14 4.12 90.4)", true, {3.1400000000000001e+0, 4.1200000000000001e+0}, DegToRad(9.0400000000000006e+1)}, {"(at 3.14)", false, (), ()}, {"(att 3.14 4.12 90.4)", false, (), ()}}’ from ‘’ to ‘const std::vectorPcbBase::TEST_2D_POS_ROT’
};
^
make[2]: *** [qa/utils/kicad2step/CMakeFiles/qa_kicad2step.dir/pcb/test_base.cpp.o] Error 1
make[1]: *** [qa/utils/kicad2step/CMakeFiles/qa_kicad2step.dir/all] Error 2
make: *** [all] Error 2
@pedro, that’s just a qa test. The easiest thing is probably just to exclude it from you build.
(I had trouble with it a while back, but it’s working for me now. Odd.)
How do I exclude qa from the build?
What platform, and what dev environment?
(I’m using CLion and you can click on the folder and say “Exclude from Build”. However, IIRC I might have had to edit one of the CMakeFiles. I’m no expert at that so I’m tagging some more devs for help…)
Sorry, kubuntu 14.04.
I’m making a try right now. Just deleted the paragraph with qa_kicad2step from the makefile…
Edit: command line cmake, make and make install
I would be interested in helping use test,
For others, there is a functional docker image with build dependencies pre-installed (based on Ubuntu 16.04) that I posted, this will allow you to build the software in a virtual environment via a docker container. If other base images are needed, simply post a request.
I quote myself: this solution didn’t work.
Comment out line 951 from CMakeLists.txt
add_subdirectory( qa )
Then re-run cmake.
So what’s different in the eemodern branch? Mostly the eeschema toolset. It’s now based on a selection model. There are some new “features” that fall out of this such as stingy vs greedy selections (like in PCBNew), clipboard-based cut/copy/paste (so you can paste between documents or even between KiCad and a text editor).
After disabling qa tests this way, and a small patch, the build completes on branch eemodern
using the kicad-builder
docker image.
GIT Source: https://github.com/kicad/kicad-source-mirror
Running Environment: Ubuntu 16.0.4.6 LTS
Build Environment: docker image pcbops/kicad-builder:latest
based on Ubuntu 16.04
CMakeList: Comment Out Line 951
Build Command: mkdir build && cd build && cmake .. && make -j8 && make install
/workspace/eeschema/tools/sch_selection_tool.cpp: In member function 'int SCH_SELECTION_TOOL::SelectConnection(const TOOL_EVENT&)':
/workspace/eeschema/tools/sch_selection_tool.cpp:516:90: error: taking address of temporary array
RequestSelection( (KICAD_T[]) { SCH_LINE_LOCATE_WIRE_T, SCH_LINE_LOCATE_BUS_T, EOT } );
^
eeschema/CMakeFiles/eeschema_kiface.dir/build.make:4829: recipe for target 'eeschema/CMakeFiles/eeschema_kiface.dir/tools/sch_selection_tool.cpp.o' failed
make[2]: *** [eeschema/CMakeFiles/eeschema_kiface.dir/tools/sch_selection_tool.cpp.o] Error 1
CMakeFiles/Makefile2:1129: recipe for target 'eeschema/CMakeFiles/eeschema_kiface.dir/all' failed
make[1]: *** [eeschema/CMakeFiles/eeschema_kiface.dir/all] Error 2
This temporary array is destroyed as soon as it is created so it fails the build
A simple patch lets the build complete (Move argument to temporary variable)
The complete patch is attached eemodern_patch.patch (1.0 KB)
Result:
eeschema runs and there is a modern mode setting under preferences . Cannot take screenshot of this as eeschema capture keyboard input so hard that print screen does not get propogated to the. Version Info Below
Application: eeschema
Version: 5.1.0-unknown, release build
Libraries:
wxWidgets 3.0.2
libcurl/7.47.0 OpenSSL/1.0.2g zlib/1.2.8 libidn/1.32 librtmp/2.3
Platform: Linux 4.4.0-142-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8) GTK+ 2.24
Boost: 1.58.0
OpenCASCADE Community Edition: 6.8.0
Curl: 7.47.0
Compiler: GCC 5.4.0 with C++ ABI 1009
Build settings:
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=OFF
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=OFF
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON
Thanks for that patch. There are a bunch more of those so I’ll fix them.
(Odd that it works fine on OSX…)
It’s compiler specific , since this behavior is actually a c extension in c++ and not actually c++ and thus up to implementation on the lifetime duration of the specified variable. GCC was picky about only one of them,but perhaps the others will show up as crashes. On some, stricter, c++ compilers without extensions it is liable to fail alltogether
New bits pushed to eemodern.
Thanks Seth,
Should I also change this option to OFF? Line 105.
option( KICAD_BUILD_QA_TESTS
“Build software Quality assurance unit tests (default ON)”
OFF )
Ha! I didn’t know about that one. That is set during the CMAKE phase and doesn’t require modifying the source code so represents a much better option.
Thanks for the tip!