| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
PROJ can build and run against older version (3.7 for example), but it has
been found that performance is horrible. With 3.11 (Ubuntu 16.04), it is
fine, so sets this as the minimum version.
|
|
cmake and autoconf now stipulate C99
change c89 to c99 in travis jobs
remove HAVE_C99_MATH checks
(unrelated) relax Visual Studio compatibility check in
cmake/project-config-version.cmake.in (VS 2019 can use a VS 2015 library
but not vice versa).
|
|
just includes math.h and limits.h) since it's included in a score of
places.
|
|
eliminate most of math.cpp. All that is left is the handling of
isnan (and I've this because math.cpp notes that gie.c uses pj_isnan).
geodesic.c now handles supplying C99 math functions internally and this
can go away once C99 support is mandated.
|
|
The supported C99 math functions provided by math.cpp are thus
hypot
log1p
asinh
atanh
copysign
cbrt
remainder
remquo
round
lround
Make compiler checks in CMakeLists.txt and configure.ac consistent with
this set.
Make geodesic.c use the math.cpp defined (instead of the internally
defined) versions of
hypot
atanh
copysign
cbrt
This is keyed off the presence of the PROJ_LIB macro. I had at one
time
https://github.com/OSGeo/PROJ/pull/1425
suggested supplying an additional macro PROJ_COMPILATION when compiling
geodesic.c. However, PROJ_LIB seems to fill the bill OK.
The *next* version of geodesic.c (due out in a few weeks) will also use
remainder
remquo
All of this is only of concern for C compilers without C99 support. So
this may become an historical footnote at some point.
|
|
|
|
|
|
|
|
None of variables calculated by the module are currently used.
Besides, this is legacy module which should not be necessary for
anything.
Related to #1263
|
|
|
|
Remove `PROJ_COMPILATION=1` definition
|
|
|
|
|
|
Remove (most) needs to fiddle with CMAKE_C_FLAGS / CMAKE_CXX_FLAGS
|
|
|
|
|
|
|
|
6.0.0 Release prep
|
|
|
|
|
|
Set required C++ standard version with CMake variable
instead of hand-rolled compiler-specific flags.
Allow user to override the default with -DCMAKE_CXX_STANDARD={98,11,14,17,20}
Closes #1118
|
|
|
|
This work mostly consists of:
- a C++ implementation of the ISO-19111:2018 / OGC Topic 2
"Referencing by coordinates" classes to represent Datums,
Coordinate systems, CRSs (Coordinate Reference Systems) and
Coordinate Operations.
- methods to convert between this C++ modeling and WKT1, WKT2
and PROJ string representations of those objects
- management and query of a SQLite3 database of CRS and Coordinate Operation definition
- a C API binding part of those capabilities
This is all-in-one squashed commit of the work of
https://github.com/OSGeo/proj.4/pull/1040
|
|
cmake: detect PTHREAD_MUTEX_RECURSIVE by compiling
|
|
The `check_symbol_exists` cannot detect `#define symbol 1` because it
takes the address of the symbol to detect it, but the address of a
literal is not allowed. Some platforms define `PTHREAD_MUTEX_RECURSIVE`
by such a literal.
Fixes #1158
|
|
CMake provides this function, but only in CMake 2.8.3 and up. This
minimum version bump is OK because it is from 2010, but the code
requires C++11 features to exist. Any platform with a suitable compiler,
but too-old of a CMake can easily compile the required CMake version as
well.
|
|
|
|
|
|
Also, workaround issue:
CMake Error at test/unit/CMakeLists.txt:7 (string):
string sub-command REGEX, mode REPLACE needs at least 6 arguments
total to command.
|
|
|
|
Add instruction to HOWTO-RELEASE as well so it is remembered in the
future.
|
|
Align version with the one defined in configure.ac.
|
|
builds only (CMake integration to be done)
|
|
The library does not require CDash server, so there is
no point in generating all testing configurations
(ie. Experimental, Continuous, Nightly)
CTest also adds implicit BUILD_TESTING option (default ON)
which is not used by the library - there is custom PROJ_TESTS.
|
|
and add catch2 framework
Hardened compilation flags come from GDAL' configure.ac and are
'combat proven'
Dummy test added just to demonstrate catch2 based tests work.
|
|
|
|
|
|
Collect custom C99 math functions in proj_math.h
|
|
|
|
We are relying more and more on C99 math functions. On C89 systems where
those functions are not available our own custom versions of those
functions are used instead. So far these has been spread across the code
base. This commit gathers them in the same file and introduces the
proj_math.h header. The build system checks for C99 math functions. If
not found the proj_math.h header make sure that C99 functions are
defined as their pj_ equivalent.
Ideally proj_math.h is included instead of math.h. This removes the need
for any checks against HAVE_C99_MATH in the code making it easier to
read.
For this commit the functions hypot, log1p and asinh has been taken care
of.
|
|
|
|
|
|
This allows us to take advantage of newer features when they are
available. However, builds on Travis still use -std=c89 to ensure C89
compatibility. Locally this can be achieved with either
* cmake -DCMAKE_C_STANDARD=90 ..
* cmake -DCMAKE_C_FLAGS='-std=c89' ..
* C_FLAGS='-std=c89' cmake ..
We also reorder the warning flags: they are all part of the standard
build now, but -Werror is only applied on Travis.
Fixes #892.
|
|
Extend HAVE_C99_MATH checks in CMakeLists.txt and configure.ac to
include test for C99 function isnan.
|
|
|