diff options
author | Roger Meier <roger@apache.org> | 2015-04-12 16:10:35 +0200 |
---|---|---|
committer | Roger Meier <roger@apache.org> | 2015-04-12 16:10:35 +0200 |
commit | 2659381e7f94b825c0b1ff6e80a119035a4a0de5 (patch) | |
tree | 6b2ed66fbace72dbac5d1026dc176bc763234f0f /build | |
parent | 79e971e7de6bfe586872323e548e8c23f79c5f08 (diff) | |
download | thrift-2659381e7f94b825c0b1ff6e80a119035a4a0de5.tar.gz |
THRIFT-2850 CMake for Apache Thrift
add test/cpp and lib/py
Diffstat (limited to 'build')
-rw-r--r-- | build/cmake/DefineOptions.cmake | 10 | ||||
-rw-r--r-- | build/cmake/FindLibevent.cmake | 39 | ||||
-rw-r--r-- | build/cmake/README.md | 2 |
3 files changed, 48 insertions, 3 deletions
diff --git a/build/cmake/DefineOptions.cmake b/build/cmake/DefineOptions.cmake index 457deb6a6..f2eb76d25 100644 --- a/build/cmake/DefineOptions.cmake +++ b/build/cmake/DefineOptions.cmake @@ -71,7 +71,12 @@ CMAKE_DEPENDENT_OPTION(WITH_C_GLIB "Build C (GLib) library" ON find_package(Java QUIET) find_package(Ant QUIET) CMAKE_DEPENDENT_OPTION(WITH_JAVA "Build Java library" ON - "BUILD_LIBRARIES;JAVA_FOUND;Ant_FOUND" OFF) + "BUILD_LIBRARIES;JAVA_FOUND;ANT_FOUND" OFF) + +# Python +include(FindPythonInterp QUIET) +CMAKE_DEPENDENT_OPTION(WITH_PYTHON "Build Python library" ON + "BUILD_LIBRARIES;PYTHONINTERP_FOUND" OFF) # Common library options option(WITH_SHARED_LIB "Build shared libraries" ON) @@ -92,11 +97,12 @@ message(STATUS "Build configuration Summary") message(STATUS " Build Thrift compiler: ${BUILD_COMPILER}") message(STATUS " Build with unit tests: ${BUILD_TESTING}") message(STATUS " Build examples: ${BUILD_EXAMPLES}") -message(STATUS " Build Thrfit libraries: ${BUILD_LIBRARIES}") +message(STATUS " Build Thrift libraries: ${BUILD_LIBRARIES}") message(STATUS " Language libraries:") message(STATUS " Build C++ library: ${WITH_CPP}") message(STATUS " Build C (GLib) library: ${WITH_C_GLIB}") message(STATUS " Build Java library: ${WITH_JAVA}") +message(STATUS " Build Python library: ${WITH_PYTHON}") message(STATUS " Library features:") message(STATUS " Build shared libraries: ${WITH_SHARED_LIB}") message(STATUS " Build static libraries: ${WITH_STATIC_LIB}") diff --git a/build/cmake/FindLibevent.cmake b/build/cmake/FindLibevent.cmake new file mode 100644 index 000000000..1eac31558 --- /dev/null +++ b/build/cmake/FindLibevent.cmake @@ -0,0 +1,39 @@ +# find LibEvent +# an event notification library (http://libevent.org/) +# +# Usage: +# LIBEVENT_INCLUDE_DIRS, where to find LibEvent headers +# LIBEVENT_LIBRARIES, LibEvent libraries +# Libevent_FOUND, If false, do not try to use libevent + +set(LibEvent_EXTRA_PREFIXES /usr/local /opt/local "$ENV{HOME}") +foreach(prefix ${LibEvent_EXTRA_PREFIXES}) + list(APPEND LibEvent_INCLUDE_PATHS "${prefix}/include") + list(APPEND LibEvent_LIBRARIES_PATHS "${prefix}/lib") +endforeach() + +find_path(LIBEVENT_INCLUDE_DIRS event.h PATHS ${LibEvent_INCLUDE_PATHS}) +find_library(LIBEVENT_LIBRARIES NAMES event PATHS ${LibEvent_LIBRARIES_PATHS}) + +if (LIBEVENT_LIBRARIES AND LIBEVENT_INCLUDE_DIRS) + set(Libevent_FOUND TRUE) + set(LIBEVENT_LIBRARIES ${LIBEVENT_LIBRARIES}) +else () + set(Libevent_FOUND FALSE) +endif () + +if (Libevent_FOUND) + if (NOT Libevent_FIND_QUIETLY) + message(STATUS "Found libevent: ${LIBEVENT_LIBRARIES}") + endif () +else () + if (LibEvent_FIND_REQUIRED) + message(FATAL_ERROR "Could NOT find libevent.") + endif () + message(STATUS "libevent NOT found.") +endif () + +mark_as_advanced( + LIBEVENT_LIBRARIES + LIBEVENT_INCLUDE_DIRS + ) diff --git a/build/cmake/README.md b/build/cmake/README.md index a5dde191b..d76a96edb 100644 --- a/build/cmake/README.md +++ b/build/cmake/README.md @@ -21,6 +21,7 @@ just do this: if you use a specific toolchain pass it to cmake, the same for options: cmake -DCMAKE_TOOLCHAIN_FILE=${THRIFT_SRC}/contrib/mingw32-toolchain.cmake ${THRIFT_SRC} + cmake -DCMAKE_C_COMPILER=clang-3.5 -DCMAKE_CXX_COMPILER=clang++-3.5 ${THRIFT_SRC} cmake -DTHRIFT_COMPILER_HS=OFF ${THRIFT_SRC} cmake -DWITH_ZLIB=ON ${THRIFT_SRC} @@ -41,7 +42,6 @@ to generate an installer and distribution package do this: * build test * with/without language lib/<lang>/ * enable/disable -* make check (QUESTION: Is test the default CMake target?) * make cross * make dist (create an alias to make package_source) * make doc |