Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 95 additions & 0 deletions .github/workflows/libpqxx.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: Supported versions of libpqxx

on:
push:
branches-ignore:
- 'translations_*'
tags: []
pull_request:
paths-ignore:
- '**.po'


jobs:
build:
name: Build
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
libpqxx: [6, 7]
os: [ubuntu-latest]

steps:
- uses: actions/checkout@v2

- name: Get postgres version
run: |
sudo service postgresql start
pgver=$(psql --version | grep -Po '(?<=psql \(PostgreSQL\) )[^;]+(?=\.\d \()')
echo "PGVER=${pgver}" >> $GITHUB_ENV
echo "PGIS=3" >> $GITHUB_ENV

- name: Add PostgreSQL APT repository
run: |
sudo apt-get install curl ca-certificates gnupg
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ \
$(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libboost-program-options-dev \
libtap-parser-sourcehandler-pgtap-perl \
postgresql-${PGVER} \
postgresql-${PGVER}-pgtap \
postgresql-${PGVER}-postgis-${PGIS} \
postgresql-${PGVER}-postgis-${PGIS}-scripts \
postgresql-${PGVER}-pgrouting \
postgresql-server-dev-${PGVER}


- name: Install libpqxx-dev v6
if: matrix.libpqxx == 6
run: |
sudo apt-get install -y \
libpqxx-dev

- name: download libpqxx-dev v7
if: matrix.libpqxx == 7
uses: actions/checkout@master
with:
repository: jtv/libpqxx
path: ./libpqxx

- name: Install libpqxx-dev v7
if: matrix.libpqxx == 7
run: |
cd ./libpqxx
cmake -DSKIP_BUILD_TEST=on .
cmake --build .
sudo cmake --install .


- name: Configure
run: |
export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH
mkdir build
cd build
cmake -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_BUILD_TYPE=Release -DWITH_DOC=OFF ..

- name: Build
run: |
cd build
make -j 4
sudo make install

- name: Test
if: false
run: |
sudo service postgresql start
sudo -u postgres createdb -p ${PGPORT} ___vrp___test___
sudo -u postgres bash ./tools/testers/pg_prove_tests.sh postgres ${PGPORT} Release
76 changes: 76 additions & 0 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Build for Ubuntu

on:
push:
branches-ignore:
- 'translations_*'
tags: []
pull_request:
paths-ignore:
- '**.po'


jobs:
build:
name: Build
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
psql: [9.6,10,11,12, 13]
postgis: [2.5,3]
os: [ubuntu-latest]

steps:
- uses: actions/checkout@v2

- name: get postgres version
run: |
sudo service postgresql start
pgver=$(psql --version | grep -Po '(?<=psql \(PostgreSQL\) )[^;]+(?=\.\d \()')
echo "PGVER=${pgver}" >> $GITHUB_ENV
PGP=5433
if [ "${{ matrix.psql }}" == "${pgver}" ]; then PGP=5432; fi
echo "PGPORT=${PGP}" >> $GITHUB_ENV

- name: Add PostgreSQL APT repository
run: |
sudo apt-get install curl ca-certificates gnupg
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ \
$(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libboost-program-options-dev \
libtap-parser-sourcehandler-pgtap-perl \
postgresql-${{ matrix.psql }} \
postgresql-${{ matrix.psql }}-pgtap \
postgresql-${{ matrix.psql }}-postgis-${{ matrix.postgis }} \
postgresql-${{ matrix.psql }}-postgis-${{ matrix.postgis }}-scripts \
postgresql-${{ matrix.psql }}-pgrouting \
libpqxx-dev \
postgresql-server-dev-${{ matrix.psql }}

- name: Configure
run: |
export PATH=/usr/lib/postgresql/${{ matrix.psql }}/bin:$PATH
mkdir build
cd build
cmake -DPOSTGRESQL_VERSION=${{ matrix.psql }} -DCMAKE_BUILD_TYPE=Release -DWITH_DOC=OFF ..

- name: Build
run: |
cd build
make -j 4
sudo make install

- name: Test
if: false
run: |
sudo service postgresql start
sudo -u postgres createdb -p ${PGPORT} ___vrp___test___
sudo -u postgres bash ./tools/testers/pg_prove_tests.sh postgres ${PGPORT} Release
78 changes: 0 additions & 78 deletions .travis.yml

This file was deleted.

78 changes: 28 additions & 50 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,69 +1,49 @@
PROJECT(osm2pgrouting)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
cmake_minimum_required(VERSION 3.2 FATAL_ERROR)

if ( ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR} )
message(FATAL_ERROR "In-source builds not allowed.
Please make a new directory (called a build directory) and run CMake from there.
You may need to remove CMakeCache.txt." )
endif()

PROJECT(osm2pgrouting)

LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
SET(SHARE_DIR "${CMAKE_INSTALL_PREFIX}/share/osm2pgrouting")

FIND_PACKAGE(PostgreSQL REQUIRED)
find_package(LibPQXX REQUIRED)
FIND_PACKAGE(EXPAT REQUIRED)

find_package(PostgreSQL REQUIRED)
find_package(PQXX REQUIRED)
include_directories(${PQXX_INCLUDE_DIR})
find_package(EXPAT REQUIRED)

FIND_PACKAGE(Boost)
if(Boost_INCLUDE_DIRS)
message(STATUS "Boost headers were found here: ${Boost_INCLUDE_DIRS}")
else(Boost_INCLUDE_DIRS)
message(FATAL_ERROR " Please check your Boost installation ")
endif(Boost_INCLUDE_DIRS)

FIND_PACKAGE(Boost COMPONENTS program_options REQUIRED)

FILE(GLOB osm2pgrouting_lib_SOURCES "${CMAKE_SOURCE_DIR}/src/*/*.cpp")

#---------------------------------------------
# C++ Compiler requirements
#---------------------------------------------
set(GNU_CXX_MINIMUM_VERSION "4.6")
set(MSVC_CXX_MINIMUM_VERSION "18.0")

include(CheckCXXCompilerFlag)

CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPILER_SUPPORTS_CXX14)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS GNU_CXX_MINIMUM_VERSION)
message(FATAL_ERROR "GCC version must be at least ${GNU_CXX_MINIMUM_VERSION}!
Found version ${CMAKE_CXX_COMPILER_VERSION}")
endif()
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS MSVC_CXX_MINIMUM_VERSION)
message(FATAL_ERROR "MSVC version must be at least ${MSVC_CXX_MINIMUM_VERSION}!")
endif()
else()
message(STATUS "Unknown compiler minimum version for ${CMAKE_CXX_COMPILER_ID}")
endif()
#---------------------------------------------

