You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@orc.apache.org by md...@apache.org on 2018/04/29 23:38:07 UTC
orc git commit: ORC-352: [C++] Update,
cleanup and add support of MSVC to ThirdpartyToolchain
Repository: orc
Updated Branches:
refs/heads/master 831b2eca7 -> 2e1161f93
ORC-352: [C++] Update, cleanup and add support of MSVC to ThirdpartyToolchain
Fixes #256
Signed-off-by: Deepak Majeti <md...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/orc/repo
Commit: http://git-wip-us.apache.org/repos/asf/orc/commit/2e1161f9
Tree: http://git-wip-us.apache.org/repos/asf/orc/tree/2e1161f9
Diff: http://git-wip-us.apache.org/repos/asf/orc/diff/2e1161f9
Branch: refs/heads/master
Commit: 2e1161f93557ea7e30c96de63628722bc23c56be
Parents: 831b2ec
Author: rip-nsk <ri...@gmail.com>
Authored: Mon Apr 23 16:32:40 2018 -0700
Committer: Deepak Majeti <md...@apache.org>
Committed: Sun Apr 29 19:37:06 2018 -0400
----------------------------------------------------------------------
cmake_modules/FindZLIB.cmake | 9 +-
cmake_modules/ThirdpartyToolchain.cmake | 197 ++++++++++++++-------------
2 files changed, 106 insertions(+), 100 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/orc/blob/2e1161f9/cmake_modules/FindZLIB.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindZLIB.cmake b/cmake_modules/FindZLIB.cmake
index 6d29c55..6c09640 100644
--- a/cmake_modules/FindZLIB.cmake
+++ b/cmake_modules/FindZLIB.cmake
@@ -28,7 +28,11 @@ find_path (ZLIB_INCLUDE_DIR zlib.h HINTS
NO_DEFAULT_PATH
PATH_SUFFIXES "include")
-find_library (ZLIB_LIBRARIES NAMES z HINTS
+if (NOT ZLIB_STATIC_LIB_NAME)
+ set (ZLIB_STATIC_LIB_NAME z)
+endif()
+
+find_library (ZLIB_LIBRARIES NAMES ${ZLIB_STATIC_LIB_NAME} HINTS
${_zlib_path}
PATH_SUFFIXES "lib")
@@ -37,8 +41,7 @@ if (ZLIB_INCLUDE_DIR AND ZLIB_LIBRARIES)
get_filename_component (ZLIB_LIBS ${ZLIB_LIBRARIES} PATH )
set (ZLIB_HEADER_NAME zlib.h)
set (ZLIB_HEADER ${ZLIB_INCLUDE_DIR}/${ZLIB_HEADER_NAME})
- set (ZLIB_LIB_NAME z)
- set (ZLIB_STATIC_LIB ${ZLIB_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${ZLIB_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX})
+ set (ZLIB_STATIC_LIB ${ZLIB_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${ZLIB_STATIC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX})
else ()
set (ZLIB_FOUND FALSE)
endif ()
http://git-wip-us.apache.org/repos/asf/orc/blob/2e1161f9/cmake_modules/ThirdpartyToolchain.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake
index af5cc57..676ec7f 100644
--- a/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cmake_modules/ThirdpartyToolchain.cmake
@@ -10,13 +10,21 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-set (LZ4_VERSION "1.7.5")
-set (SNAPPY_VERSION "1.1.4")
-set (ZLIB_VERSION "1.2.11")
-set (GTEST_VERSION "1.8.0")
-set (PROTOBUF_VERSION "2.6.0")
-
-set (THIRDPARTY_DIR "${CMAKE_BINARY_DIR}/c++/libs/thirdparty")
+set(LZ4_VERSION "1.7.5")
+set(SNAPPY_VERSION "1.1.7")
+set(ZLIB_VERSION "1.2.11")
+set(GTEST_VERSION "1.8.0")
+set(PROTOBUF_VERSION "3.5.1")
+
+set(THIRDPARTY_DIR "${CMAKE_BINARY_DIR}/c++/libs/thirdparty")
+set(THIRDPARTY_LOG_OPTIONS LOG_CONFIGURE 1
+ LOG_BUILD 1
+ LOG_INSTALL 1
+ LOG_DOWNLOAD 1)
+set(THIRDPARTY_CONFIGURE_COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}")
+if (CMAKE_GENERATOR_TOOLSET)
+ list(APPEND THIRDPARTY_CONFIGURE_COMMAND -T "${CMAKE_GENERATOR_TOOLSET}")
+endif ()
string(TOUPPER ${CMAKE_BUILD_TYPE} UPPERCASE_BUILD_TYPE)
@@ -47,29 +55,19 @@ if (NOT "${SNAPPY_HOME}" STREQUAL "")
find_package (Snappy REQUIRED)
set(SNAPPY_VENDORED FALSE)
else ()
- set (SNAPPY_PREFIX "${THIRDPARTY_DIR}/snappy_ep-install")
- set (SNAPPY_HOME "${SNAPPY_PREFIX}")
- set (SNAPPY_INCLUDE_DIR "${SNAPPY_PREFIX}/include")
- set (SNAPPY_STATIC_LIB_NAME snappy)
- set (SNAPPY_STATIC_LIB "${SNAPPY_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${SNAPPY_STATIC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
- set (SNAPPY_SRC_URL "https://github.com/google/snappy/releases/download/${SNAPPY_VERSION}/snappy-${SNAPPY_VERSION}.tar.gz")
- if (${UPPERCASE_BUILD_TYPE} EQUAL "RELEASE")
- set (SNAPPY_CXXFLAGS "CXXFLAGS='-DNDEBUG -O2'")
- endif ()
+ set(SNAPPY_HOME "${THIRDPARTY_DIR}/snappy_ep-install")
+ set(SNAPPY_INCLUDE_DIR "${SNAPPY_HOME}/include")
+ set(SNAPPY_STATIC_LIB "${SNAPPY_HOME}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}snappy${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(SNAPPY_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${SNAPPY_HOME}
+ -DBUILD_SHARED_LIBS=OFF)
ExternalProject_Add (snappy_ep
- CONFIGURE_COMMAND "./configure" "--disable-shared" "--prefix=${SNAPPY_PREFIX}" ${SNAPPY_CXXFLAGS}
- BUILD_COMMAND ${MAKE}
- BUILD_IN_SOURCE 1
- INSTALL_DIR ${SNAPPY_PREFIX}
- URL ${SNAPPY_SRC_URL}
- LOG_DOWNLOAD 1
- LOG_CONFIGURE 1
- LOG_BUILD 1
- LOG_INSTALL 1
+ URL "https://github.com/google/snappy/archive/${SNAPPY_VERSION}.tar.gz"
+ CMAKE_ARGS ${SNAPPY_CMAKE_ARGS}
+ ${THIRDPARTY_LOG_OPTIONS}
BUILD_BYPRODUCTS "${SNAPPY_STATIC_LIB}")
- set (SNAPPY_VENDORED TRUE)
+ set(SNAPPY_VENDORED TRUE)
endif ()
include_directories (SYSTEM ${SNAPPY_INCLUDE_DIR})
@@ -89,29 +87,29 @@ endif ()
if (NOT "${ZLIB_HOME}" STREQUAL "")
find_package (ZLIB REQUIRED)
- set (ZLIB_VENDORED FALSE)
+ set(ZLIB_VENDORED FALSE)
else ()
- set (ZLIB_PREFIX "${THIRDPARTY_DIR}/zlib_ep-install")
- set (ZLIB_HOME "${ZLIB_PREFIX}")
- set (ZLIB_INCLUDE_DIR "${ZLIB_PREFIX}/include")
- set (ZLIB_STATIC_LIB_NAME z)
- set (ZLIB_STATIC_LIB "${ZLIB_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${ZLIB_STATIC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
- set (ZLIB_SRC_URL "http://zlib.net/fossils/zlib-${ZLIB_VERSION}.tar.gz")
- set (ZLIB_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- -DCMAKE_INSTALL_PREFIX=${ZLIB_PREFIX}
- -DCMAKE_C_FLAGS=${EP_C_FLAGS}
- -DBUILD_SHARED_LIBS=OFF)
+ set(ZLIB_PREFIX "${THIRDPARTY_DIR}/zlib_ep-install")
+ set(ZLIB_INCLUDE_DIR "${ZLIB_PREFIX}/include")
+ if (MSVC)
+ set(ZLIB_STATIC_LIB_NAME zlibstatic)
+ if (${UPPERCASE_BUILD_TYPE} STREQUAL "DEBUG")
+ set(ZLIB_STATIC_LIB_NAME ${ZLIB_STATIC_LIB_NAME}d)
+ endif ()
+ else ()
+ set(ZLIB_STATIC_LIB_NAME z)
+ endif ()
+ set(ZLIB_STATIC_LIB "${ZLIB_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${ZLIB_STATIC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(ZLIB_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${ZLIB_PREFIX}
+ -DBUILD_SHARED_LIBS=OFF)
ExternalProject_Add (zlib_ep
- URL ${ZLIB_SRC_URL}
- LOG_DOWNLOAD 1
- LOG_CONFIGURE 1
- LOG_BUILD 1
- LOG_INSTALL 1
- BUILD_BYPRODUCTS "${ZLIB_STATIC_LIB}"
- CMAKE_ARGS ${ZLIB_CMAKE_ARGS})
-
- set (ZLIB_VENDORED TRUE)
+ URL "http://zlib.net/fossils/zlib-${ZLIB_VERSION}.tar.gz"
+ CMAKE_ARGS ${ZLIB_CMAKE_ARGS}
+ ${THIRDPARTY_LOG_OPTIONS}
+ BUILD_BYPRODUCTS "${ZLIB_STATIC_LIB}")
+
+ set(ZLIB_VENDORED TRUE)
endif ()
include_directories (SYSTEM ${ZLIB_INCLUDE_DIR})
@@ -131,28 +129,28 @@ endif ()
if (NOT "${LZ4_HOME}" STREQUAL "")
find_package (LZ4 REQUIRED)
- set (LZ4_VENDORED FALSE)
+ set(LZ4_VENDORED FALSE)
else ()
- set (LZ4_PREFIX "${THIRDPARTY_DIR}/lz4_ep-install")
- set (LZ4_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/lz4_ep-prefix/src/lz4_ep")
- set (LZ4_INCLUDE_DIR "${LZ4_PREFIX}/include")
- set (LZ4_STATIC_LIB_NAME lz4)
- set (LZ4_STATIC_LIB "${LZ4_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${LZ4_STATIC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
- set (LZ4_SRC_URL "https://github.com/lz4/lz4/archive/v${LZ4_VERSION}.tar.gz")
+ set(LZ4_PREFIX "${THIRDPARTY_DIR}/lz4_ep-install")
+ set(LZ4_INCLUDE_DIR "${LZ4_PREFIX}/include")
+ set(LZ4_STATIC_LIB "${LZ4_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}lz4${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(LZ4_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LZ4_PREFIX}
+ -DBUILD_SHARED_LIBS=OFF)
+
+ if (CMAKE_VERSION VERSION_GREATER "3.7")
+ set(LZ4_CONFIGURE SOURCE_SUBDIR "contrib/cmake_unofficial" CMAKE_ARGS ${LZ4_CMAKE_ARGS})
+ else()
+ set(LZ4_CONFIGURE CONFIGURE_COMMAND "${THIRDPARTY_CONFIGURE_COMMAND}" ${LZ4_CMAKE_ARGS}
+ "${CMAKE_CURRENT_BINARY_DIR}/lz4_ep-prefix/src/lz4_ep/contrib/cmake_unofficial")
+ endif()
ExternalProject_Add(lz4_ep
- CONFIGURE_COMMAND ""
- INSTALL_COMMAND make "PREFIX=${LZ4_PREFIX}" install
- BUILD_IN_SOURCE 1
- BUILD_COMMAND ${MAKE}
- URL ${LZ4_SRC_URL}
- LOG_DOWNLOAD 1
- LOG_BUILD 1
- LOG_INSTALL 1
- BUILD_BYPRODUCTS ${LZ4_STATIC_LIB}
- )
-
- set (LZ4_VENDORED TRUE)
+ URL "https://github.com/lz4/lz4/archive/v${LZ4_VERSION}.tar.gz"
+ ${LZ4_CONFIGURE}
+ ${THIRDPARTY_LOG_OPTIONS}
+ BUILD_BYPRODUCTS ${LZ4_STATIC_LIB})
+
+ set(LZ4_VENDORED TRUE)
endif ()
include_directories (SYSTEM ${LZ4_INCLUDE_DIR})
@@ -175,11 +173,10 @@ if (BUILD_CPP_TESTS)
find_package (GTest REQUIRED)
set (GTEST_VENDORED FALSE)
else ()
- set (GTEST_PREFIX "${THIRDPARTY_DIR}/googletest_ep-install")
- set (GTEST_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest_ep-prefix/src/googletest_ep")
- set (GTEST_INCLUDE_DIR "${GTEST_PREFIX}/include")
- set (GMOCK_STATIC_LIB "${GTEST_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX}")
- set (GTEST_SRC_URL "https://github.com/google/googletest/archive/release-${GTEST_VERSION}.tar.gz")
+ set(GTEST_PREFIX "${THIRDPARTY_DIR}/googletest_ep-install")
+ set(GTEST_INCLUDE_DIR "${GTEST_PREFIX}/include")
+ set(GMOCK_STATIC_LIB "${GTEST_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(GTEST_SRC_URL "https://github.com/google/googletest/archive/release-${GTEST_VERSION}.tar.gz")
if(APPLE)
set(GTEST_CMAKE_CXX_FLAGS " -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-value -Wno-ignored-attributes")
else()
@@ -194,15 +191,11 @@ if (BUILD_CPP_TESTS)
ExternalProject_Add(googletest_ep
BUILD_IN_SOURCE 1
URL ${GTEST_SRC_URL}
- LOG_DOWNLOAD 1
- LOG_CONFIGURE 1
- LOG_BUILD 1
- LOG_INSTALL 1
- BUILD_BYPRODUCTS "${GMOCK_STATIC_LIB}"
+ ${THIRDPARTY_LOG_OPTIONS}
CMAKE_ARGS ${GTEST_CMAKE_ARGS}
- )
+ BUILD_BYPRODUCTS "${GMOCK_STATIC_LIB}")
- set (GTEST_VENDORED TRUE)
+ set(GTEST_VENDORED TRUE)
endif ()
include_directories (SYSTEM ${GTEST_INCLUDE_DIR})
@@ -214,7 +207,7 @@ if (BUILD_CPP_TESTS)
add_dependencies (gmock googletest_ep)
endif ()
- set (GTEST_LIBRARIES gmock)
+ set(GTEST_LIBRARIES gmock)
if (NOT APPLE AND NOT MSVC)
list (APPEND GTEST_LIBRARIES pthread)
endif ()
@@ -225,28 +218,38 @@ endif ()
if (NOT "${PROTOBUF_HOME}" STREQUAL "")
find_package (Protobuf REQUIRED)
- set (PROTOBUF_VENDORED FALSE)
+ set(PROTOBUF_VENDORED FALSE)
else ()
- set (PROTOBUF_PREFIX "${THIRDPARTY_DIR}/protobuf_ep-install")
- set (PROTOBUF_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/protobuf_ep-prefix/src/protobuf_ep")
- set (PROTOBUF_INCLUDE_DIR "${PROTOBUF_PREFIX}/include")
- set (PROTOBUF_STATIC_LIB "${PROTOBUF_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}protobuf${CMAKE_STATIC_LIBRARY_SUFFIX}")
- set (PROTOC_STATIC_LIB "${PROTOBUF_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}protoc${CMAKE_STATIC_LIBRARY_SUFFIX}")
- set (PROTOBUF_EXECUTABLE "${PROTOBUF_PREFIX}/bin/protoc")
- set (PROTOBUF_SRC_URL "https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/protobuf-${PROTOBUF_VERSION}.tar.gz")
+ set(PROTOBUF_PREFIX "${THIRDPARTY_DIR}/protobuf_ep-install")
+ set(PROTOBUF_INCLUDE_DIR "${PROTOBUF_PREFIX}/include")
+ set(PROTOBUF_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${PROTOBUF_PREFIX}
+ -DBUILD_SHARED_LIBS=OFF
+ -Dprotobuf_BUILD_TESTS=OFF)
+ if (MSVC)
+ set(PROTOBUF_STATIC_LIB_PREFIX lib)
+ list(APPEND PROTOBUF_CMAKE_ARGS -Dprotobuf_MSVC_STATIC_RUNTIME=OFF
+ -Dprotobuf_DEBUG_POSTFIX=)
+ else ()
+ set(PROTOBUF_STATIC_LIB_PREFIX ${CMAKE_STATIC_LIBRARY_PREFIX})
+ endif ()
+ set(PROTOBUF_STATIC_LIB "${PROTOBUF_PREFIX}/lib/${PROTOBUF_STATIC_LIB_PREFIX}protobuf${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(PROTOC_STATIC_LIB "${PROTOBUF_PREFIX}/lib/${PROTOBUF_STATIC_LIB_PREFIX}protoc${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(PROTOBUF_EXECUTABLE "${PROTOBUF_PREFIX}/bin/protoc${CMAKE_EXECUTABLE_SUFFIX}")
+
+ if (CMAKE_VERSION VERSION_GREATER "3.7")
+ set(PROTOBUF_CONFIGURE SOURCE_SUBDIR "cmake" CMAKE_ARGS ${PROTOBUF_CMAKE_ARGS})
+ else()
+ set(PROTOBUF_CONFIGURE CONFIGURE_COMMAND "${THIRDPARTY_CONFIGURE_COMMAND}" ${PROTOBUF_CMAKE_ARGS}
+ "${CMAKE_CURRENT_BINARY_DIR}/protobuf_ep-prefix/src/protobuf_ep/cmake")
+ endif()
ExternalProject_Add(protobuf_ep
- CONFIGURE_COMMAND "./configure" "--disable-shared" "--prefix=${PROTOBUF_PREFIX}"
- BUILD_IN_SOURCE 1
- URL ${PROTOBUF_SRC_URL}
- LOG_DOWNLOAD 1
- LOG_CONFIGURE 1
- LOG_BUILD 1
- LOG_INSTALL 1
- BUILD_BYPRODUCTS "${PROTOBUF_STATIC_LIB}" "${PROTOC_STATIC_LIB}"
- )
-
- set (PROTOBUF_VENDORED TRUE)
+ URL "https://github.com/google/protobuf/archive/v${PROTOBUF_VERSION}.tar.gz"
+ ${PROTOBUF_CONFIGURE}
+ ${THIRDPARTY_LOG_OPTIONS}
+ BUILD_BYPRODUCTS "${PROTOBUF_STATIC_LIB}" "${PROTOC_STATIC_LIB}")
+
+ set(PROTOBUF_VENDORED TRUE)
endif ()
include_directories (SYSTEM ${PROTOBUF_INCLUDE_DIR})