Skip to content

Commit 8afedaa

Browse files
committed
Sync osmium tool cmake settings
1 parent 8c6230b commit 8afedaa

File tree

4 files changed

+114
-66
lines changed

4 files changed

+114
-66
lines changed

tools/osmium/CMakeLists.txt

Lines changed: 49 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
1-
PROJECT(getrestirction)
2-
CMAKE_MINIMUM_REQUIRED(VERSION 3.2)
1+
cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
32

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

9+
PROJECT(getrestrictions VERSION 3.0.0
10+
LANGUAGES C CXX)
11+
1012
LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
1113
SET(SHARE_DIR "/usr/share/getrestrictions")
1214

13-
FIND_PACKAGE(PostgreSQL REQUIRED)
14-
find_package(LibPQXX REQUIRED)
15-
FIND_PACKAGE(EXPAT REQUIRED)
15+
find_package(PostgreSQL REQUIRED)
16+
find_package(PQXX REQUIRED)
17+
include_directories(${PQXX_INCLUDE_DIR})
18+
find_package(EXPAT REQUIRED)
1619

1720

1821
find_package(Osmium REQUIRED COMPONENTS io pbf xml)
@@ -22,53 +25,77 @@ endif()
2225
include_directories(SYSTEM ${OSMIUM_INCLUDE_DIRS})
2326

2427

28+
FILE(GLOB SRC "${CMAKE_SOURCE_DIR}/src/*.cpp" "${CMAKE_SOURCE_DIR}/src/*/*.cpp")
2529

30+
#---------------------------------------------
31+
# C++ Compiler requirements
32+
#---------------------------------------------
33+
#---------------------------------------------
34+
35+
#---------------------------------------------
36+
# Boost
37+
#---------------------------------------------
38+
#---------------------------------------------
39+
find_package(Boost ${BOOST_MINIMUM_VERSION} REQUIRED COMPONENTS program_options)
40+
if (NOT Boost_VERSION_MACRO)
41+
set(Boost_VERSION_MACRO ${Boost_VERSION})
42+
endif()
43+
add_definitions(-DBoost_VERSION_MACRO=${Boost_VERSION_MACRO})
44+
add_definitions(-DBOOST_ALLOW_DEPRECATED_HEADERS)
45+
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
2646

2747

28-
29-
FIND_PACKAGE(Boost)
30-
if(Boost_INCLUDE_DIRS)
31-
message(STATUS "Boost headers were found here: ${Boost_INCLUDE_DIRS}")
32-
else(Boost_INCLUDE_DIRS)
33-
message(FATAL_ERROR " Please check your Boost installation ")
34-
endif(Boost_INCLUDE_DIRS)
35-
36-
FIND_PACKAGE(Boost COMPONENTS program_options REQUIRED)
37-
38-
FILE(GLOB SRC "${CMAKE_SOURCE_DIR}/src/*.cpp" "${CMAKE_SOURCE_DIR}/src/*/*.cpp")
48+
message(STATUS "PQXX_VERSION=${PQXX_VERSION}")
49+
if (PQXX_VERSION VERSION_GREATER_EQUAL "7.0.0")
50+
set(CMAKE_CXX_STANDARD 17)
51+
else()
52+
add_definitions(-DPQXX_DISCONNECT)
53+
set(CMAKE_CXX_STANDARD 14)
54+
endif()
3955

4056
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FILE_OFFSET_BITS=64 -std=c++0x")
4157
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -g -Wconversion -pedantic -Wextra -frounding-math -Wno-deprecated -fmax-errors=10")
4258

59+
if(WIN32 AND MSVC)
60+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_CRT_SECURE_NO_DEPRECATE")
61+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_SCL_SECURE_NO_DEPRECATE")
62+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS")
63+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_SCL_SECURE_NO_WARNINGS")
64+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_CRT_NONSTDC_NO_DEPRECATE")
65+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -EHsc")
66+
endif()
67+
68+
#--------------------------------------------------------
4369

