Discussion:
[hercules-390] Coming changes to the CMake build for Hercules
stephen.orso@outlook.com [hercules-390]
2018-03-01 14:21:46 UTC
Permalink
Ladies & Gentlemen:


The CMake build for Hercules-390 Version 4 (Hyperion, https://github.com/hercules-390/hyperion https://github.com/hercules-390/hyperion), will be updated in the near future. This update will include changes that may affect you if you currently build using CMake for UNIX-like systems. Specifically:


1. The change corrects make install such that shared libraries are installed in the installation lib directory, typically /usr/local/lib.


Before the change, shared libraries were incorrectly installed in the bin directory. Please manually remove Hercules shared libraries from your installation bin directory before running make install (or its CMake equivalent, cmake -P cmake_install.cmake) using the updated CMake.


2. The change includes the BZip2 and Zlib compression libraries in Hercules-390 by default. If BZip2 and/or Zlib are not installed on the target system, or if they are older than versions 1.0.6 and 1.2.11, respectively, copies of Bzip2 and/or Zlib will be built from repositories in the Hercules-390 project. The resulting Hercules-specific shared libraries have different names than the standard BZip2 and Zlib packages and will be included in the Hercules-390 installation directory. The name differences prevent these versions of BZip2 and Zlib from being used by other than the Hercules application. The following two CMake options suppress the inclusion of BZip2 and Zlib:


-DBZIP2=NO
-DZLIB=NO


Change NO to SYSTEM to force inclusion of BZip2 and Zlib from the target system's directories regardless of version.


The readme.md files for each package provide additional information about the Hercules-390 specific packages:


https://github.com/hercules-390/h390BZip/blob/master/README.md https://github.com/hercules-390/h390BZip/blob/master/README.md
https://github.com/hercules-390/h390Zlib/blob/master/README.md https://github.com/hercules-390/h390Zlib/blob/master/README.md


Currently, when building on UNIX-like systems, BZip2 and/or Zlib are included in Hercules-390 from the target system's system libraries. If they are not installed on the target system, their capabilities are excluded from Hercules-390.


3. The changed CMake build requires the git command line client version 1.8.5.1 or better. My CentOS 7.4 and Solaris 11.3 test systems required newer git clients.


The changes have been tested on multiple recent versions of Debian and Ubuntu, and on Fedora 27, Leap 42.3, CentOS 7.4, Solaris 11.3, and Windows Subsystem for Linux.


This CMake update includes support to build Hercules-390 on Windows clients. But please wait for documentation of the changes before you try it. The CMake build for Windows is quite different from the current Windows build procedure. Here is what you can expect for Windows:


1) All builds are done outside of the source directory.
2) BZip2, PCRE, and Zlib are built from Hercules-390 repositories when Hercules-390 Hyperion is built. There is no need to find and install binaries for these packages.
3) Command line builds are supported using NMake (included with some SDKs and with Microsoft Visual Studio 2015 Community Edition and newer), Visual Studio 2017 Build Tools, Ninja, and JOM (an NMake clone that supports parallel builds developed by Qt, https://wiki.qt.io/Jom).
4) The Visual Studio 2015 Community Edition Integrated Development Environment and newer may be used to build Hercules-390 Hyperion.
5) A target RUN_TESTS exists to allow running the complete runtest suite from within the Visual Studio IDE.
6) The default installation prefix for Windows is c:\Program Files (x86)\Hercules when a 32-bit Hercules-390 is built on a 64-bit system, and c:\Program Files\Hercules otherwise.
7) An installation script is created; this script requires an administrative command prompt if the installation prefix is a Program Files directory.
8) Support for precompiled headers is not used at this time.
9) The legacy script win32.mak is not required for command-line or IDE-based builds.


Best Regards,
Steve Orso
stephen.orso@outlook.com [hercules-390]
2018-03-08 20:57:00 UTC
Permalink
Ladies & Gentlemen:

The changes to the CMake build procedure described above for Hercules Hyperion have been committed.


See the original description at https://groups.yahoo.com/neo/groups/hercules-390/conversations/messages/83027 https://groups.yahoo.com/neo/groups/hercules-390/conversations/messages/83027.


Best Regards,
Steve Orso

Loading...