Skip to content

Commit

Permalink
Merge branch 'release_0.1.3'
Browse files Browse the repository at this point in the history
  • Loading branch information
hoxnox committed Jun 22, 2016
2 parents d0a423b + b146168 commit 08dccb1
Show file tree
Hide file tree
Showing 12 changed files with 7,004 additions and 133 deletions.
116 changes: 52 additions & 64 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ option(WITH_DOCS "Generate docs." OFF)
option(WITH_SHARED_LIBS "Build shared libraries." OFF)
option(WITH_STATIC_LIBS "Build static libraries." ON)
option(WITH_dzip "Build dzip compress utility" ON)
option(WITH_SYSTEM_GLOG "Use system google-log" OFF)
option(WITH_SYSTEM_ZMQ "Use system zeromq" OFF)
option(WITH_CONAN "Use conan as a dependency manager" OFF)
option(CSIO_FORCE_SHARED_CRT
"Use shared run-time lib even when csio is built as static lib." OFF)
option(WITH_GREP "Build naive grep utility" OFF)

########################################################################
# general
Expand All @@ -28,7 +29,7 @@ nx_configure()

set(csio_VERSION_MAJOR 0)
set(csio_VERSION_MINOR 1)
set(csio_VERSION_PATCH 2)
set(csio_VERSION_PATCH 3)
# configuration header
set(TEST_SAMPLES_DIR "${PROJECT_SOURCE_DIR}/test/samples/")
set(TEST_TMP_DIR "/tmp")
Expand All @@ -47,76 +48,55 @@ include_directories("${PROJECT_SOURCE_DIR}/src"
########################################################################
# zlib

find_package(ZLIB REQUIRED)
include_directories(${ZLIB_INCLUDE_DIRS})
list(APPEND LIBRARIES ${ZLIB_LIBRARIES})
if (NOT WITH_CONAN)
find_package(ZLIB REQUIRED)
include_directories(${ZLIB_INCLUDE_DIRS})
list(APPEND LIBRARIES ${ZLIB_LIBRARIES})
endif()

########################################################################
# conan

if (WITH_CONAN)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
list(APPEND LIBRARIES ${CONAN_LIBS})
endif()

########################################################################
# dzip

if(WITH_dzip)

####################################################################
# zmq
if (WITH_SYSTEM_ZMQ)
set(ZMQ_USE_STATIC_LIBS true)
find_package(ZMQ REQUIRED)
else()
include(ExternalProject)
set(ZMQ_ROOT "${CMAKE_CURRENT_BINARY_DIR}/zmq")
ExternalProject_Add(zmq
URL "${PROJECT_SOURCE_DIR}/third-party/zeromq-4.1.2.tar.gz"
URL_MD5 "159c0c56a895472f02668e692d122685"
PATCH_COMMAND ./autogen.sh
CONFIGURE_COMMAND ./configure --enable-static --disable-shared --without-libsodium --without-libgssapi_krb5 --without-documentation --prefix <INSTALL_DIR>
INSTALL_DIR "${ZMQ_ROOT}"
BUILD_IN_SOURCE 1
)
set(ZMQ_INCLUDE_DIR ${ZMQ_ROOT}/include)
set(ZMQ_LIBRARIES ${ZMQ_ROOT}/lib/libzmq.a)
list(APPEND EXTERNAL_DEPS zmq)
if (NOT WITH_CONAN)
####################################################################
# zmq
if (WITH_SYSTEM_ZMQ)
set(ZMQ_USE_STATIC_LIBS true)
find_package(ZMQ REQUIRED)
else()
include(ExternalProject)
set(ZMQ_ROOT "${CMAKE_CURRENT_BINARY_DIR}/zmq")
ExternalProject_Add(zmq
URL "${PROJECT_SOURCE_DIR}/third-party/zeromq-4.1.2.tar.gz"
URL_MD5 "159c0c56a895472f02668e692d122685"
PATCH_COMMAND ./autogen.sh
CONFIGURE_COMMAND ./configure --enable-static --disable-shared --without-libsodium --without-libgssapi_krb5 --without-documentation --prefix <INSTALL_DIR>
INSTALL_DIR "${ZMQ_ROOT}"
BUILD_IN_SOURCE 1
)
set(ZMQ_INCLUDE_DIR ${ZMQ_ROOT}/include)
set(ZMQ_LIBRARIES ${ZMQ_ROOT}/lib/libzmq.a)
list(APPEND EXTERNAL_DEPS zmq)
endif()

include_directories(${ZMQ_INCLUDE_DIR})
list(APPEND LIBRARIES ${ZMQ_LIBRARIES})
endif()

####################################################################
# glog
if (WITH_SYSTEM_GLOG)
set(Glog_USE_STATIC_LIBS true)
find_package(Glog REQUIRED)
else()
include(ExternalProject)
set(LIBUNWIND_ROOT "${CMAKE_CURRENT_BINARY_DIR}/libunwind")
ExternalProject_Add(libunwind
URL "${PROJECT_SOURCE_DIR}/third-party/libunwind-1.1.tar.gz"
URL_MD5 "fb4ea2f6fbbe45bf032cd36e586883ce"
CONFIGURE_COMMAND ./configure --disable-minidebuginfo --enable-static --disable-shared --prefix <INSTALL_DIR>
INSTALL_DIR "${LIBUNWIND_ROOT}"
BUILD_IN_SOURCE 1
)
set(LIBUNWIND_INCLUDE_DIR ${LIBUNWIND_ROOT}/include)
set(LIBUNWIND_LIBRARIES ${LIBUNWIND_ROOT}/lib/libunwind.a)

set(Glog_ROOT "${CMAKE_CURRENT_BINARY_DIR}/glog")
ExternalProject_Add(glog
URL "${PROJECT_SOURCE_DIR}/third-party/glog-0.3.3.tar.gz"
URL_MD5 "a6fd2c22f8996846e34c763422717c18"
CONFIGURE_COMMAND ./configure --enable-static --disable-shared --prefix <INSTALL_DIR>
INSTALL_DIR "${Glog_ROOT}"
BUILD_IN_SOURCE 1
)
set(Glog_INCLUDE_DIR ${Glog_ROOT}/include)
set(Glog_LIBRARIES ${Glog_ROOT}/lib/libglog.a ${LIBUNWIND_LIBRARIES})
add_dependencies(glog libunwind)
message(STATUS "Found external dependency GLOG: " ${Glog_INCLUDE_DIR})
list(APPEND EXTERNAL_DEPS glog)
endif()

include_directories(${ZMQ_INCLUDE_DIR})
include_directories(${Glog_INCLUDE_DIR})
list(APPEND LIBRARIES ${Glog_LIBRARIES} ${ZMQ_LIBRARIES} pthread rt)
find_package(Threads REQUIRED)
if (NOT CMAKE_USE_PTHREADS_INIT)
message(FATAL_ERROR "dzip utility needs pthreads")
endif()
list(APPEND LIBRARIES ${CMAKE_THREAD_LIBS_INIT})

add_library(dzip_internal STATIC
./src/ProcessManagerBase.hpp
./src/ProcessManagerBase.cpp
Expand All @@ -133,7 +113,7 @@ if(WITH_dzip)
)
set(DZIP_SRC ./src/dzip.cpp)
add_executable(dzip ${DZIP_SRC})
if (EXTERNAL_DEPS)
if (EXTERNAL_DEPS AND NOT WITH_CONAN)
add_dependencies(dzip_internal ${EXTERNAL_DEPS})
endif()
target_link_libraries(dzip dzip_internal ${LIBRARIES})
Expand All @@ -154,6 +134,14 @@ if (WITH_SHARED_LIBS)
endif()
list(APPEND LIBRARIES csio)

########################################################################
# grep

if (WITH_GREP)
add_executable(csio_grep misc/grep.c)
target_link_libraries(csio_grep ${LIBRARIES})
endif()

########################################################################
# docs

Expand Down
51 changes: 0 additions & 51 deletions cmake/Modules/FindGlog.cmake

This file was deleted.

50 changes: 50 additions & 0 deletions conanfile.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
from conans import ConanFile, CMake

class SnappyStreamConan(ConanFile):
name = "csio"
version = "0.1.3"
requires = ""
settings = "os", "compiler", "build_type", "arch"
options = {"shared": [True, False], "dzip": [True, False]}
default_options = "shared=False", "dzip=False", "zlib:shared=False", "libzmq:shared=False"
generators = "cmake"
exports = ("include/*.h",
"src/*.h", "src/*.c",
"src/*.hpp", "src/*.cpp",
"src/csio_config.cfg",
"cmake/ext/nx_utils.cmake",
"CMakeLists.txt",
"README.markdown",
"LICENSE")

def requirements(self):
if self.options.dzip:
self.requires("zlib/1.2.8@lasote/stable")
self.requires("libzmq/4.1.5@memsharded/stable")
else:
self.requires("zlib/1.2.8@lasote/stable")

def build(self):
cmake = CMake(self.settings)
other_opts = ""
if self.options.dzip:
other_opts = "-DWITH_dzip=1"
else:
other_opts = "-DWITH_dzip=0"
self.run('cmake %s -DWITH_CONAN=1 -DCMAKE_INSTALL_PREFIX=./distr %s %s' %
(self.conanfile_directory, cmake.command_line, other_opts))
self.run("cmake --build . %s" % cmake.build_config)
self.run("make install")


def package(self):
if self.options.dzip:
self.copy("dzip", dst="bin", src="distr/bin")
self.copy("*.h", dst="include", src="distr/include")
self.copy("*.a", dst="lib", src="distr/lib")
self.copy("*.lib", dst="lib", src="distr/lib")
self.copy("*.dll", dst="lib", src="distr/lib")

def package_info(self):
self.cpp_info.libs = ["csio"]

Loading

0 comments on commit 08dccb1

Please sign in to comment.