From eed0f16e8f85fff7fc8a190594fb39bc95cada74 Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Tue, 18 Sep 2018 13:45:35 +0200 Subject: Do not install projects.h In version 6 we stop exposing the deprecated projects.h API to the world outside PROJ. Closes #835 --- src/Makefile.am | 4 ++-- src/lib_proj.cmake | 1 - src/test228.c | 4 ++++ 3 files changed, 6 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/Makefile.am b/src/Makefile.am index 567c6e56..84846c1c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -10,7 +10,7 @@ check_PROGRAMS = geodtest AM_CPPFLAGS = -DPROJ_LIB=\"$(pkgdatadir)\" \ -DMUTEX_@MUTEX_SETTING@ @JNI_INCLUDE@ -include_HEADERS = proj.h proj_api.h projects.h geodesic.h \ +include_HEADERS = proj.h proj_api.h geodesic.h \ org_proj4_PJ.h EXTRA_DIST = makefile.vc proj.def bin_cct.cmake bin_gie.cmake bin_cs2cs.cmake \ @@ -44,7 +44,7 @@ lib_LTLIBRARIES = libproj.la libproj_la_LDFLAGS = -no-undefined -version-info 14:1:1 libproj_la_SOURCES = \ - pj_list.h proj_internal.h proj_math.h\ + pj_list.h proj_internal.h proj_math.h projects.h\ PJ_aeqd.c PJ_gnom.c PJ_laea.c PJ_mod_ster.c \ PJ_nsper.c PJ_nzmg.c PJ_ortho.c PJ_stere.c PJ_sterea.c \ PJ_aea.c PJ_bipc.c PJ_bonne.c PJ_eqdc.c PJ_isea.c PJ_ccon.c\ diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake index 33f37bb0..0779568a 100644 --- a/src/lib_proj.cmake +++ b/src/lib_proj.cmake @@ -227,7 +227,6 @@ SET(SRC_LIBPROJ_CORE ) set(HEADERS_LIBPROJ - projects.h proj_api.h proj.h geodesic.h diff --git a/src/test228.c b/src/test228.c index fe2c07ee..83d29f8f 100644 --- a/src/test228.c +++ b/src/test228.c @@ -1,3 +1,7 @@ +#ifndef ACCEPT_USE_OF_DEPRECATED_PROJ_API_H +#define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H +#endif + #include "proj_api.h" #include /* for printf declaration */ -- cgit v1.2.3 From 66f228cfbcf6e47effc5771a29bfaa93b0bf5eb5 Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Tue, 18 Sep 2018 14:00:48 +0200 Subject: Only allow usage of proj_api.h if explicit consent was given We want to flag that proj_api_h is now deprecated. With this commit it is now mandatory to #define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H before proj_api.h can be included. proj_api.h is used internally a bunch of places. Therefore ACCEPT_USE_OF_DEPRECATED_PROJ_API_H has been defined in projects.h and a few other necessary files to ensure that PROJ compiles. Closes #836 --- src/emess.c | 4 ++++ src/multistresstest.c | 5 +++++ src/pj_mutex.c | 3 +++ src/proj_api.h | 5 +++++ src/projects.h | 4 ++++ 5 files changed, 21 insertions(+) (limited to 'src') diff --git a/src/emess.c b/src/emess.c index 330b8412..eb2ac9d6 100644 --- a/src/emess.c +++ b/src/emess.c @@ -9,6 +9,10 @@ # endif #endif +#ifndef ACCEPT_USE_OF_DEPRECATED_PROJ_API_H +#define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H +#endif + #include #include #include diff --git a/src/multistresstest.c b/src/multistresstest.c index adedb8bd..b0bd5c9c 100644 --- a/src/multistresstest.c +++ b/src/multistresstest.c @@ -29,6 +29,11 @@ #include #include #include + +#ifndef ACCEPT_USE_OF_DEPRECATED_PROJ_API_H +#define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H +#endif + #include "proj_api.h" #ifdef _WIN32 diff --git a/src/pj_mutex.c b/src/pj_mutex.c index ba1b2def..dc4a441b 100644 --- a/src/pj_mutex.c +++ b/src/pj_mutex.c @@ -40,6 +40,9 @@ #include "proj_config.h" #include "projects.h" #else +#ifndef ACCEPT_USE_OF_DEPRECATED_PROJ_API_H +#define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H +#endif #include "proj_api.h" #endif diff --git a/src/proj_api.h b/src/proj_api.h index 81cda69a..000a0baf 100644 --- a/src/proj_api.h +++ b/src/proj_api.h @@ -32,6 +32,11 @@ * when a few minor-version releases has been made. * */ + +#ifndef ACCEPT_USE_OF_DEPRECATED_PROJ_API_H +#error 'To use the proj_api.h you must define the macro ACCEPT_USE_OF_DEPRECATED_PROJ_API_H' +#endif + #ifndef PJ_VERSION #define PJ_VERSION 600 #endif diff --git a/src/projects.h b/src/projects.h index ee0e2b65..c4f09a8d 100644 --- a/src/projects.h +++ b/src/projects.h @@ -29,6 +29,10 @@ #ifndef PROJECTS_H #define PROJECTS_H +#ifndef ACCEPT_USE_OF_DEPRECATED_PROJ_API_H +#define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H +#endif + #ifdef _MSC_VER # ifndef _CRT_SECURE_NO_DEPRECATE # define _CRT_SECURE_NO_DEPRECATE -- cgit v1.2.3