[Proj] 4.9.1RC1 Released

Charles Karney charles.karney at sri.com
Sat Feb 21 09:52:10 EST 2015


On 02/21/2015 09:15 AM, Even Rouault wrote:
> Le samedi 21 février 2015 14:18:22, Charles Karney a écrit :
>> On 02/20/2015 10:48 PM, Howard Butler wrote:
>>> As requested, I have issued one more RC, with the items from Markus,
>>> Sebastiaan, and Charles. Please report any findings or issues as before.
>>>
>>> http://download.osgeo.org/proj/proj-4.9.1RC2.tar.gz
>>>
>>> Thanks,
>>
>> Please apply the following patches to proj-4.9.1RC2 (in addition to
>> including man/CMakeLists.txt and cmake/policies.cmake as noted by Even).
>> These patches fix:
>
> Applied. I had to manually apply since the patch got somehow corrupted in the email. An attachment would have been better.
>
> I blindly trust you for the cmake windows part...
>
>
> One thing I noticed is that the set of installed headers isn't the same between autoconf and cmake :
>
> ../../install-proj-4.9.1-cmake/include/emess.h  (should be internal only no ?)
> ../../install-proj-4.9.1-cmake/include/proj_api.h
> ../../install-proj-4.9.1-cmake/include/projects.h
> ../../install-proj-4.9.1-cmake/include/pj_list.h (should be internal only no ?)
> ../../install-proj-4.9.1-cmake/include/proj_config.h (should be internal only no ?)
>
> ../../install-proj-4.9.1-autoconf/include/proj_api.h
> ../../install-proj-4.9.1-autoconf/include/org_proj4_Projections.h  (missing in cmake ?)
> ../../install-proj-4.9.1-autoconf/include/projects.h
> ../../install-proj-4.9.1-autoconf/include/geodesic.h  (missing in cmake ?)
> ../../install-proj-4.9.1-autoconf/include/org_proj4_PJ.h  (missing in cmake ?)
>

Attached (!) is a patch to install the right headers (include geodesic.h
exclude internal headers).  The org_* headers aren't installed because
JNI support is missing from cmake.

I also added CH to be list of extra projections to be installed.

One serious discrepancy is that the numbering of the so libraries.
These are different between cmake and autoconf (and the cmake libraries
have two sets of numbers!?).  I'm not sure how best to handle this...

Another less serious issue is that proj_api.h defines

   #define PJ_VERSION 491

What's going to happen with 4.10.0?  (I assume we won't want to go to
5.0?)  I suggestion leaving this definition (for now at any rate), but
adding

   #define PROJ_VERSION_MAJOR 4
   #define PROJ_VERSION_MINOR 9
   #define PROJ_VERSION_PATCH 1

   #define PROJ_VERSION_NUM(a,b,c) ((((a) * 10000 + (b)) * 100) + (c))

   #define PROJ_VERSION \
     PROJ_VERSION_NUM(PROJ_VERSION_MAJOR, PROJ_VERSION_MINOR, 
PROJ_VERSION_PATCH)

Two other fixes to proj4 are on my list:

(A) Fix the runtime library path for the executables with the cmake
install.

(B) Install cmake config support for proj (so that other cmake projects
can find it with find_package(PROJ).  On this point:

   (1) I plan to use PROJ4 as the package name (case is significant
   here).  Any objections?  Alternatives Proj4, proj4.  Possibly the "4"
   should be left off and the user expected to do

     find_package (PROJ 4)

   I don't feel very strongly about this.  However, it will be important
   to stick with a single convention.

   (2) There's already a file in the distribution called

     cmake/Proj4Config.cmake

   This name is probably a bad idea since it will be matched by the
   find_package file lookup.  How about if I rename it to
   Proj4Configuration.cmake

-------------- next part --------------
diff -u -r proj-4.9.1RC2-patch/nad/CMakeLists.txt proj-4.9.1RC2-patch2/nad/CMakeLists.txt
--- proj-4.9.1RC2-patch/nad/CMakeLists.txt	2015-02-20 16:20:34.000000000 -0500
+++ proj-4.9.1RC2-patch2/nad/CMakeLists.txt	2015-02-21 09:06:09.266340475 -0500
@@ -11,7 +11,8 @@
                      nad27
                      GL27
                      nad83
-                     nad.lst )
+                     nad.lst
+                     CH )
 
 #
 # gridshift file
diff -u -r proj-4.9.1RC2-patch/src/lib_proj.cmake proj-4.9.1RC2-patch2/src/lib_proj.cmake
--- proj-4.9.1RC2-patch/src/lib_proj.cmake	2015-02-21 07:53:22.472682833 -0500
+++ proj-4.9.1RC2-patch2/src/lib_proj.cmake	2015-02-21 09:27:39.176943000 -0500
@@ -199,11 +199,16 @@
         vector1.c
  )
 
+set(HEADERS_LIBPROJ_INSTALL
+        projects.h
+        proj_api.h
+        geodesic.h
+)
+
 set(HEADERS_LIBPROJ
+        ${HEADERS_LIBPROJ_INSTALL}
         pj_list.h
         emess.h
-        projects.h
-        proj_api.h
         ${CMAKE_CURRENT_BINARY_DIR}/proj_config.h
  )
 
@@ -225,9 +230,9 @@
 if(JNI_SUPPORT)
   set(SRC_LIBPROJ_CORE ${SRC_LIBPROJ_CORE}
                        jniproj.c )
-  set(HEADERS_LIBPROJ ${HEADERS_LIBPROJ}
-                        org_proj4_PJ.h
-                        org_proj4_Projections.h)
+  set(HEADERS_JNI org_proj4_PJ.h org_proj4_Projections.h)
+  set(HEADERS_LIBPROJ_INSTALL ${HEADERS_LIBPROJ_INSTALL} ${HEADERS_JNI})
+  set(HEADERS_LIBPROJ ${HEADERS_LIBPROJ} ${HEADERS_JNI})
   source_group("Source Files\\JNI" FILES ${SRC_LIBPROJ_JNI})
   add_definitions(-DJNI_ENABLED)
   include_directories( ${JNI_INCLUDE_DIRS})
@@ -301,7 +306,7 @@
         FRAMEWORK DESTINATION ${FRAMEWORKDIR})
 
 if(NOT BUILD_FRAMEWORKS_AND_BUNDLE)
-  install(FILES ${ALL_LIBPROJ_HEADERS}
+  install(FILES ${HEADERS_LIBPROJ_INSTALL}
         DESTINATION ${INCLUDEDIR})
 endif(NOT BUILD_FRAMEWORKS_AND_BUNDLE)
 


More information about the Proj mailing list