Comment 6 for bug 1752150

Revision history for this message
Jon Evans (craftyjon) wrote :

Okay, so Wayne just updated the manual build instructions but I noticed one issue, there appears to not be a package called mingw-w64-x86_64-ngspice in the registry. To get around this, I just built it from source using Alexpux's recipe.

I then discovered that the current OCE package contains a hard-coded path that causes the kicad build to fail (see: where the issue is fixed, but a fixed package doesn't seem to be available in the repo yet), so I also manually built that from source to work around the issue. In order to avoid the long path issue that Brian ran in to, I made my path as short as possible to the mingw packages repository ("/c/code/mwp")

Then I ran into this error while trying to build OCE:

g++.exe: error: CreateProcess: No such file or directory
g++.exe: error: CreateProcess: No such file or directory
make[2]: *** [adm/cmake/TKPCAF/CMakeFiles/TKPCAF.dir/build.make:64: adm/cmake/TKPCAF/CMakeFiles/TKPCAF.dir/__/__/__/src/PDataXtd/PDataXtd_Axis.cxx.obj] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [adm/cmake/TKPCAF/CMakeFiles/TKPCAF.dir/build.make:89: adm/cmake/TKPCAF/CMakeFiles/TKPCAF.dir/__/__/__/src/PDataXtd/PDataXtd_Constraint.cxx.obj] Error 1
g++.exe: error: CreateProcess: No such file or directory
make[2]: *** [adm/cmake/TKPCAF/CMakeFiles/TKPCAF.dir/build.make:114: adm/cmake/TKPCAF/CMakeFiles/TKPCAF.dir/__/__/__/src/PDataXtd/PDataXtd_Geometry.cxx.obj] Error 1
make[1]: *** [CMakeFiles/Makefile2:3391: adm/cmake/TKPCAF/CMakeFiles/TKPCAF.dir/all] Error 2

So, here's the steps I followed, after installing a fresh msys2 64-bit.
(assuming I have kicad already cloned into /c/code/kicad)

cd /c/code

pacman -S base-devel \
          git \
          mingw-w64-x86_64-cmake \
          mingw-w64-x86_64-doxygen \
          mingw-w64-x86_64-gcc \
          mingw-w64-x86_64-python2 \
          mingw-w64-x86_64-pkg-config \
          mingw-w64-x86_64-swig \
          mingw-w64-x86_64-boost \
          mingw-w64-x86_64-cairo \
          mingw-w64-x86_64-glew \
          mingw-w64-x86_64-curl \
          mingw-w64-x86_64-wxPython \
          mingw-w64-x86_64-wxWidgets \
          mingw-w64-x86_64-toolchain \

git clone mwp
cd mwp/mingw-w64-ngspice
makepkg-mingw -is

<wait a while>

cd ../mingw-w64-oce
makepkg-mingw -is

<wait a while>
<after the build, pacman will install the resulting package (it will prompt you)>
<it will also then start building 32-bit after it builds 64-bit, but I killed it here to save time, since we only need 64-bit library to build 64-bit kicad.>

cd ../../kicad
mkdir -p build/debug
cd build/debug
cmake -DCMAKE_BUILD_TYPE=Debug \
      -G "MSYS Makefiles" \
      -DCMAKE_PREFIX_PATH=/mingw64 \
      -DCMAKE_INSTALL_PREFIX=/mingw64 \
      -DDEFAULT_INSTALL_PATH=/mingw64 \
make -j4 install

<wait a while>

Now with oce and ngspice library issues fixed, KiCad successfully builds and installs to /mingw64/bin/

Morals of the story:
1) your disk path to sources for the mingw oce/ngspice libraries should be as short as possible
2) no one is regularly testing the KiCad documented instructions to make sure they still work :-/
3) KiCad depends on several libraries that don't have a working binary distribution at the moment (or at least one that I can find), so they'll have to be built from source.

If you are able to replicate my success using these hints, I will update the KiCad docs with some notes about these problems and how to work around them.