diff --git a/Installation/include/CGAL/config.h b/Installation/include/CGAL/config.h index f3753100139..13379cf2a3c 100644 --- a/Installation/include/CGAL/config.h +++ b/Installation/include/CGAL/config.h @@ -117,7 +117,7 @@ #include #include -#include +#include //----------------------------------------------------------------------// // platform specific workaround flags (CGAL_CFG_...) diff --git a/Installation/include/CGAL/version_checker.h b/Installation/include/CGAL/version_checker.h new file mode 100644 index 00000000000..9061ee89c54 --- /dev/null +++ b/Installation/include/CGAL/version_checker.h @@ -0,0 +1,53 @@ +// Copyright (c) 2023 GeometryFactory. +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org) +// +// $URL$ +// $Id$ +// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : - + +#ifndef CGAL_VERSION_CHECKER_H +#define CGAL_VERSION_CHECKER_H + +#include + +// All files including this header are meant to work with a given version of CGAL +// When using forked headers, set the following macro to the version of CGAL +// you want to use. + +//// Set the 3 following macros to the version of CGAL you want to use +//#define CGAL_AUTHORIZED_VERSION_MAJOR 6 +//#define CGAL_AUTHORIZED_VERSION_MINOR 0 +//#define CGAL_AUTHORIZED_VERSION_PATCH 0 + +// Set the following macros to 1 to get a warning/an error +// when using a bad version of CGAL +#define CGAL_VERSION_CHECKER_ERROR 0 +#define CGAL_VERSION_CHECKER_WARNING 0 + +#define CGAL_AUTHORIZED_VERSION_STR CGAL_STR(CGAL_AUTHORIZED_VERSION_MAJOR) "." \ + CGAL_STR(CGAL_AUTHORIZED_VERSION_MINOR) "." \ + CGAL_STR(CGAL_AUTHORIZED_VERSION_PATCH) + + +// Check that the version of CGAL used is the one expected +#if CGAL_AUTHORIZED_VERSION_MAJOR != CGAL_VERSION_MAJOR \ + || CGAL_AUTHORIZED_VERSION_MINOR != CGAL_VERSION_MINOR \ + || CGAL_AUTHORIZED_VERSION_PATCH != CGAL_VERSION_PATCH + + #if CGAL_VERSION_CHECKER_WARNING || CGAL_VERSION_CHECKER_ERROR + #pragma message("These headers are meant to be used with CGAL " CGAL_AUTHORIZED_VERSION_STR " only."\ + " You are using CGAL version: " CGAL_STR(CGAL_VERSION) ".") + + #ifdef CGAL_VERSION_CHECKER_ERROR + #error "Wrong version of CGAL" + #endif + + #endif + +#endif + +#endif // CGAL_VERSION_CHECKER_H diff --git a/Installation/include/CGAL/version_enforcer.h b/Installation/include/CGAL/version_enforcer.h deleted file mode 100644 index c5c1181cee4..00000000000 --- a/Installation/include/CGAL/version_enforcer.h +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) 2023 GeometryFactory. -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : - - -#ifndef CGAL_VERSION_ENFORCER_H -#define CGAL_VERSION_ENFORCER_H - -#include - -// All files including this header are meant to work with a given version of CGAL -// When using forked headers, set the 4 following macros to the version of CGAL -// you want to use. -#define CGAL_AUTHORIZED_VERSION_STR CGAL_VERSION_STR -#define CGAL_AUTHORIZED_VERSION_MAJOR CGAL_VERSION_MAJOR -#define CGAL_AUTHORIZED_VERSION_MINOR CGAL_VERSION_MINOR -#define CGAL_AUTHORIZED_VERSION_PATCH CGAL_VERSION_PATCH - -// Check that the version of CGAL used is the one expected -#if (CGAL_VERSION_MAJOR != CGAL_AUTHORIZED_VERSION_MAJOR) -#pragma message "You are using CGAL version: " CGAL_STR(CGAL_VERSION) "." -#error This header is meant to be with used with CGAL "CGAL_AUTHORIZED_VERSION_STR" only." -#endif - -#if (CGAL_VERSION_MINOR != CGAL_AUTHORIZED_VERSION_MINOR) -#pragma message "You are using CGAL version: " CGAL_STR(CGAL_VERSION) "." -#error This header is meant to be with used with CGAL "CGAL_AUTHORIZED_VERSION_STR" only. -#endif - -#if (CGAL_VERSION_PATCH != CGAL_AUTHORIZED_VERSION_PATCH) -#pragma message "You are using CGAL version: " CGAL_STR(CGAL_VERSION) "." -#error This header is meant to be with used with CGAL "CGAL_AUTHORIZED_VERSION_STR" only." -#endif - -#endif // CGAL_VERSION_ENFORCER_H