[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Building library for Windows


I have doubts about using cmake-3.6.2-win32-x86 on MinGW.  The fact that your Makefile throws you into a DOS shell confirms my suspicion that cmake-3.6.2-win32-x86 is intended for use from DOS.  It generates Makefiles that use DOS commands.  You should build cmake in MinGW from source and and use $ make install it (into /usr/bin/cmake.exe)

I built my cmake/MinGW/32 from source.  I had to edit an included MS/sdk file (sdkddkver.h) to ignore a pragma that killed the cmake bootstrap.  However I got cmake.exe built and I believe it’s working OK.

Cross-compiling is probably your best bet.  I’ve also read that cross compiling is much faster.

///////////////////

I discovered this afternoon (from comments in our buildserver scripts) that I have never succeeded in getting libssh to build on MinGW/32!  libssh is an optional part of Exiv2.  Exiv2 builds fine on MinGW/32 using the autotools without the optional libssh.

Exiv2 builds with CMake (and autotools) on Linux, MacOS-X, Cygwin and MSVC (2005,8,10,12,13 and 15).  I’ve given up trying to build Exiv2 with CMake on MinGW/32.  MinGW/32/CMake seems to be a toxic mix.

Robin
http://clanmills.com

> On 29 Sep 2016, at 19:50, Servesh Singh <ssingh@xxxxxxxxxxxx> wrote:
> 
> Hi Robin.
> Thanks for your help.
> I will try cross-compilation if MinGW does not work.
> 
> I am trying 32 bit only.
> 
> Version Details:
> 
> gcc is from perl installation:
> $  /c/Dwimperl/c/bin/gcc.exe --version
> gcc.exe (GCC) 4.4.7 20111023 (prerelease) [svn/rev.180339 - mingw-w64/oz]
> 
> 
> $ cmake.exe --version
> cmake version 3.6.2
> 
> 
> $ make --version
> GNU Make 3.81
> 
> Steps I tried.
> 1) MinGW was installed. Using msys environment for all the command execution.
> 2) compiled zlib and installed (zlib-1.2.8)
> 3) compiled openssl and installed (openssl-1.0.2h)
> 4) installed 32 bit version of cmake version 3.6.2
> 5) cmake-3.6.2-win32-x86.
> 6) downloaded source libssh-0.7.3.
> 7) created build directory inside libssh-0.7.3 source code and executed cmake-gui.exe ..
> 8) Did Configure and Generate using GUI tool.
> 10) Did cmake .. in directory build. It passed.
> 11) Now whenever I do 'make' inside build direcoty  I immediately get windows cmd shell shown as below
> 
> $ pwd
> /home/libssh-0.7.3/build
> 
> ssingh@IN-SSingh-LT /home/libssh-0.7.3/build
> $ make
> Microsoft Windows [Version 6.1.7601]
> Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
> 
> C:\MinGW\msys\1.0\home\libssh-0.7.3\build>
> 
> 
> 
> I found that Generated make files have SHELL set  to cmd.exe
> I am not sure what to do after step (8) i.e. after doing Configure and Generate of make files.
> I am not able to trigger build itself and you are at least able to build 2%.
> 
> 
> Regards,
> Servesh
> 
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> 
> From: Robin Mills [mailto:robinwmills@xxxxxxxxx] On Behalf Of Robin Mills
> Sent: 29 September 2016 17:57
> To: libssh@xxxxxxxxxx
> Subject: Re: Building library for Windows
> 
> Tilo is offering good advice.  Perhaps cross-compiling may be a simpler way to deal with this.  I don’t know anything about cross-compiling.
> 
> I couldn’t get this to build with MinGW/32.  The status is:
> 
> 1 I’m using libssh-0.7.3
> 2 cmake 3.6.2 generates make files
> 3 Compiler fails with both:
> a) gcc/g++ 4.8.1 (which is provided by msys/1.0)
> b) gcc/g++ 4.9.2 (which is bundled with Qt 5.6.1)
> 
> The compiler issue occurs at 2% - almost immediately.  "Conflicting types of ‘int8_t'"
> 
> Obviously, if it doesn’t compile, it will not link and cannot be installed.
> 
> Are you building 32 bit or 64 bit?  I am willing to put in more effort.  Let’s be certain we are using the same tools set (version of GCC, CMake and libssh).
> 
> Robin
> 
> On 29 Sep 2016, at 12:28, Servesh Singh <ssingh@xxxxxxxxxxxx> wrote:
> 
> Hi Robin/Tilo,
> Thanks for quick response and it helped me to compile zlib and openssl .
> I could generate CMakeCache.txt file but I don't  what to do next. Below is log of cmake and content of CMakeCache.txt generated from cmake-gui.exe.
> For me, make and make install are not working.
> 
> ssingh@IN-SSingh-LT /home/libssh-0.7.3/build
> $ cmake ..
> -- Could NOT find NSIS (missing:  NSIS_MAKE)
> -- Could NOT find GSSAPI (missing:  GSSAPI_LIBRARIES GSSAPI_INCLUDE_DIR)
> -- Could NOT find NaCl (missing:  NACL_LIBRARIES NACL_INCLUDE_DIRS)
> -- Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE)
> -- Threads_FOUND=TRUE
> -- threads library: Threads_FOUND=TRUE
> -- ********************************************
> -- ********** libssh build options : **********
> -- zlib support: ON
> -- libgcrypt support: OFF
> -- libnacl support: OFF
> -- SSH-1 support: OFF
> -- SFTP support: ON
> -- Server support : ON
> -- GSSAPI support : 0
> -- Pcap debugging support : ON
> -- With static library: ON
> -- Unit testing: OFF
> -- Client code Unit testing: OFF
> -- Public API documentation generation
> -- Benchmarks: OFF
> -- ********************************************
> -- Configuring done
> -- Generating done
> -- Build files have been written to: C:/MinGW/msys/1.0/home/libssh-0.7.3/build
> 
> ssingh@IN-SSingh-LT /home/libssh-0.7.3/build
> $
> 
> 
> 
> 
> # This is the CMakeCache file.
> # For build in directory: c:/MinGW/msys/1.0/home/libssh-0.7.3/build
> # It was generated by CMake: C:/MinGW/msys/1.0/cmake/bin/cmake.exe
> # You can edit this file to change values found and used by cmake.
> # If you do not want to change any of the values, simply exit the editor.
> # If you do want to change a value, simply edit, save, and exit the editor.
> # The syntax for the file is as follows:
> # KEY:TYPE=VALUE
> # KEY is the name of a variable in the cache.
> # TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
> # VALUE is the current value for the KEY.
> 
> ########################
> # EXTERNAL cache entries
> ########################
> 
> //-
> BIN_INSTALL_DIR:PATH=bin
> 
> //Path to a program.
> CMAKE_AR:FILEPATH=C:/Dwimperl/c/bin/ar.exe
> 
> //Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
> // CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
> CMAKE_BUILD_TYPE:STRING=Release
> 
> //Enable/Disable color output during build.
> CMAKE_COLOR_MAKEFILE:BOOL=ON
> 
> //CXX compiler
> CMAKE_CXX_COMPILER:FILEPATH=C:/Dwimperl/c/bin/g++.exe
> 
> //Flags used by the compiler during all build types.
> CMAKE_CXX_FLAGS:STRING=
> 
> //Flags used by the compiler during debug builds.
> CMAKE_CXX_FLAGS_DEBUG:STRING=-g
> 
> //Flags used by the compiler during release builds for minimum
> // size.
> CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
> 
> //Flags used by the compiler during release builds.
> CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
> 
> //Flags used by the compiler during release builds with debug info.
> CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
> 
> //Libraries linked by default with all C++ applications.
> CMAKE_CXX_STANDARD_LIBRARIES:STRING=-lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
> 
> //C compiler
> CMAKE_C_COMPILER:FILEPATH=C:/Dwimperl/c/bin/gcc.exe
> 
> //Flags used by the compiler during all build types.
> CMAKE_C_FLAGS:STRING=
> 
> //Flags used by the compiler during debug builds.
> CMAKE_C_FLAGS_DEBUG:STRING=-g
> 
> //Flags used by the compiler during release builds for minimum
> // size.
> CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
> 
> //Flags used by the compiler during release builds.
> CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
> 
> //Flags used by the compiler during release builds with debug info.
> CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
> 
> //Libraries linked by default with all C applications.
> CMAKE_C_STANDARD_LIBRARIES:STRING=-lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
> 
> //Flags used by the linker.
> CMAKE_EXE_LINKER_FLAGS:STRING=
> 
> //Flags used by the linker during debug builds.
> CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
> 
> //Flags used by the linker during release minsize builds.
> CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
> 
> //Flags used by the linker during release builds.
> CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
> 
> //Flags used by the linker during Release with Debug Info builds.
> CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
> 
> //Convert GNU import libraries to MS format (requires Visual Studio)
> CMAKE_GNUtoMS:BOOL=OFF
> 
> //-
> CMAKE_INSTALL_DIR:PATH=CMake
> 
> //Install path prefix, prepended onto install directories.
> CMAKE_INSTALL_PREFIX:PATH=C:/Program Files (x86)/libssh
> 
> //Path to a program.
> CMAKE_LINKER:FILEPATH=C:/Dwimperl/c/bin/ld.exe
> 
> //Path to a program.
> CMAKE_MAKE_PROGRAM:FILEPATH=C:/MinGW/bin/mingw32-make.exe
> 
> //Flags used by the linker during the creation of modules.
> CMAKE_MODULE_LINKER_FLAGS:STRING=
> 
> //Flags used by the linker during debug builds.
> CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
> 
> //Flags used by the linker during release minsize builds.
> CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
> 
> //Flags used by the linker during release builds.
> CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
> 
> //Flags used by the linker during Release with Debug Info builds.
> CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
> 
> //Path to a program.
> CMAKE_NM:FILEPATH=C:/Dwimperl/c/bin/nm.exe
> 
> //Path to a program.
> CMAKE_OBJCOPY:FILEPATH=C:/Dwimperl/c/bin/objcopy.exe
> 
> //Path to a program.
> CMAKE_OBJDUMP:FILEPATH=C:/Dwimperl/c/bin/objdump.exe
> 
> //Value Computed by CMake
> CMAKE_PROJECT_NAME:STATIC=libssh
> 
> //Path to a program.
> CMAKE_RANLIB:FILEPATH=C:/Dwimperl/c/bin/ranlib.exe
> 
> //RC compiler
> CMAKE_RC_COMPILER:FILEPATH=C:/Dwimperl/c/bin/windres.exe
> 
> //Flags for Windows Resource Compiler.
> CMAKE_RC_FLAGS:STRING=' '
> 
> //Path to a program.
> CMAKE_SH:FILEPATH=C:/MinGW/bin/sh.exe
> 
> //Flags used by the linker during the creation of dll's.
> CMAKE_SHARED_LINKER_FLAGS:STRING=
> 
> //Flags used by the linker during debug builds.
> CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
> 
> //Flags used by the linker during release minsize builds.
> CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
> 
> //Flags used by the linker during release builds.
> CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
> 
> //Flags used by the linker during Release with Debug Info builds.
> CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
> 
> //If set, runtime paths are not added when installing shared libraries,
> // but are added when building.
> CMAKE_SKIP_INSTALL_RPATH:BOOL=OFF
> 
> //If set, runtime paths are not added when using shared libraries.
> CMAKE_SKIP_RPATH:BOOL=OFF
> 
> //Flags used by the linker during the creation of static libraries.
> CMAKE_STATIC_LINKER_FLAGS:STRING=
> 
> //Flags used by the linker during debug builds.
> CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
> 
> //Flags used by the linker during release minsize builds.
> CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
> 
> //Flags used by the linker during release builds.
> CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
> 
> //Flags used by the linker during Release with Debug Info builds.
> CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
> 
> //Path to a program.
> CMAKE_STRIP:FILEPATH=C:/Dwimperl/c/bin/strip.exe
> 
> //If this value is on, makefiles will be generated without the
> // .SILENT directive, and all commands will be echoed to the console
> // during the make.  This is useful for debugging only. With Visual
> // Studio IDE projects all commands are done without /nologo.
> CMAKE_VERBOSE_MAKEFILE:BOOL=OFF
> 
> //Graphviz Dot tool for using Doxygen
> DOXYGEN_DOT_EXECUTABLE:FILEPATH=DOXYGEN_DOT_EXECUTABLE-NOTFOUND
> 
> //Doxygen documentation generation tool (http://www.doxygen.org)
> DOXYGEN_EXECUTABLE:FILEPATH=DOXYGEN_EXECUTABLE-NOTFOUND
> 
> //Path to a file.
> GSSAPI_INCLUDE_DIR:PATH=GSSAPI_INCLUDE_DIR-NOTFOUND
> 
> //Path to a file.
> GSSAPI_ROOT_DIR:PATH=GSSAPI_ROOT_DIR-NOTFOUND
> 
> //-
> HTML_INSTALL_DIR:PATH=doc/HTML
> 
> //-
> ICON_INSTALL_DIR:PATH=icons
> 
> //-
> INCLUDE_INSTALL_DIR:PATH=include
> 
> //Path to a library.
> LIB_EAY:FILEPATH=C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a
> 
> //-
> LIB_INSTALL_DIR:PATH=lib
> 
> //-
> LOCALE_INSTALL_DIR:PATH=lang
> 
> //Path to a file.
> NACL_INCLUDE_DIR:PATH=NACL_INCLUDE_DIR-NOTFOUND
> 
> //Path to a library.
> NACL_LIBRARY:FILEPATH=NACL_LIBRARY-NOTFOUND
> 
> //Path to a program.
> NSIS_MAKE:FILEPATH=NSIS_MAKE-NOTFOUND
> 
> //Path to a file.
> NSIS_ROOT_PATH:PATH=NSIS_ROOT_PATH-NOTFOUND
> 
> //Path to a file.
> OPENSSL_INCLUDE_DIR:PATH=C:/MinGW/msys/1.0/local/include
> 
> //-
> PLUGIN_INSTALL_DIR:PATH=plugins
> 
> //-
> SBIN_INSTALL_DIR:PATH=sbin
> 
> //-
> SOUND_INSTALL_DIR:PATH=soudns
> 
> //Path to a library.
> SSL_EAY:FILEPATH=C:/MinGW/msys/1.0/local/lib/libssl.dll.a
> 
> //Build benchmarks tools
> WITH_BENCHMARKS:BOOL=OFF
> 
> //Build with client tests; requires a running sshd
> WITH_CLIENT_TESTING:BOOL=OFF
> 
> //Build with calltrace debug output
> WITH_DEBUG_CALLTRACE:BOOL=ON
> 
> //Build with cryto debug output
> WITH_DEBUG_CRYPTO:BOOL=OFF
> 
> //Build examples
> WITH_EXAMPLES:BOOL=ON
> 
> //Compile against libgcrypt
> WITH_GCRYPT:BOOL=OFF
> 
> //Build with GSSAPI support
> WITH_GSSAPI:BOOL=ON
> 
> //Compile doxygen internal documentation
> WITH_INTERNAL_DOC:BOOL=OFF
> 
> //Build with libnacl (curve25519
> WITH_NACL:BOOL=ON
> 
> //Compile with Pcap generation support
> WITH_PCAP:BOOL=ON
> 
> //Build with SSH server support
> WITH_SERVER:BOOL=ON
> 
> //Build with SFTP support
> WITH_SFTP:BOOL=ON
> 
> //Build with SSH1 support
> WITH_SSH1:BOOL=OFF
> 
> //Build with a static library
> WITH_STATIC_LIB:BOOL=ON
> 
> //Build with unit tests
> WITH_TESTING:BOOL=OFF
> 
> //Build with ZLIB support
> WITH_ZLIB:BOOL=ON
> 
> //Path to a file.
> ZLIB_INCLUDE_DIR:PATH=C:/MinGW/msys/1.0/mingw/include
> 
> //Path to a library.
> ZLIB_LIBRARY_DEBUG:FILEPATH=ZLIB_LIBRARY_DEBUG-NOTFOUND
> 
> //Path to a library.
> ZLIB_LIBRARY_RELEASE:FILEPATH=C:/MinGW/msys/1.0/mingw/lib/libz.a
> 
> //Value Computed by CMake
> libssh-examples_BINARY_DIR:STATIC=C:/MinGW/msys/1.0/home/libssh-0.7.3/build/examples
> 
> //Value Computed by CMake
> libssh-examples_SOURCE_DIR:STATIC=C:/MinGW/msys/1.0/home/libssh-0.7.3/examples
> 
> //Value Computed by CMake
> libssh-headers-x_BINARY_DIR:STATIC=C:/MinGW/msys/1.0/home/libssh-0.7.3/build/include
> 
> //Value Computed by CMake
> libssh-headers-x_SOURCE_DIR:STATIC=C:/MinGW/msys/1.0/home/libssh-0.7.3/include
> 
> //Value Computed by CMake
> libssh-headers_BINARY_DIR:STATIC=C:/MinGW/msys/1.0/home/libssh-0.7.3/build/include/libssh
> 
> //Value Computed by CMake
> libssh-headers_SOURCE_DIR:STATIC=C:/MinGW/msys/1.0/home/libssh-0.7.3/include/libssh
> 
> //Value Computed by CMake
> libssh-library_BINARY_DIR:STATIC=C:/MinGW/msys/1.0/home/libssh-0.7.3/build/src
> 
> //Value Computed by CMake
> libssh-library_SOURCE_DIR:STATIC=C:/MinGW/msys/1.0/home/libssh-0.7.3/src
> 
> //Value Computed by CMake
> libssh-threads_BINARY_DIR:STATIC=C:/MinGW/msys/1.0/home/libssh-0.7.3/build/src/threads
> 
> //Value Computed by CMake
> libssh-threads_SOURCE_DIR:STATIC=C:/MinGW/msys/1.0/home/libssh-0.7.3/src/threads
> 
> //Value Computed by CMake
> libssh_BINARY_DIR:STATIC=C:/MinGW/msys/1.0/home/libssh-0.7.3/build
> 
> //Value Computed by CMake
> libssh_SOURCE_DIR:STATIC=C:/MinGW/msys/1.0/home/libssh-0.7.3
> 
> //Dependencies for the target
> ssh_shared_LIB_DEPENDS:STATIC=general;ws2_32;general;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;general;C:/MinGW/msys/1.0/mingw/lib/libz.a;general;ws2_32;general;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;general;C:/MinGW/msys/1.0/mingw/lib/libz.a;general;ws2_32;general;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;general;C:/MinGW/msys/1.0/mingw/lib/libz.a;general;ws2_32;general;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;general;C:/MinGW/msys/1.0/mingw/lib/libz.a;general;ws2_32;general;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;general;C:/MinGW/msys/1.0/mingw/lib/libz.a;general;ws2_32;general;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;general;C:/MinGW/msys/1.0/mingw/lib/libz.a;general;ws2_32;general;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;general;C:/MinGW/msys/1.0/mingw/lib/libz.a;general;ws2_32;general;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;general;C:/MinGW/msys/1.0/mingw/lib/libz.a;general;ws2_32;general;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;general;C:/MinGW/msys/1.0/mingw/lib/libz.a;
> 
> //Dependencies for target
> ssh_static_LIB_DEPENDS:STATIC=
> 
> 
> ########################
> # INTERNAL cache entries
> ########################
> 
> //ADVANCED property for variable: CMAKE_AR
> CMAKE_AR-ADVANCED:INTERNAL=1
> //This is the directory where this CMakeCache.txt was created
> CMAKE_CACHEFILE_DIR:INTERNAL=c:/MinGW/msys/1.0/home/libssh-0.7.3/build
> //Major version of cmake used to create the current loaded cache
> CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
> //Minor version of cmake used to create the current loaded cache
> CMAKE_CACHE_MINOR_VERSION:INTERNAL=6
> //Patch version of cmake used to create the current loaded cache
> CMAKE_CACHE_PATCH_VERSION:INTERNAL=1
> //ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
> CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
> //Path to CMake executable.
> CMAKE_COMMAND:INTERNAL=C:/MinGW/msys/1.0/cmake/bin/cmake.exe
> //Path to cpack program executable.
> CMAKE_CPACK_COMMAND:INTERNAL=C:/MinGW/msys/1.0/cmake/bin/cpack.exe
> //Path to ctest program executable.
> CMAKE_CTEST_COMMAND:INTERNAL=C:/MinGW/msys/1.0/cmake/bin/ctest.exe
> //ADVANCED property for variable: CMAKE_CXX_COMPILER
> CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_CXX_FLAGS
> CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
> CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
> CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
> CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
> CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES
> CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_C_COMPILER
> CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_C_FLAGS
> CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
> CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
> CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
> CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
> CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES
> CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1
> //Path to cache edit program executable.
> CMAKE_EDIT_COMMAND:INTERNAL=C:/MinGW/msys/1.0/cmake/bin/cmake-gui.exe
> //Executable file format
> CMAKE_EXECUTABLE_FORMAT:INTERNAL=Unknown
> //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
> CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
> CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
> CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
> CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
> CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
> //Name of external makefile project generator.
> CMAKE_EXTRA_GENERATOR:INTERNAL=
> //Name of generator.
> CMAKE_GENERATOR:INTERNAL=MinGW Makefiles
> //Name of generator platform.
> CMAKE_GENERATOR_PLATFORM:INTERNAL=
> //Name of generator toolset.
> CMAKE_GENERATOR_TOOLSET:INTERNAL=
> //Have include pthread.h
> CMAKE_HAVE_PTHREAD_H:INTERNAL=
> //Source directory with the top level CMakeLists.txt file for this
> // project
> CMAKE_HOME_DIRECTORY:INTERNAL=C:/MinGW/msys/1.0/home/libssh-0.7.3
> //ADVANCED property for variable: CMAKE_LINKER
> CMAKE_LINKER-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
> CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
> CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
> CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
> CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
> CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_NM
> CMAKE_NM-ADVANCED:INTERNAL=1
> //number of local generators
> CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=7
> //ADVANCED property for variable: CMAKE_OBJCOPY
> CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_OBJDUMP
> CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_RANLIB
> CMAKE_RANLIB-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_RC_COMPILER
> CMAKE_RC_COMPILER-ADVANCED:INTERNAL=1
> CMAKE_RC_COMPILER_WORKS:INTERNAL=1
> //ADVANCED property for variable: CMAKE_RC_FLAGS
> CMAKE_RC_FLAGS-ADVANCED:INTERNAL=1
> //Path to CMake installation.
> CMAKE_ROOT:INTERNAL=C:/MinGW/msys/1.0/cmake/share/cmake-3.6
> //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
> CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
> CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
> CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
> CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
> CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
> CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_SKIP_RPATH
> CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
> CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
> CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
> CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
> CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
> CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_STRIP
> CMAKE_STRIP-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
> CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: DOXYGEN_DOT_EXECUTABLE
> DOXYGEN_DOT_EXECUTABLE-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: DOXYGEN_EXECUTABLE
> DOXYGEN_EXECUTABLE-ADVANCED:INTERNAL=1
> //Details about finding OpenSSL
> FIND_PACKAGE_MESSAGE_DETAILS_OpenSSL:INTERNAL=[C:/MinGW/msys/1.0/local/lib/libssl.dll.a;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a][C:/MinGW/msys/1.0/local/include][v1.0.2h()]
> //Details about finding Threads
> FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()]
> //Details about finding ZLIB
> FIND_PACKAGE_MESSAGE_DETAILS_ZLIB:INTERNAL=[C:/MinGW/msys/1.0/mingw/lib/libz.a][C:/MinGW/msys/1.0/mingw/include][v1.2.8()]
> //ADVANCED property for variable: GSSAPI_ROOT_DIR
> GSSAPI_ROOT_DIR-ADVANCED:INTERNAL=1
> //Have include argp.h
> HAVE_ARGP_H:INTERNAL=
> //Have include arpa/inet.h
> HAVE_ARPA_INET_H:INTERNAL=
> //Have include byteswap.h
> HAVE_BYTESWAP_H:INTERNAL=
> //Test HAVE_COMPILER__FUNCTION__
> HAVE_COMPILER__FUNCTION__:INTERNAL=1
> //Test HAVE_COMPILER__FUNC__
> HAVE_COMPILER__FUNC__:INTERNAL=1
> //Test HAVE_GCC_NARG_MACRO
> HAVE_GCC_NARG_MACRO:INTERNAL=1
> //Test HAVE_GCC_THREAD_LOCAL_STORAGE
> HAVE_GCC_THREAD_LOCAL_STORAGE:INTERNAL=1
> //Test HAVE_GCC_VOLATILE_MEMORY_PROTECTION
> HAVE_GCC_VOLATILE_MEMORY_PROTECTION:INTERNAL=1
> //Have symbol getaddrinfo
> HAVE_GETADDRINFO:INTERNAL=1
> //Have symbol htonll
> HAVE_HTONLL:INTERNAL=
> //Have function isblank
> HAVE_ISBLANK:INTERNAL=1
> //Have include libutil.h
> HAVE_LIBUTIL_H:INTERNAL=
> //Test HAVE_MSC_THREAD_LOCAL_STORAGE
> HAVE_MSC_THREAD_LOCAL_STORAGE:INTERNAL=1
> //Have symbol ntohll
> HAVE_NTOHLL:INTERNAL=
> //Have include openssl/aes.h
> HAVE_OPENSSL_AES_H:INTERNAL=1
> //Have include openssl/blowfish.h
> HAVE_OPENSSL_BLOWFISH_H:INTERNAL=1
> //Have include openssl/des.h
> HAVE_OPENSSL_DES_H:INTERNAL=1
> //Have include openssl/ecdh.h
> HAVE_OPENSSL_ECDH_H:INTERNAL=1
> //Have include openssl/ecdsa.h
> HAVE_OPENSSL_ECDSA_H:INTERNAL=1
> //Have include openssl/ec.h
> HAVE_OPENSSL_EC_H:INTERNAL=1
> //Have include pty.h
> HAVE_PTY_H:INTERNAL=
> //Have symbol select
> HAVE_SELECT:INTERNAL=1
> //Have symbol snprintf
> HAVE_SNPRINTF:INTERNAL=1
> //Have function strncpy
> HAVE_STRNCPY:INTERNAL=1
> //Have include sys/param.h
> HAVE_SYS_PARAM_H:INTERNAL=1
> //Have include sys/time.h
> HAVE_SYS_TIME_H:INTERNAL=1
> //Have include termios.h
> HAVE_TERMIOS_H:INTERNAL=
> //Have include unistd.h
> HAVE_UNISTD_H:INTERNAL=1
> //Have include util.h
> HAVE_UTIL_H:INTERNAL=
> //Have include utmp.h
> HAVE_UTMP_H:INTERNAL=
> //Have symbol vsnprintf
> HAVE_VSNPRINTF:INTERNAL=1
> //Have include winsock2.h;ws2tcpip.h
> HAVE_WS2TCPIP_H:INTERNAL=1
> //Have include winsock2.h;ws2tcpip.h;wspiapi.h
> HAVE_WSPIAPI_H:INTERNAL=1
> //Have function _snprintf
> HAVE__SNPRINTF:INTERNAL=1
> //Have function _snprintf_s
> HAVE__SNPRINTF_S:INTERNAL=1
> //Have function _strtoui64
> HAVE__STRTOUI64:INTERNAL=1
> //Have function _vsnprintf
> HAVE__VSNPRINTF:INTERNAL=1
> //Have function _vsnprintf_s
> HAVE__VSNPRINTF_S:INTERNAL=1
> //libssh link libraries
> LIBSSH_LINK_LIBRARIES:INTERNAL=ws2_32;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;C:/MinGW/msys/1.0/mingw/lib/libz.a;ws2_32;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;C:/MinGW/msys/1.0/mingw/lib/libz.a;ws2_32;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;C:/MinGW/msys/1.0/mingw/lib/libz.a;ws2_32;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;C:/MinGW/msys/1.0/mingw/lib/libz.a;ws2_32;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;C:/MinGW/msys/1.0/mingw/lib/libz.a;ws2_32;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;C:/MinGW/msys/1.0/mingw/lib/libz.a;ws2_32;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;C:/MinGW/msys/1.0/mingw/lib/libz.a;ws2_32;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;C:/MinGW/msys/1.0/mingw/lib/libz.a;ws2_32;C:/MinGW/msys/1.0/local/lib/libcrypto.dll.a;C:/MinGW/msys/1.0/mingw/lib/libz.a
> //libssh public include directories
> LIBSSH_PUBLIC_INCLUDE_DIRS:INTERNAL=C:/MinGW/msys/1.0/home/libssh-0.7.3/include
> //libssh required system libraries
> LIBSSH_REQUIRED_LIBRARIES:INTERNAL=
> //libssh shared library
> LIBSSH_SHARED_LIBRARY:INTERNAL=ssh_shared
> //libssh static library
> LIBSSH_STATIC_LIBRARY:INTERNAL=ssh_static
> //libssh threads link libraries
> LIBSSH_THREADS_LINK_LIBRARIES:INTERNAL=ssh_shared
> //libssh public include directories
> LIBSSH_THREADS_PUBLIC_INCLUDE_DIRS:INTERNAL=C:/MinGW/msys/1.0/home/libssh-0.7.3/include;C:/MinGW/msys/1.0/home/libssh-0.7.3/src/threads;C:/MinGW/msys/1.0/home/libssh-0.7.3
> //libssh threads shared library
> LIBSSH_THREADS_SHARED_LIBRARY:INTERNAL=ssh_threads_shared
> //libssh threads static library
> LIBSSH_THREADS_STATIC_LIBRARY:INTERNAL=ssh_threads_static
> //ADVANCED property for variable: LIB_EAY
> LIB_EAY-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: NSIS_MAKE
> NSIS_MAKE-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: NSIS_ROOT_PATH
> NSIS_ROOT_PATH-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: OPENSSL_INCLUDE_DIR
> OPENSSL_INCLUDE_DIR-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: SSL_EAY
> SSL_EAY-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: ZLIB_INCLUDE_DIR
> ZLIB_INCLUDE_DIR-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: ZLIB_LIBRARY_DEBUG
> ZLIB_LIBRARY_DEBUG-ADVANCED:INTERNAL=1
> //ADVANCED property for variable: ZLIB_LIBRARY_RELEASE
> ZLIB_LIBRARY_RELEASE-ADVANCED:INTERNAL=1
> 
> 
> From: Robin Mills [mailto:robinwmills@xxxxxxxxx] On Behalf Of Robin Mills
> Sent: 29 September 2016 13:03
> To: libssh@xxxxxxxxxx
> Subject: Re: Building library for Windows
> 
> I'm the lead engineer for Exiv2 which is built daily on 16 platform including MinGW/32.  Here are our build notes:  http://clanmills.com/exiv2/mingw.shtml
> 
> I don't recall building libssh for MinGW, however I don't recall any special tricks required to build it for Linux or Cygwin.
> 
> Do you want a 32 or 64 bit static build?
> 
> It's 8:30 in England.  I'll look at this after breakfast and can talk on Skype if you wish 'clanmills'.
> 
> Robin
> http://clanmills.com
> Not sent from my iPhone
> 
> On 29 Sep 2016, at 08:19, Servesh Singh <ssingh@xxxxxxxxxxxx> wrote:
>  
> Hi Team,
> I searched everywhere but could not find complete help for building static library for Windows platform using MinGW.
> Please guide me if anyone has done this.
> Thanks in advance,
> 
> Regards,
> Servesh
> 


References:
Building library for WindowsServesh Singh <ssingh@xxxxxxxxxxxx>
Re: Building library for WindowsRobin Mills <robin@xxxxxxxxxxxxx>
RE: Building library for WindowsServesh Singh <ssingh@xxxxxxxxxxxx>
Re: Building library for WindowsRobin Mills <robin@xxxxxxxxxxxxx>
RE: Building library for WindowsServesh Singh <ssingh@xxxxxxxxxxxx>
Archive administrator: postmaster@lists.cynapses.org