From ced1d5c88c8e3ea1e18a5e89afba33a95b46e2de Mon Sep 17 00:00:00 2001 From: Axel Date: Wed, 17 Feb 2021 12:52:47 +0100 Subject: [PATCH] Added OSM2ODR dependencies for projection capabilities (linux). --- PythonAPI/carla/setup.py | 4 +- Util/BuildTools/BuildOSM2ODR.sh | 4 +- Util/BuildTools/Setup.sh | 91 +++++++++++++++++++++++++++++++++ Util/OSM2ODR/CMakeLists.txt | 17 +++--- 4 files changed, 106 insertions(+), 10 deletions(-) diff --git a/PythonAPI/carla/setup.py b/PythonAPI/carla/setup.py index 26a2d7f53..abe3712c7 100755 --- a/PythonAPI/carla/setup.py +++ b/PythonAPI/carla/setup.py @@ -52,7 +52,9 @@ def get_libcarla_extensions(): os.path.join(pwd, 'dependencies/lib/libDetour.a'), os.path.join(pwd, 'dependencies/lib/libDetourCrowd.a'), os.path.join(pwd, 'dependencies/lib/libosm2odr.a'), - os.path.join(pwd, 'dependencies/lib/libxerces-c.a')] + os.path.join(pwd, 'dependencies/lib/libxerces-c.a'), + os.path.join(pwd, 'dependencies/lib/libproj.a'), + os.path.join(pwd, 'dependencies/lib/libsqlite3.a')] extra_link_args += ['-lz'] extra_compile_args = [ '-isystem', 'dependencies/include/system', '-fPIC', '-std=c++14', diff --git a/Util/BuildTools/BuildOSM2ODR.sh b/Util/BuildTools/BuildOSM2ODR.sh index 14b4154ec..0d3534222 100755 --- a/Util/BuildTools/BuildOSM2ODR.sh +++ b/Util/BuildTools/BuildOSM2ODR.sh @@ -77,7 +77,9 @@ if ${BUILD_OSM2ODR} ; then cmake ${OSM2ODR_ROOT_FOLDER} \ -G "Eclipse CDT4 - Ninja" \ - -DCMAKE_INSTALL_PREFIX=${LIBCARLA_INSTALL_CLIENT_FOLDER} + -DCMAKE_INSTALL_PREFIX=${LIBCARLA_INSTALL_CLIENT_FOLDER} \ + -DPROJ_INCLUDE_DIR=${CARLA_BUILD_FOLDER}/proj-install/include \ + -DPROJ_LIBRARY=${CARLA_BUILD_FOLDER}/proj-install/lib/libproj.a ninja osm2odr ninja install diff --git a/Util/BuildTools/Setup.sh b/Util/BuildTools/Setup.sh index c30257036..0caa32dce 100755 --- a/Util/BuildTools/Setup.sh +++ b/Util/BuildTools/Setup.sh @@ -543,6 +543,97 @@ if ${USE_CHRONO} ; then fi +# ============================================================================== +# -- Get and compile Sqlite3 --------------------------------------------------- +# ============================================================================== + +SQLITE_VERSION=sqlite-autoconf-3340100 +SQLITE_REPO=https://www.sqlite.org/2021/${SQLITE_VERSION}.tar.gz + +SQLITE_TAR=${SQLITE_VERSION}.tar.gz +SQLITE_SOURCE_DIR=sqlite-src +SQLITE_INSTALL_DIR=sqlite-install + +SQLITE_INCLUDE_DIR=${PWD}/${SQLITE_INSTALL_DIR}/include +SQLITE_LIB=${PWD}/${SQLITE_INSTALL_DIR}/lib/libsqlite3.a +SQLITE_EXE=${PWD}/${SQLITE_INSTALL_DIR}/bin/sqlite3 + +if [[ -d ${SQLITE_INSTALL_DIR} ]] ; then + log "Sqlite already installed." +else + log "Retrieving Sqlite3" + wget ${SQLITE_REPO} + + log "Extracting Sqlite3" + tar -xzf ${SQLITE_TAR} + mv ${SQLITE_VERSION} ${SQLITE_SOURCE_DIR} + + mkdir ${SQLITE_INSTALL_DIR} + + pushd ${SQLITE_SOURCE_DIR} >/dev/null + + export CFLAGS="-fPIC" + ./configure --prefix=${PWD}/../sqlite-install/ + make + make install + + popd >/dev/null + + rm -Rf ${SQLITE_TAR} + rm -Rf ${SQLITE_SOURCE_DIR} +fi + +cp ${SQLITE_LIB} ${LIBCARLA_INSTALL_CLIENT_FOLDER}/lib/ + +# ============================================================================== +# -- Get and compile PROJ ------------------------------------------------------ +# ============================================================================== + +PROJ_VERSION=proj-7.2.1 +PROJ_REPO=https://download.osgeo.org/proj/${PROJ_VERSION}.tar.gz + +PROJ_TAR=${PROJ_VERSION}.tar.gz +PROJ_SRC_DIR=proj-src +PROJ_INSTALL_DIR=proj-install +PROJ_INSTALL_DIR_FULL=${PWD}/${PROJ_INSTALL_DIR} +PROJ_LIB=${PROJ_INSTALL_DIR_FULL}/lib/libproj.a + +if [[ -d ${PROJ_INSTALL_DIR} ]] ; then + log "PROJ already installed." +else + log "Retrieving PROJ" + wget ${PROJ_REPO} + + log "Extracting PROJ" + tar -xzf ${PROJ_TAR} + mv ${PROJ_VERSION} ${PROJ_SRC_DIR} + + mkdir ${PROJ_SRC_DIR}/build + mkdir ${PROJ_INSTALL_DIR} + + pushd ${PROJ_SRC_DIR}/build >/dev/null + + cmake -G "Ninja" .. \ + -DCMAKE_CXX_FLAGS="-std=c++14 -fPIC" \ + -DSQLITE3_INCLUDE_DIR=${SQLITE_INCLUDE_DIR} -DSQLITE3_LIBRARY=${SQLITE_LIB} \ + -DEXE_SQLITE3=${SQLITE_EXE} \ + -DENABLE_TIFF=OFF -DENABLE_CURL=OFF -DBUILD_SHARED_LIBS=OFF -DBUILD_PROJSYNC=OFF \ + -DCMAKE_BUILD_TYPE=Release -DBUILD_PROJINFO=OFF \ + -DBUILD_CCT=OFF -DBUILD_CS2CS=OFF -DBUILD_GEOD=OFF -DBUILD_GIE=OFF \ + -DBUILD_PROJ=OFF -DBUILD_TESTING=OFF \ + -DCMAKE_INSTALL_PREFIX=${PROJ_INSTALL_DIR_FULL} + ninja + ninja install + + popd >/dev/null + + rm -Rf ${PROJ_TAR} + rm -Rf ${PROJ_SRC_DIR} + +fi + +cp ${PROJ_LIB} ${LIBCARLA_INSTALL_CLIENT_FOLDER}/lib/ + # ============================================================================== # -- Generate Version.h -------------------------------------------------------- # ============================================================================== diff --git a/Util/OSM2ODR/CMakeLists.txt b/Util/OSM2ODR/CMakeLists.txt index 583370520..169060124 100644 --- a/Util/OSM2ODR/CMakeLists.txt +++ b/Util/OSM2ODR/CMakeLists.txt @@ -67,15 +67,16 @@ if (CMAKE_GENERATOR MATCHES Xcode) endif () message(STATUS "") -find_package(PythonInterp REQUIRED) -message(STATUS "Found Python: " ${PYTHON_EXECUTABLE}) -execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import setuptools" RESULT_VARIABLE SETUPTOOLS_MISSING) +#set(Python_ADDITIONAL_VERSIONS 3) +#find_package(PythonInterp REQUIRED) +#message(STATUS "Found Python: " ${PYTHON_EXECUTABLE}) +#execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import setuptools" RESULT_VARIABLE SETUPTOOLS_MISSING) -#find_package(Proj) -#if (PROJ_FOUND) - #include_directories(SYSTEM ${PROJ_INCLUDE_DIR}) - #set(ENABLED_FEATURES "${ENABLED_FEATURES} Proj") -#endif (PROJ_FOUND) +find_package(Proj) +if (PROJ_FOUND) + include_directories(SYSTEM ${PROJ_INCLUDE_DIR}) + set(ENABLED_FEATURES "${ENABLED_FEATURES} Proj") +endif (PROJ_FOUND) set(XERCES_PATH "../../Build/xerces-c-3.2.3-install") set(XercesC_INCLUDE_DIR "${XERCES_PATH}/include")