4470
set (OSM2PGROUTING_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/include")
45-
message(STATUS "LIBPQXX_INCLUDE_DIRS: ${LIBPQXX_INCLUDE_DIRS}")
71+
message(STATUS "PQXX_INCLUDE_DIRS: ${PQXX_INCLUDE_DIRS}")
4672
message(STATUS "POSTGRESQL_INCLUDE_DIR: ${POSTGRESQL_INCLUDE_DIR}")
4773
message(STATUS "EXPAT_INCLUDE_DIRS: ${EXPAT_INCLUDE_DIRS}")
4874
message(STATUS "Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}")
4975
message(STATUS "POSTGRESQL_LIBRARIES: ${POSTGRESQL_LIBRARIES}")
5076
message(STATUS "Boost_LIBRARIES: ${boost_LIBRARIES}")
51-
message(STATUS "LIBPQXX_LIBRARIES: ${LIBPQXX_LIBRARIES}")
77+
message(STATUS "PQXX_LIBRARIES: ${PQXX_LIBRARIES}")
5278

5379
INCLUDE_DIRECTORIES(src
54-
${LIBPQXX_INCLUDE_DIRS}
5580
${POSTGRESQL_INCLUDE_DIR}
5681
${EXPAT_INCLUDE_DIRS}
57-
${Boost_INCLUDE_DIRS}
5882
${OSM2PGROUTING_INCLUDE_DIRS}
5983
)
6084

6185
ADD_EXECUTABLE(getrestrictions ${SRC})
6286

6387
TARGET_LINK_LIBRARIES(getrestrictions
64-
${LIBPQXX_LIBRARIES}
88+
${PQXX_LIBRARIES}
6589
${POSTGRESQL_LIBRARIES}
6690
${EXPAT_LIBRARIES}
6791
${Boost_LIBRARIES}
6892
${OSMIUM_LIBRARIES}
6993
)
7094

7195
INSTALL(TARGETS getrestrictions
72-
RUNTIME DESTINATION "/usr/bin"
96+
RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin"
7397
)
7498

99+
if(WIN32)
100+
target_link_libraries(osm2pgrouting wsock32 ws2_32)
101+
endif()

tools/osmium/cmake/FindLibPQXX.cmake

Lines changed: 0 additions & 43 deletions
This file was deleted.

tools/osmium/cmake/FindOsmium.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ set(_osmium_include_path
6565
)
6666

6767
# Look for the header file.
68-
find_path(OSMIUM_INCLUDE_DIR osmium/osm.hpp
68+
find_path(OSMIUM_INCLUDE_DIR osmium/version.hpp
6969
PATH_SUFFIXES include
7070
PATHS ${_osmium_include_path}
7171
)

tools/osmium/cmake/FindPQXX.cmake

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# - Find libpqxx
2+
# Find the libpqxx includes and client library
3+
# This module defines
4+
# PQXX_INCLUDE_DIRS
5+
# PQXX_LIBRARIES
6+
# PQXX_FOUND
7+
8+
include (FindPackageHandleStandardArgs)
9+
10+
#
11+
# Look for an installation.
12+
#
13+
find_path(
14+
PQXX_INCLUDE_DIR
15+
NAMES pqxx/pqxx
16+
PATHS
17+
${_PQXX_DIR}/include
18+
${_PQXX_DIR}
19+
${CMAKE_INSTALL_PREFIX}/include
20+
/usr/local/pgsql/include
21+
/usr/local/include
22+
/usr/include
23+
DOC "pqxx include directories"
24+
)
25+
mark_as_advanced (PQXX_INCLUDE_DIR)
26+
27+
find_library (PQXX_LIBRARIES
28+
NAMES pqxx
29+
DOC "pqxx library"
30+
)
31+
mark_as_advanced (PQXX_LIBRARY)
32+
33+
34+
if (PQXX_INCLUDE_DIR)
35+
if (EXISTS "${PQXX_INCLUDE_DIR}/pqxx/version.hxx")
36+
set (PQXX_VERSION_FILE "${PQXX_INCLUDE_DIR}/pqxx/version.hxx")
37+
message(STATUS "PQXX_VERSION_FILE=${PQXX_VERSION_FILE}")
38+
file(READ "${PQXX_VERSION_FILE}" PQXX_FILE)
39+
string(REGEX MATCH "PQXX_VERSION \"([0-9]*).([0-9]*).([0-9]*)" PQXX_VERSION_LINE ${PQXX_FILE})
40+
string(REGEX REPLACE "PQXX_VERSION \"([0-9]*).([0-9]*).([0-9]*)" "\\1" PQXX_VERSION_MAYOR ${PQXX_VERSION_LINE})
41+
string(REGEX REPLACE "PQXX_VERSION \"([0-9]*).([0-9]*).([0-9]*)" "\\2" PQXX_VERSION_MINOR ${PQXX_VERSION_LINE})
42+
string(REGEX REPLACE "PQXX_VERSION \"([0-9]*).([0-9]*).([0-9]*)" "\\3" PQXX_VERSION_MICRO ${PQXX_VERSION_LINE})
43+
set(PQXX_VERSION "${PQXX_VERSION_MAYOR}.${PQXX_VERSION_MINOR}.${PQXX_VERSION_MICRO}")
44+
message(STATUS "PQXX_VERSION=${PQXX_VERSION}")
45+
message(STATUS "PQXX_VERSION_MAYOR=${PQXX_VERSION_MAYOR}")
46+
message(STATUS "PQXX_VERSION_MINOR=${PQXX_VERSION_MINOR}")
47+
message(STATUS "PQXX_VERSION_MICRO=${PQXX_VERSION_MICRO}")
48+
unset(PQXX_VERSION_MAYOR)
49+
unset(PQXX_VERSION_MINOR)
50+
unset(PQXX_VERSION_MICRO)
51+
unset(PQXX_FILE)
52+
unset(PQXX_VERSION_LINE)
53+
endif()
54+
endif()
55+
56+
57+
58+
FIND_PACKAGE_HANDLE_STANDARD_ARGS("PQXX"
59+
VERSION_VAR PQXX_VERSION
60+
REQUIRED_VARS PQXX_LIBRARIES PQXX_INCLUDE_DIR
61+
FAIL_MESSAGE "libpqxx couldn't be found"
62+
)
63+
64+

0 commit comments

Comments
 (0)