From 72fdfb4ccb897c40e29c795ed2655b32ea02aa6a Mon Sep 17 00:00:00 2001 From: alex85k Date: Tue, 4 Jun 2013 17:38:55 +0500 Subject: [PATCH 1/5] Added CMAKE project files and windows-compatibilty to osmpbf-outline --- CMakeLists.txt | 13 +++++++++++++ src/CMakeLists.txt | 17 +++++++++++++++++ tools/CMakeLists.txt | 31 +++++++++++++++++++++++++++++++ tools/osmpbf-outline.cpp | 15 ++++++++++++--- 4 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 src/CMakeLists.txt create mode 100644 tools/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..1015b9d --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,13 @@ +PROJECT(OSMBinary) +cmake_minimum_required(VERSION 2.8.5) + +SET(SEARCH_PREFIX CACHE PATH "Additional prefix to search libraries (Protobuf etc.)" ) + +SET(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${SEARCH_PREFIX}) + +include(FindProtobuf) +find_package(Protobuf REQUIRED) +include_directories(${PROTOBUF_INCLUDE_DIR}) + +add_subdirectory(src) +add_subdirectory(tools) \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..2124cf0 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,17 @@ +PROTOBUF_GENERATE_CPP(CPPS HS fileformat.proto osmformat.proto) + +if(MSVC) + set(CMAKE_CXX_FLAGS "/O3") +else() + set(CMAKE_CXX_FLAGS "-O3") +endif() + +add_library(osmpbf STATIC ${CPPS}) + +set_target_properties(osmpbf PROPERTIES LINKER_LANGUAGE CXX LANGUAGE CXX) + +SET(INCLUDE_INSTALL "include/osmpbf") +FILE(GLOB files "${CMAKE_CURRENT_SOURCE_DIR}/*.h") +INSTALL(FILES ${files} DESTINATION ${INCLUDE_INSTALL}) +INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../include/osmpbf/osmpbf.h" DESTINATION ${INCLUDE_INSTALL}) +install(TARGETS osmpbf LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt new file mode 100644 index 0000000..bf6b28f --- /dev/null +++ b/tools/CMakeLists.txt @@ -0,0 +1,31 @@ +SET(PROJECT osmpbf-outline) +PROJECT(${PROJECT}) + +if(MSVC) + set(CMAKE_CXX_FLAGS "/O3") +else() + set(CMAKE_CXX_FLAGS "-O3 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64") +endif() + +SET(CPP_SRC osmpbf-outline.cpp) +SET(HPP_SRC "") +SET(C_SRC "") + +add_executable(${PROJECT} ${HPP_SRC} ${CPP_SRC} ${C_SRC}) +set_target_properties(${PROJECT} PROPERTIES LINKER_LANGUAGE CXX LANGUAGE CXX) + +find_package(ZLIB REQUIRED) +include_directories(${ZLIB_INCLUDE_DIR}) + +INCLUDE (CheckIncludeFiles) +CHECK_INCLUDE_FILES(winsock2.h HAVE_WINSOCK) +if(HAVE_WINSOCK) + add_definitions( -DD_HAVE_WINSOCK ) + SET(WINSOCK_LIB ws2_32) +endif() + + +find_package(Threads) +target_link_libraries(${PROJECT} ${WINSOCK_LIB} ${ZLIB_LIBRARY} osmpbf ${PROTOBUF_LITE_LIBRARIES}) + +INSTALL(TARGETS ${PROJECT} RUNTIME DESTINATION bin) \ No newline at end of file diff --git a/tools/osmpbf-outline.cpp b/tools/osmpbf-outline.cpp index d72bd55..18d5ff9 100644 --- a/tools/osmpbf-outline.cpp +++ b/tools/osmpbf-outline.cpp @@ -10,8 +10,12 @@ // zlib compression is used inside the pbf blobs #include -// netinet provides the network-byte-order conversion function -#include +// netinet or winsock2 provides the network-byte-order conversion function +#ifdef D_HAVE_WINSOCK + #include +#else + #include +#endif // this is the header to pbf format #include @@ -86,7 +90,12 @@ void debug(const char* format, ...) { // application main method int main(int argc, char *argv[]) { // check if the output is a tty so we can use colors + +#ifdef WIN32 + usecolor = 0; +#else usecolor = isatty(1); +#endif static struct option long_options[] = { {"color", no_argument, 0, 'c'}, @@ -113,7 +122,7 @@ int main(int argc, char *argv[]) { err("usage: %s [--color] file.osm.pbf", argv[0]); // open specified file - FILE *fp = fopen(argv[optind], "r"); + FILE *fp = fopen(argv[optind], "rb"); // read while the file has not reached its end while(!feof(fp)) { From a06d895f63a0d5648beaa279bd07e9238ec88fec Mon Sep 17 00:00:00 2001 From: alex85k Date: Thu, 13 Jun 2013 22:51:02 +0600 Subject: [PATCH 2/5] Fix CMake scripts --- src/CMakeLists.txt | 7 +++++-- tools/CMakeLists.txt | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2124cf0..82535df 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -10,8 +10,11 @@ add_library(osmpbf STATIC ${CPPS}) set_target_properties(osmpbf PROPERTIES LINKER_LANGUAGE CXX LANGUAGE CXX) +ADD_CUSTOM_COMMAND(TARGET osmpbf POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/src/fileformat.pb.h ${CMAKE_SOURCE_DIR}/include/osmpbf) +ADD_CUSTOM_COMMAND(TARGET osmpbf POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/src/osmformat.pb.h ${CMAKE_SOURCE_DIR}/include/osmpbf) + SET(INCLUDE_INSTALL "include/osmpbf") -FILE(GLOB files "${CMAKE_CURRENT_SOURCE_DIR}/*.h") +FILE(GLOB files "${CMAKE_BINARY_DIR}/src/*.h") INSTALL(FILES ${files} DESTINATION ${INCLUDE_INSTALL}) -INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../include/osmpbf/osmpbf.h" DESTINATION ${INCLUDE_INSTALL}) +INSTALL(FILES "${CMAKE_SOURCE_DIR}/include/osmpbf/osmpbf.h" DESTINATION ${INCLUDE_INSTALL}) install(TARGETS osmpbf LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index bf6b28f..8f12706 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -11,6 +11,8 @@ SET(CPP_SRC osmpbf-outline.cpp) SET(HPP_SRC "") SET(C_SRC "") +include_directories("${CAMKE_SRC_DIR}/include") + add_executable(${PROJECT} ${HPP_SRC} ${CPP_SRC} ${C_SRC}) set_target_properties(${PROJECT} PROPERTIES LINKER_LANGUAGE CXX LANGUAGE CXX) From 05772fdf5d0cfde34c87cfb42be484dde3621fb5 Mon Sep 17 00:00:00 2001 From: Charlie Root Date: Tue, 9 Jul 2013 11:36:17 +0600 Subject: [PATCH 3/5] Fix building example and installation --- src/CMakeLists.txt | 3 +-- tools/CMakeLists.txt | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 82535df..16a4994 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -14,7 +14,6 @@ ADD_CUSTOM_COMMAND(TARGET osmpbf POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${ ADD_CUSTOM_COMMAND(TARGET osmpbf POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/src/osmformat.pb.h ${CMAKE_SOURCE_DIR}/include/osmpbf) SET(INCLUDE_INSTALL "include/osmpbf") -FILE(GLOB files "${CMAKE_BINARY_DIR}/src/*.h") +FILE(GLOB files "${CMAKE_SOURCE_DIR}/src/*.h") INSTALL(FILES ${files} DESTINATION ${INCLUDE_INSTALL}) -INSTALL(FILES "${CMAKE_SOURCE_DIR}/include/osmpbf/osmpbf.h" DESTINATION ${INCLUDE_INSTALL}) install(TARGETS osmpbf LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 8f12706..0a14450 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -10,8 +10,7 @@ endif() SET(CPP_SRC osmpbf-outline.cpp) SET(HPP_SRC "") SET(C_SRC "") - -include_directories("${CAMKE_SRC_DIR}/include") +include_directories("${CMAKE_SOURCE_DIR}/include") add_executable(${PROJECT} ${HPP_SRC} ${CPP_SRC} ${C_SRC}) set_target_properties(${PROJECT} PROPERTIES LINKER_LANGUAGE CXX LANGUAGE CXX) From 1078fd47f32c91715eedefc8664b8da49b6a2656 Mon Sep 17 00:00:00 2001 From: alex85k Date: Mon, 22 Jul 2013 23:13:26 +0600 Subject: [PATCH 4/5] More compilation fixes --- CMakeLists.txt | 4 +++- src/CMakeLists.txt | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1015b9d..0263928 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,4 +10,6 @@ find_package(Protobuf REQUIRED) include_directories(${PROTOBUF_INCLUDE_DIR}) add_subdirectory(src) -add_subdirectory(tools) \ No newline at end of file +if(NOT MSVC) +add_subdirectory(tools) +endif() \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 16a4994..a2334c9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -14,6 +14,6 @@ ADD_CUSTOM_COMMAND(TARGET osmpbf POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${ ADD_CUSTOM_COMMAND(TARGET osmpbf POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/src/osmformat.pb.h ${CMAKE_SOURCE_DIR}/include/osmpbf) SET(INCLUDE_INSTALL "include/osmpbf") -FILE(GLOB files "${CMAKE_SOURCE_DIR}/src/*.h") +FILE(GLOB files "${CMAKE_SOURCE_DIR}/include/osmpbf/*.h") INSTALL(FILES ${files} DESTINATION ${INCLUDE_INSTALL}) install(TARGETS osmpbf LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) From 56337c31d753a4ce489ccc9e956eff5910ca8bc7 Mon Sep 17 00:00:00 2001 From: alex85k Date: Tue, 23 Jul 2013 12:10:39 +0500 Subject: [PATCH 5/5] one more fix to install --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a2334c9..d752da1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -14,6 +14,6 @@ ADD_CUSTOM_COMMAND(TARGET osmpbf POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${ ADD_CUSTOM_COMMAND(TARGET osmpbf POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/src/osmformat.pb.h ${CMAKE_SOURCE_DIR}/include/osmpbf) SET(INCLUDE_INSTALL "include/osmpbf") -FILE(GLOB files "${CMAKE_SOURCE_DIR}/include/osmpbf/*.h") +SET(files ${CMAKE_SOURCE_DIR}/include/osmpbf/osmpbf.h ${CMAKE_BINARY_DIR}/src/osmformat.pb.h ${CMAKE_BINARY_DIR}/src/fileformat.pb.h) INSTALL(FILES ${files} DESTINATION ${INCLUDE_INSTALL}) install(TARGETS osmpbf LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)