Skip to content

Commit ab6c734

Browse files
committed
re-add building of wheels
1 parent 1654473 commit ab6c734

File tree

3 files changed

+71
-11
lines changed

3 files changed

+71
-11
lines changed

CMakeLists.txt

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
cmake_minimum_required(VERSION 3.15...4.0)
22
project(osmium LANGUAGES CXX)
33

4+
option(WITH_LZ4 "Build with lz4 support for PBF files" ON)
5+
6+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
7+
message(STATUS "Module path: ${CMAKE_MODULE_PATH}")
8+
49
set(PYBIND11_FINDPYTHON ON)
510
find_package(pybind11 CONFIG REQUIRED)
611

@@ -30,4 +35,68 @@ else()
3035
#######################################################################
3136
# wheel build
3237
#
38+
39+
set(OSMIUM_COMPONENTS io pbf xml)
40+
41+
if(WITH_LZ4)
42+
find_package(LZ4)
43+
if (LZ4_FOUND)
44+
list(APPEND OSMIUM_COMPONENTS lz4)
45+
message(STATUS "lz4 library found, compiling with it")
46+
else()
47+
message(WARNING "lz4 library not found, compiling without it")
48+
endif()
49+
else()
50+
message(STATUS "Building without lz4 support: Set WITH_LZ4=ON to change this")
51+
endif()
52+
53+
find_package(Osmium 2.16 REQUIRED COMPONENTS ${OSMIUM_COMPONENTS})
54+
include_directories(SYSTEM ${OSMIUM_INCLUDE_DIRS})
55+
56+
if(NOT "${CMAKE_CXX_STANDARD}")
57+
set(CMAKE_CXX_STANDARD 17)
58+
endif()
59+
60+
message(STATUS "Building in C++${CMAKE_CXX_STANDARD} mode")
61+
62+
find_package(Boost 1.55 REQUIRED COMPONENTS)
63+
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
64+
65+
# Modules without any Python code and just one source file.
66+
foreach(PYMOD geom index io area)
67+
pybind11_add_module(${PYMOD} lib/${PYMOD}.cc)
68+
target_link_libraries(${PYMOD} PRIVATE ${OSMIUM_LIBRARIES})
69+
install(TARGETS ${PYMOD} DESTINATION osmium)
70+
endforeach()
71+
72+
# Modules where additional Python code is in src (C++-part will be private).
73+
foreach(PYMOD osm replication)
74+
pybind11_add_module(_${PYMOD} lib/${PYMOD}.cc)
75+
target_link_libraries(_${PYMOD} PRIVATE ${OSMIUM_LIBRARIES})
76+
install(TARGETS _${PYMOD} DESTINATION osmium/${PYMOD})
77+
endforeach()
78+
79+
# Modules with multiple source files.
80+
pybind11_add_module(_osmium
81+
lib/osmium.cc
82+
lib/merge_input_reader.cc
83+
lib/node_location_handler.cc
84+
lib/simple_writer.cc
85+
lib/file_iterator.cc
86+
lib/id_tracker.cc)
87+
install(TARGETS _osmium DESTINATION osmium)
88+
target_link_libraries(_osmium PRIVATE ${OSMIUM_LIBRARIES})
89+
90+
pybind11_add_module(filter
91+
lib/filter.cc
92+
lib/empty_tag_filter.cc
93+
lib/key_filter.cc
94+
lib/tag_filter.cc
95+
lib/id_filter.cc
96+
lib/entity_filter.cc
97+
lib/geo_interface_filter.cc)
98+
install(TARGETS filter DESTINATION osmium)
99+
target_link_libraries(filter PRIVATE ${OSMIUM_LIBRARIES})
100+
101+
33102
endif()

cmake/FindOsmium.cmake

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,10 @@
5555
#
5656
#----------------------------------------------------------------------
5757

58-
# This is the list of directories where we look for osmium includes.
59-
set(_osmium_include_path
60-
../libosmium
61-
~/Library/Frameworks
62-
/Library/Frameworks
63-
/opt/local # DarwinPorts
64-
/opt
65-
)
66-
6758
# Look for the header file.
6859
find_path(OSMIUM_INCLUDE_DIR osmium/version.hpp
6960
PATH_SUFFIXES include
70-
PATHS ${_osmium_include_path}
61+
HINTS $ENV{LIBOSMIUM_PREFIX} ${CMAKE_SOURCE_DIR}/contrib/libosmium
7162
)
7263

7364
# Check libosmium version number

cmake/FindProtozero.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
# find include path
4040
find_path(PROTOZERO_INCLUDE_DIR protozero/version.hpp
4141
PATH_SUFFIXES include
42-
PATHS ${CMAKE_SOURCE_DIR}/../protozero
42+
HINTS $ENV{PROTOZERO_PREFIX} ${CMAKE_SOURCE_DIR}/contrib/protozero
4343
)
4444

4545
# Check version number

0 commit comments

Comments
 (0)