Added OSM2ODR dependencies for projection capabilities (linux).

This commit is contained in:
Axel 2021-02-17 12:52:47 +01:00 committed by Axel1092
parent 664866953e
commit ced1d5c88c
4 changed files with 106 additions and 10 deletions

View File

@ -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',

View File

@ -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

View File

@ -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 --------------------------------------------------------
# ==============================================================================

View File

@ -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")