← Back to team overview

kicad-developers team mailing list archive

Re: You missed a file in the zlib CMake script...


On 5/4/2012 12:38 PM, jean-pierre charras wrote:
Le 04/05/2012 16:29, Wayne Stambaugh a écrit :
On 5/4/2012 5:48 AM, Lorenzo Marcantonio wrote:
By the way, was it really necessary to embed the whole zlib? It
should be already provided with wx... (or is the wx one
statically linked?)

=== modified file 'zlib/CMakeLists.txt'
--- zlib/CMakeLists.txt 2012-05-03 18:37:56 +0000
+++ zlib/CMakeLists.txt 2012-05-04 09:47:20 +0000
@@ -1,4 +1,5 @@
+ adler32.c

It's not necessary since zlib is provided by wxWidgets on Windows when
libz cannot be found when configure is run. FindZLIB.cmake
was removed when we stopped including minizip with the project. I see
no advantage to including the zlib source files in the
project. Use FindZLIB and set the cmake include(ZLIB_INCLUDE) and add
ZLIB_LIBRARIES to the list of libraries to build the
executables that require zlib.

In fact, this is the zlib tree coming from wxWidgets, so include zlib in
Kicad should not be necessary.
However, zlib library is easy to find, but zlib headers are not in
wxWidgets standard include path,
and unless I missed something we cannot easily use them because they are
only in wxWidgets/src/zlib path.

It's all coming back to me now. wxWidgets uses it's internal zlib source to build wxZipStream and friends when it cannot be found on the system but they don't install the zlib header files as part of the install. Brian's window's builder should be able call mingw-get to install mingw32-zlib before building wxWidgets if we need to use zlib directly.

But if common_plotPDF_functions.cpp can use wxZipOutputStream, it fixes
this problem.

This should be a much cleaner solution than including the zlib sources.


Please note: FindZLIB.cmake.unused is still in kicad/CMakeModules).
However this FindZLIB.cmake was never able to find zlib headers when
they are in wxWidgets source tree.
This is the reason I removed minizip when wxZip* classes were available
in wxWidgets

FYI, I've been building wxWidgets as a DLLs on Windows for the last
few years without any issues. This includes both the 2.8 and
2.9 versions. The only thing that you need to do is make sure the
libraries are in your system PATH. By default, configure puts
them in /prefix/lib (where I set --prefix=/mingw on MinGW/MSYS) which
is not in the system PATH. Typically MinGW sets the system
PATH to /mingw/bin so you can either copy them from /mingw/lib to
/mingw/bin or I believe you can use the --libexecdir=/mingw/bin
to install the DLLs in the bin directory automatically. The only
disadvantage to using DLLs is that you have to remember to
include them in the Window's installer.