aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-12-19 16:25:58 +0100
committerEven Rouault <even.rouault@spatialys.com>2019-12-19 17:45:50 +0100
commitd6ae5289b603dae07e5204695a7735d86a9c1c1e (patch)
tree1c7be6f92d968e2d627cd5254f7d048d181da9e0
parentcde119a2512341c07f775a8ee8f49c6920ec74f0 (diff)
downloadPROJ-d6ae5289b603dae07e5204695a7735d86a9c1c1e.tar.gz
PROJ-d6ae5289b603dae07e5204695a7735d86a9c1c1e.zip
Build: add optional curl dependency
-rw-r--r--CMakeLists.txt15
-rw-r--r--appveyor.yml1
-rw-r--r--configure.ac48
-rw-r--r--src/Makefile.am4
-rw-r--r--src/lib_proj.cmake5
-rwxr-xr-xtravis/csa/before_install.sh2
-rwxr-xr-xtravis/linux_clang/before_install.sh2
-rwxr-xr-xtravis/linux_gcc/before_install.sh2
-rwxr-xr-xtravis/linux_gcc7/before_install.sh2
-rwxr-xr-xtravis/mingw32/install.sh4
10 files changed, 77 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 97a0b90a..26659ad2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -148,6 +148,21 @@ if(NOT DISABLE_TIFF_IS_STRONGLY_DISCOURAGED)
endif()
################################################################################
+# Check for curl
+################################################################################
+
+option(ENABLE_CURL "Enable Curl support" ON)
+if(ENABLE_CURL)
+ find_package(CURL REQUIRED)
+ if(CURL_FOUND)
+ boost_report_value(CURL_FOUND)
+ else()
+ message(SEND_ERROR "curl dependency not found!")
+ endif()
+ add_definitions(-DCURL_ENABLED)
+endif()
+
+################################################################################
# threading configuration
################################################################################
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
diff --git a/appveyor.yml b/appveyor.yml
index fb934f3a..2511854f 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -28,6 +28,7 @@ build_script:
- cd ..
- vcpkg install sqlite3:"%platform%"-windows
- vcpkg install tiff:"%platform%"-windows
+ - vcpkg install curl:"%platform%"-windows
- set SQLITE3_BIN=%APPVEYOR_BUILD_FOLDER%\sqlite3\bin
- mkdir %SQLITE3_BIN%
- ps: |
diff --git a/configure.ac b/configure.ac
index 4aff6d74..23358dcb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -321,6 +321,54 @@ AC_SUBST(TIFF_LIBS,$TIFF_LIBS)
AC_SUBST(TIFF_ENABLED_FLAGS,$TIFF_ENABLED_FLAGS)
dnl ---------------------------------------------------------------------------
+dnl Check for curl
+dnl ---------------------------------------------------------------------------
+
+FOUND_CURL=no
+CURL_CFLAGS=
+CURL_LIB=
+
+AC_ARG_WITH(curl,
+ [ --with-curl[=ARG] Enable curl support (ARG=path to curl-config.)],,,)
+
+dnl Clear some cache variables
+unset ac_cv_path_LIBCURL
+
+if test "`basename xx/$with_curl`" = "curl-config" ; then
+ LIBCURL_CONFIG="$with_curl"
+elif test "$with_curl" = "no" ; then
+ LIBCURL_CONFIG=no
+else
+ AC_PATH_PROG(LIBCURL_CONFIG, curl-config, not-found)
+fi
+
+if test "$LIBCURL_CONFIG" = "not-found" ; then
+ AC_MSG_ERROR([curl not found. If wanting to do a build without curl support (and thus without built-in networking capability), explictly disable it with --without-curl])
+elif test "$LIBCURL_CONFIG" != "no" ; then
+
+ CURL_VERNUM=`$LIBCURL_CONFIG --vernum`
+ CURL_VER=`$LIBCURL_CONFIG --version | awk '{print $2}'`
+
+ AC_MSG_RESULT([ found libcurl version $CURL_VER])
+
+ AC_CHECK_LIB(curl,curl_global_init,FOUND_CURL=yes,FOUND_CURL=no,`$LIBCURL_CONFIG --libs`)
+
+ if test "$FOUND_CURL" = "no" ; then
+ AC_MSG_ERROR([curl not found. If wanting to do a build without curl support (and thus without built-in networking capability), explictly disable it with --without-curl])
+ fi
+ CURL_ENABLED_FLAGS=-DCURL_ENABLED
+fi
+
+if test "$FOUND_CURL" = "yes" ; then
+ CURL_CFLAGS=`$LIBCURL_CONFIG --cflags`
+ CURL_LIBS=`$LIBCURL_CONFIG --libs`
+fi
+
+AC_SUBST(CURL_CFLAGS,$CURL_CFLAGS)
+AC_SUBST(CURL_LIBS,$CURL_LIBS)
+AC_SUBST(CURL_ENABLED_FLAGS,$CURL_ENABLED_FLAGS)
+
+dnl ---------------------------------------------------------------------------
dnl Check for external Google Test
dnl ---------------------------------------------------------------------------
diff --git a/src/Makefile.am b/src/Makefile.am
index f5cabe5e..afe4bcb7 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -7,7 +7,7 @@ TESTS = geodtest
check_PROGRAMS = geodtest
AM_CPPFLAGS = -DPROJ_LIB=\"$(pkgdatadir)\" \
- -DMUTEX_@MUTEX_SETTING@ @JNI_INCLUDE@ -I$(top_srcdir)/include @SQLITE3_CFLAGS@ @TIFF_CFLAGS@ @TIFF_ENABLED_FLAGS@
+ -DMUTEX_@MUTEX_SETTING@ @JNI_INCLUDE@ -I$(top_srcdir)/include @SQLITE3_CFLAGS@ @TIFF_CFLAGS@ @TIFF_ENABLED_FLAGS@ @CURL_CFLAGS@ @CURL_ENABLED_FLAGS@
AM_CXXFLAGS = @CXX_WFLAGS@ @FLTO_FLAG@
include_HEADERS = proj.h proj_experimental.h proj_constants.h proj_api.h geodesic.h \
@@ -43,7 +43,7 @@ geodtest_LDADD = libproj.la
lib_LTLIBRARIES = libproj.la
libproj_la_LDFLAGS = -no-undefined -version-info 17:0:2
-libproj_la_LIBADD = @SQLITE3_LIBS@ @TIFF_LIBS@
+libproj_la_LIBADD = @SQLITE3_LIBS@ @TIFF_LIBS@ @CURL_LIBS@
libproj_la_SOURCES = \
pj_list.h proj_internal.h \
diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake
index eacc7a23..12dcb366 100644
--- a/src/lib_proj.cmake
+++ b/src/lib_proj.cmake
@@ -446,6 +446,11 @@ if(NOT DISABLE_TIFF_IS_STRONGLY_DISCOURAGED)
target_link_libraries(${PROJ_CORE_TARGET} ${TIFF_LIBRARY})
endif()
+if(CURL_FOUND)
+ include_directories(${CURL_INCLUDE_DIR})
+ target_link_libraries(${PROJ_CORE_TARGET} ${CURL_LIBRARY})
+endif()
+
if(MSVC)
target_compile_definitions(${PROJ_CORE_TARGET}
PRIVATE PROJ_MSVC_DLL_EXPORT=1)
diff --git a/travis/csa/before_install.sh b/travis/csa/before_install.sh
index 8d0f3fd2..dcb7733b 100755
--- a/travis/csa/before_install.sh
+++ b/travis/csa/before_install.sh
@@ -5,7 +5,7 @@ set -e
./travis/before_install_apt.sh
./travis/before_install_pip.sh
-sudo apt-get install -qq sqlite3 libsqlite3-dev libtiff-dev
+sudo apt-get install -qq sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev
CLANG_LLVM=clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-16.04
wget http://releases.llvm.org/6.0.0/$CLANG_LLVM.tar.xz
diff --git a/travis/linux_clang/before_install.sh b/travis/linux_clang/before_install.sh
index cfe7ba67..c4b8acad 100755
--- a/travis/linux_clang/before_install.sh
+++ b/travis/linux_clang/before_install.sh
@@ -5,4 +5,4 @@ set -e
./travis/before_install_apt.sh
./travis/before_install_pip.sh
-sudo apt-get install -qq sqlite3 libsqlite3-dev libtiff-dev
+sudo apt-get install -qq sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev
diff --git a/travis/linux_gcc/before_install.sh b/travis/linux_gcc/before_install.sh
index d4deb85e..9db2ea89 100755
--- a/travis/linux_gcc/before_install.sh
+++ b/travis/linux_gcc/before_install.sh
@@ -9,7 +9,7 @@ sudo apt-get install -qq \
lcov \
doxygen graphviz \
sqlite3 libsqlite3-dev \
- libtiff-dev \
+ libtiff-dev libcurl4-openssl-dev \
cppcheck
scripts/cppcheck.sh
diff --git a/travis/linux_gcc7/before_install.sh b/travis/linux_gcc7/before_install.sh
index b3e053c0..2ef2feee 100755
--- a/travis/linux_gcc7/before_install.sh
+++ b/travis/linux_gcc7/before_install.sh
@@ -9,7 +9,7 @@ sudo apt-get install -qq \
lcov \
doxygen graphviz \
sqlite3 libsqlite3-dev \
- libtiff-dev
+ libtiff-dev libcurl4-openssl-dev
#scripts/cppcheck.sh
#scripts/doxygen.sh
diff --git a/travis/mingw32/install.sh b/travis/mingw32/install.sh
index bc9f3258..abe79c7b 100755
--- a/travis/mingw32/install.sh
+++ b/travis/mingw32/install.sh
@@ -47,7 +47,7 @@ ln -s /usr/$MINGW_ARCH/bin/libsqlite3-0.dll $WINE_SYSDIR
# autoconf build
mkdir build_autoconf
cd build_autoconf
-CC="ccache $MINGW_ARCH-gcc" CXX="ccache $MINGW_ARCH-g++" LD=$MINGW_ARCH-ld ../configure --host=$MINGW_ARCH --prefix=/tmp/proj_autoconf_install
+CC="ccache $MINGW_ARCH-gcc" CXX="ccache $MINGW_ARCH-g++" LD=$MINGW_ARCH-ld ../configure --host=$MINGW_ARCH --prefix=/tmp/proj_autoconf_install --without-curl
make -j2
make install
make dist-all
@@ -63,7 +63,7 @@ cd ..
# autoconf build with grids
mkdir build_autoconf_grids
cd build_autoconf_grids
-CC="ccache $MINGW_ARCH-gcc" CXX="ccache $MINGW_ARCH-g++" LD=$MINGW_ARCH-ld ../configure --host=$MINGW_ARCH --prefix=/tmp/proj_autoconf_install_nad
+CC="ccache $MINGW_ARCH-gcc" CXX="ccache $MINGW_ARCH-g++" LD=$MINGW_ARCH-ld ../configure --host=$MINGW_ARCH --prefix=/tmp/proj_autoconf_install_nad --without-curl
make -j2
make install
find /tmp/proj_autoconf_install_nad