view cmake/internal/sysconfig.hpp.in @ 790:ca16ca53c347

windows: many fixes under MinGW-w64
author David Demelier <markand@malikania.fr>
date Fri, 09 Nov 2018 13:45:00 +0100
parents 8c44bbcbbab9
children 06cc2f95f479
line wrap: on
line source

/*
 * sysconfig.hpp -- configuration for irccd
 *
 * Copyright (c) 2013-2018 David Demelier <markand@malikania.fr>
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#ifndef IRCCD_SYSCONFIG_HPP
#define IRCCD_SYSCONFIG_HPP

/*
 * Fix annoying "Please include winsock2.h before windows.h"
 */
#if defined(_WIN32)
#	if !defined(WIN32_MEAN_AND_LEAN)
#		define WIN32_MEAN_AND_LEAN
#	endif
#	if !defined(NOMINMAX)
#		define NOMINMAX
#	endif

#	include <winsock2.h>
#	include <windows.h>
#endif

namespace irccd {

/*
 * Auto generated from CMake.
 * ------------------------------------------------------------------
 */

#define IRCCD_VERSION_MAJOR             @IRCCD_VERSION_MAJOR@
#define IRCCD_VERSION_MINOR             @IRCCD_VERSION_MINOR@
#define IRCCD_VERSION_PATCH             @IRCCD_VERSION_PATCH@
#define IRCCD_VERSION_SHLIB             @IRCCD_VERSION_SHLIB@
#define IRCCD_VERSION                   "@IRCCD_VERSION@"

/*
 * User definable options.
 * ------------------------------------------------------------------
 */

#define IRCCD_INSTALL_PREFIX            "@CMAKE_INSTALL_PREFIX@"
#define IRCCD_INSTALL_LOCALSTATEDIR     "@CMAKE_INSTALL_LOCALSTATEDIR@"
#define IRCCD_INSTALL_DATADIR           "@CMAKE_INSTALL_DATADIR@"
#define IRCCD_INSTALL_BINDIR            "@CMAKE_INSTALL_BINDIR@"
#define IRCCD_INSTALL_LIBDIR            "@CMAKE_INSTALL_LIBDIR@"
#define IRCCD_INSTALL_SYSCONFDIR        "@CMAKE_INSTALL_SYSCONFDIR@"

#cmakedefine IRCCD_HAVE_JS
#cmakedefine IRCCD_HAVE_SSL
#cmakedefine IRCCD_HAVE_LIBEDIT

/*
 * Platform checks.
 * ------------------------------------------------------------------
 */

#cmakedefine IRCCD_HAVE_POPEN
#cmakedefine IRCCD_HAVE_SETPROGNAME
#cmakedefine IRCCD_HAVE_STAT
#cmakedefine IRCCD_HAVE_STAT_ST_ATIME
#cmakedefine IRCCD_HAVE_STAT_ST_BLKSIZE
#cmakedefine IRCCD_HAVE_STAT_ST_BLOCKS
#cmakedefine IRCCD_HAVE_STAT_ST_CTIME
#cmakedefine IRCCD_HAVE_STAT_ST_DEV
#cmakedefine IRCCD_HAVE_STAT_ST_GID
#cmakedefine IRCCD_HAVE_STAT_ST_INO
#cmakedefine IRCCD_HAVE_STAT_ST_MODE
#cmakedefine IRCCD_HAVE_STAT_ST_MTIME
#cmakedefine IRCCD_HAVE_STAT_ST_NLINK
#cmakedefine IRCCD_HAVE_STAT_ST_RDEV
#cmakedefine IRCCD_HAVE_STAT_ST_SIZE
#cmakedefine IRCCD_HAVE_STAT_ST_UID
#cmakedefine IRCCD_HAVE_STD_PUT_TIME
#cmakedefine IRCCD_HAVE_SYSLOG

/**
 * \brief Describe irccd version.
 */
struct version {
	const unsigned major{IRCCD_VERSION_MAJOR};      //!< major
	const unsigned minor{IRCCD_VERSION_MINOR};      //!< minor
	const unsigned patch{IRCCD_VERSION_PATCH};      //!< patch
	const unsigned abi{IRCCD_VERSION_SHLIB};        //!< ABI compatibility
};

} // !irccd

#endif // !IRCCD_SYSCONFIG_HPP