You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@parquet.apache.org by we...@apache.org on 2017/05/22 20:14:52 UTC
parquet-cpp git commit: PARQUET-986: Improve MSVC build -
ThirdpartyToolchain - Thrift
Repository: parquet-cpp
Updated Branches:
refs/heads/master 3866e3c24 -> b5d9117dd
PARQUET-986: Improve MSVC build - ThirdpartyToolchain - Thrift
Author: rip.nsk <ri...@gmail.com>
Closes #336 from rip-nsk/PARQUET-986 and squashes the following commits:
03a227a [rip.nsk] Fix 'Thrift NOT found' message
6dd2e5a [rip.nsk] Improve definition of THRIFT_STATIC_LIB NAME and ensure it is "MD" build.
140c6cb [rip.nsk] Remove vendored libevent.
3e68a79 [rip.nsk] Replace flex_step by winflexbison_ep and fix dependency on zlib_ep
Project: http://git-wip-us.apache.org/repos/asf/parquet-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/parquet-cpp/commit/b5d9117d
Tree: http://git-wip-us.apache.org/repos/asf/parquet-cpp/tree/b5d9117d
Diff: http://git-wip-us.apache.org/repos/asf/parquet-cpp/diff/b5d9117d
Branch: refs/heads/master
Commit: b5d9117dd0e38bc8f50610bec75074f534606883
Parents: 3866e3c
Author: rip.nsk <ri...@gmail.com>
Authored: Mon May 22 16:14:46 2017 -0400
Committer: Wes McKinney <we...@twosigma.com>
Committed: Mon May 22 16:14:46 2017 -0400
----------------------------------------------------------------------
cmake_modules/FindThrift.cmake | 19 ++++--
cmake_modules/ThirdpartyToolchain.cmake | 88 ++++++++++------------------
2 files changed, 46 insertions(+), 61 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/b5d9117d/cmake_modules/FindThrift.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindThrift.cmake b/cmake_modules/FindThrift.cmake
index 6c5d9fe..25f5082 100644
--- a/cmake_modules/FindThrift.cmake
+++ b/cmake_modules/FindThrift.cmake
@@ -74,13 +74,24 @@ else ()
endif ()
if (THRIFT_FOUND)
- if (NOT THRIFT_FIND_QUIETLY)
+ if (NOT Thrift_FIND_QUIETLY)
message(STATUS "Thrift version: ${THRIFT_VERSION}")
endif ()
else ()
- message(STATUS "Thrift compiler/libraries NOT found. "
- "Thrift support will be disabled (${THRIFT_RETURN}, "
- "${THRIFT_INCLUDE_DIR}, ${THRIFT_STATIC_LIB})")
+ if (NOT Thrift_FIND_QUIETLY)
+ set(THRIFT_ERR_MSG "Thrift compiler/libraries NOT found: ${THRIFT_RETURN}")
+ set(THRIFT_ERR_MSG "${THRIFT_ERR_MSG} (${THRIFT_INCLUDE_DIR}, ${THRIFT_STATIC_LIB}).")
+ if ( _thrift_roots )
+ set(THRIFT_ERR_MSG "${THRIFT_ERR_MSG} Looked in ${_thrift_roots}.")
+ else ()
+ set(THRIFT_ERR_MSG "${THRIFT_ERR_MSG} Looked in system search paths.")
+ endif ()
+ if ( Thrift_FIND_REQUIRED )
+ message(FATAL_ERROR "${THRIFT_ERR_MSG}")
+ else ()
+ message(STATUS "${THRIFT_ERR_MSG}")
+ endif ()
+ endif ()
endif ()
http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/b5d9117d/cmake_modules/ThirdpartyToolchain.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake
index b40d101..edbb961 100644
--- a/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cmake_modules/ThirdpartyToolchain.cmake
@@ -179,21 +179,8 @@ if (NOT THRIFT_FOUND)
set(THRIFT_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/thrift_ep/src/thrift_ep-install")
set(THRIFT_HOME "${THRIFT_PREFIX}")
set(THRIFT_INCLUDE_DIR "${THRIFT_PREFIX}/include")
- IF (${UPPERCASE_BUILD_TYPE} STREQUAL "DEBUG")
- IF (MSVC)
- set(THRIFT_STATIC_LIB "${THRIFT_PREFIX}/lib/thriftmdd.lib")
- ELSE()
- set(THRIFT_STATIC_LIB "${THRIFT_PREFIX}/lib/libthriftd.a")
- ENDIF()
- ELSE()
- IF (MSVC)
- set(THRIFT_STATIC_LIB "${THRIFT_PREFIX}/lib/thriftmd.lib")
- ELSE()
- set(THRIFT_STATIC_LIB "${THRIFT_PREFIX}/lib/libthrift.a")
- ENDIF()
- ENDIF()
set(THRIFT_COMPILER "${THRIFT_PREFIX}/bin/thrift")
- set(THRIFT_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+ set(THRIFT_CMAKE_ARGS "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}"
"-DCMAKE_CXX_FLAGS=${EP_CXX_FLAGS}"
"-DCMAKE_C_FLAGS=${EP_C_FLAGS}"
"-DCMAKE_INSTALL_PREFIX=${THRIFT_PREFIX}"
@@ -207,16 +194,37 @@ if (NOT THRIFT_FOUND)
"-DWITH_CPP=ON"
"-DWITH_STATIC_LIB=ON"
)
+
+ set(THRIFT_STATIC_LIB_NAME "${CMAKE_STATIC_LIBRARY_PREFIX}thrift")
+ if (MSVC)
+ set(THRIFT_STATIC_LIB_NAME "${THRIFT_STATIC_LIB_NAME}md")
+ set(THRIFT_CMAKE_ARGS ${THRIFT_CMAKE_ARGS} "-DWITH_MT=OFF")
+ endif()
+ if (${UPPERCASE_BUILD_TYPE} STREQUAL "DEBUG")
+ set(THRIFT_STATIC_LIB_NAME "${THRIFT_STATIC_LIB_NAME}d")
+ endif()
+ set(THRIFT_STATIC_LIB "${THRIFT_PREFIX}/lib/${THRIFT_STATIC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+
if (MSVC)
- set (THRIFT_CMAKE_ARGS "-DLIBEVENT_ROOT=${CMAKE_CURRENT_BINARY_DIR}/thrift_ep-prefix/src/thrift_ep/thirdparty/src/Libevent-release-2.1.7-rc"
- "-DFLEX_EXECUTABLE=${CMAKE_CURRENT_BINARY_DIR}/thrift_ep-prefix/src/thrift_ep/thirdparty/dist/winflexbison/win_flex.exe"
- "-DBISON_EXECUTABLE=${CMAKE_CURRENT_BINARY_DIR}/thrift_ep-prefix/src/thrift_ep/thirdparty/dist/winflexbison/win_bison.exe"
- "-DZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIRS}"
- "-DZLIB_LIBRARY=${ZLIB_STATIC_LIB}"
- "-DWITH_SHARED_LIB=OFF"
- "-DWITH_PLUGIN=OFF"
- ${THRIFT_CMAKE_ARGS})
- set (THRIFT_DEPENDENCIES zlib_ep)
+ set(WINFLEXBISON_VERSION 2.4.9)
+ set(WINFLEXBISON_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/winflexbison_ep/src/winflexbison_ep-install")
+ ExternalProject_Add(winflexbison_ep
+ URL https://github.com/lexxmark/winflexbison/releases/download/v.${WINFLEXBISON_VERSION}/win_flex_bison-${WINFLEXBISON_VERSION}.zip
+ URL_HASH MD5=a2e979ea9928fbf8567e995e9c0df765
+ SOURCE_DIR ${WINFLEXBISON_PREFIX}
+ CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "")
+ set(THRIFT_DEPENDENCIES ${THRIFT_DEPENDENCIES} winflexbison_ep)
+
+ set(THRIFT_CMAKE_ARGS "-DFLEX_EXECUTABLE=${WINFLEXBISON_PREFIX}/win_flex.exe"
+ "-DBISON_EXECUTABLE=${WINFLEXBISON_PREFIX}/win_bison.exe"
+ "-DZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIRS}"
+ "-DZLIB_LIBRARY=${ZLIB_STATIC_LIB}"
+ "-DWITH_SHARED_LIB=OFF"
+ "-DWITH_PLUGIN=OFF"
+ ${THRIFT_CMAKE_ARGS})
+ if (ZLIB_VENDORED)
+ set(THRIFT_DEPENDENCIES ${THRIFT_DEPENDENCIES} zlib_ep)
+ endif()
endif()
if (CMAKE_VERSION VERSION_GREATER "3.2")
@@ -226,42 +234,8 @@ if (NOT THRIFT_FOUND)
URL "http://archive.apache.org/dist/thrift/${THRIFT_VERSION}/thrift-${THRIFT_VERSION}.tar.gz"
${THRIFT_BUILD_BYPRODUCTS}
CMAKE_ARGS ${THRIFT_CMAKE_ARGS}
- STEP_TARGETS flex_step libevent_step
DEPENDS ${THRIFT_DEPENDENCIES})
- if (MSVC)
- ExternalProject_Get_Property(thrift_ep SOURCE_DIR)
-
- set(WINFLEXBISON_VERSION 2.4.9)
- set(LIBEVENT_VERSION 2.1.7)
-
- # Download and configure Windows build of Flex and Bison
- ExternalProject_Add_Step(thrift_ep flex_step
- COMMAND ${CMAKE_COMMAND} -E make_directory thirdparty/dist/winflexbison
- COMMAND cd thirdparty/dist/winflexbison
- COMMAND curl -SLO https://github.com/lexxmark/winflexbison/releases/download/v.${WINFLEXBISON_VERSION}/win_flex_bison-${WINFLEXBISON_VERSION}.zip
- COMMAND ${CMAKE_COMMAND} -E tar xzf win_flex_bison-${WINFLEXBISON_VERSION}.zip
- DEPENDERS configure
- DEPENDEES download
- WORKING_DIRECTORY ${SOURCE_DIR})
-
- # Download and build libevent
- ExternalProject_Add_Step(thrift_ep libevent_step
- COMMAND ${CMAKE_COMMAND} -E make_directory thirdparty/src
- COMMAND cd thirdparty/src
- COMMAND curl -SLO https://github.com/nmathewson/Libevent/archive/release-${LIBEVENT_VERSION}-rc.zip
- COMMAND ${CMAKE_COMMAND} -E tar xzf release-${LIBEVENT_VERSION}-rc.zip
- COMMAND cd Libevent-release-${LIBEVENT_VERSION}-rc
- COMMAND ${CMAKE_COMMAND} -E make_directory build
- COMMAND cd build
- COMMAND ${CMAKE_COMMAND} -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=.. ..
- COMMAND nmake
- COMMAND nmake install
- DEPENDERS configure
- DEPENDEES download
- WORKING_DIRECTORY ${SOURCE_DIR})
- endif()
-
set(THRIFT_VENDORED 1)
else()
set(THRIFT_VENDORED 0)