if(COMPILER_SUPPORTS_CXX14)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
message(STATUS "Using -std=c++14.")
elseif(COMPILER_SUPPORTS_CXX11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
message(STATUS "Using -std=c++11.")
elseif(COMPILER_SUPPORTS_CXX0X)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
message(STATUS "Using -std=c++0x.")
else()
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++0x or C++11 or C++14 flags support.")
#---------------------------------------------
# Boost
#---------------------------------------------
#---------------------------------------------
find_package(Boost ${BOOST_MINIMUM_VERSION} REQUIRED COMPONENTS program_options)
if (NOT Boost_VERSION_MACRO)
set(Boost_VERSION_MACRO ${Boost_VERSION})
endif()
add_definitions(-DBoost_VERSION_MACRO=${Boost_VERSION_MACRO})
add_definitions(-DBOOST_ALLOW_DEPRECATED_HEADERS)
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})


message(STATUS "PQXX_VERSION=${PQXX_VERSION}")
if (PQXX_VERSION VERSION_GREATER_EQUAL "7.0.0")
set(CMAKE_CXX_STANDARD 17)
else()
add_definitions(-DPQXX_DISCONNECT)
set(CMAKE_CXX_STANDARD 14)
endif()

set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FILE_OFFSET_BITS=64")
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Wconversion -pedantic -Wextra -frounding-math -Wno-deprecated -fmax-errors=10")
Expand All @@ -80,26 +60,24 @@ endif()
#--------------------------------------------------------

set (OSM2PGROUTING_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/include")
message(STATUS "LIBPQXX_INCLUDE_DIRS: ${LIBPQXX_INCLUDE_DIRS}")
message(STATUS "PQXX_INCLUDE_DIR: ${PQXX_INCLUDE_DIR}")
message(STATUS "POSTGRESQL_INCLUDE_DIR: ${POSTGRESQL_INCLUDE_DIR}")
message(STATUS "EXPAT_INCLUDE_DIRS: ${EXPAT_INCLUDE_DIRS}")
message(STATUS "Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}")
message(STATUS "POSTGRESQL_LIBRARIES: ${POSTGRESQL_LIBRARIES}")
message(STATUS "Boost_LIBRARIES: ${boost_LIBRARIES}")
message(STATUS "LIBPQXX_LIBRARIES: ${LIBPQXX_LIBRARIES}")
message(STATUS "PQXX_LIBRARIES: ${PQXX_LIBRARIES}")

INCLUDE_DIRECTORIES(src
${LIBPQXX_INCLUDE_DIRS}
${POSTGRESQL_INCLUDE_DIR}
${EXPAT_INCLUDE_DIRS}
${Boost_INCLUDE_DIRS}
${OSM2PGROUTING_INCLUDE_DIRS}
)

ADD_EXECUTABLE(osm2pgrouting ${osm2pgrouting_lib_SOURCES})

TARGET_LINK_LIBRARIES(osm2pgrouting
${LIBPQXX_LIBRARIES}
${PQXX_LIBRARIES}
${POSTGRESQL_LIBRARIES}
${EXPAT_LIBRARIES}
${Boost_LIBRARIES}
Expand Down
13 changes: 13 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
osm2pgRouting 2.3.8

* Removing travis tests
* Updated FindPQXX to get the version
* Adding github actions for compilation:
* Postgres 9.6 to 13
* libpqxx 6 & 7
* Minimum Version Postgres 9.6 (supported version at this time)
* Minimum Version libpqxx 6
* C++ minimum standard depends on libpqxx
* For version libpqxx 6: C++14
* For version libpqxx 7: C++17

osm2pgRouting 2.3.7

* fix: Way - fixed bug handling oneway false conditions
Expand Down
Loading