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/14 20:47:37 UTC
parquet-cpp git commit: PARQUET-981: Resolve Windows build issues with 3rd party libs referen…
Repository: parquet-cpp
Updated Branches:
refs/heads/master b91a71549 -> 149db622e
PARQUET-981: Resolve Windows build issues with 3rd party libs referen…
…ced by *_HOME variables
Author: Max Risuhin <ri...@gmail.com>
Closes #325 from MaxRis/PARQUET-981 and squashes the following commits:
28b213c [Max Risuhin] PARQUET-981: Resolve Windows build issues with 3rd party libs referenced by *_HOME variables
Project: http://git-wip-us.apache.org/repos/asf/parquet-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/parquet-cpp/commit/149db622
Tree: http://git-wip-us.apache.org/repos/asf/parquet-cpp/tree/149db622
Diff: http://git-wip-us.apache.org/repos/asf/parquet-cpp/diff/149db622
Branch: refs/heads/master
Commit: 149db622ec782db51b7b94935319650c607028d3
Parents: b91a715
Author: Max Risuhin <ri...@gmail.com>
Authored: Sun May 14 16:47:32 2017 -0400
Committer: Wes McKinney <we...@twosigma.com>
Committed: Sun May 14 16:47:32 2017 -0400
----------------------------------------------------------------------
CMakeLists.txt | 10 ++++
appveyor.yml | 2 +
ci/msvc-build.bat | 26 ++++++--
cmake_modules/FindArrow.cmake | 10 +++-
cmake_modules/FindBrotli.cmake | 17 +++---
cmake_modules/FindGTest.cmake | 8 +--
cmake_modules/FindSnappy.cmake | 6 +-
cmake_modules/FindThrift.cmake | 6 +-
cmake_modules/FindZLIB.cmake | 16 +++--
cmake_modules/ThirdpartyToolchain.cmake | 88 ++++++++++++++--------------
docs/Windows.md | 42 ++++++++++++-
11 files changed, 158 insertions(+), 73 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/149db622/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9c0ffc6..a710db4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -116,6 +116,16 @@ if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
option(PARQUET_MINIMAL_DEPENDENCY
"Depend only on Thirdparty headers to build libparquet. Always OFF if building binaries"
OFF)
+ set(ARROW_MSVC_STATIC_LIB_SUFFIX "_static" CACHE STRING
+ "Arrow static lib suffix used on Windows with MSVC (default _static)")
+ set(BROTLI_MSVC_STATIC_LIB_SUFFIX "_static" CACHE STRING
+ "Brotli static lib suffix used on Windows with MSVC (default _static)")
+ set(SNAPPY_MSVC_STATIC_LIB_SUFFIX "" CACHE STRING
+ "Snappy static lib suffix used on Windows with MSVC (default is empty string)")
+ set(THRIFT_MSVC_STATIC_LIB_SUFFIX "md" CACHE STRING
+ "Thrift static lib suffix used on Windows with MSVC (default md)")
+ set(ZLIB_MSVC_STATIC_LIB_SUFFIX "libstatic" CACHE STRING
+ "Zlib static lib suffix used on Windows with MSVC (default libstatic)")
endif()
include(BuildUtils)
http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/149db622/appveyor.yml
----------------------------------------------------------------------
diff --git a/appveyor.yml b/appveyor.yml
index f3fac11..8ced854 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -34,11 +34,13 @@ environment:
configuration:
- Debug
- Release
+ - Toolchain
init:
- set MINICONDA=C:\Miniconda35-x64
- set PATH=%MINICONDA%;%MINICONDA%/Scripts;%MINICONDA%/Library/bin;%PATH%
- if "%GENERATOR%"=="NMake Makefiles" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64
+ - if "%CONFIGURATION%"=="Toolchain" conda install -y boost-cpp=1.63 arrow-cpp=0.3.0 brotli=0.6.0 zlib=1.2.11 snappy=1.1.4 thrift-cpp=0.10.0 -c conda-forge
build_script:
- call ci\msvc-build.bat
http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/149db622/ci/msvc-build.bat
----------------------------------------------------------------------
diff --git a/ci/msvc-build.bat b/ci/msvc-build.bat
index b1b54b4..6789b46 100644
--- a/ci/msvc-build.bat
+++ b/ci/msvc-build.bat
@@ -22,14 +22,30 @@ cd build
SET PARQUET_TEST_DATA=%APPVEYOR_BUILD_FOLDER%\data
-cmake -G "%GENERATOR%" ^
- -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
+if "%CONFIGURATION%" == "Toolchain" (
+ set PARQUET_BUILD_TOOLCHAIN=%MINICONDA%/Library
+
+ cmake -G "%GENERATOR%" ^
+ -DCMAKE_BUILD_TYPE=Release ^
-DPARQUET_BOOST_USE_SHARED=OFF ^
-DPARQUET_CXXFLAGS="/MP" ^
+ -DPARQUET_ZLIB_VENDORED=OFF ^
.. || exit /B
-cmake --build . --config %CONFIGURATION% || exit /B
-
-if "%CONFIGURATION%" == "Release" (
+ cmake --build . --config Release || exit /B
ctest -VV || exit /B
+)
+
+if NOT "%CONFIGURATION%" == "Toolchain" (
+ cmake -G "%GENERATOR%" ^
+ -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
+ -DPARQUET_BOOST_USE_SHARED=OFF ^
+ -DPARQUET_CXXFLAGS="/MP" ^
+ .. || exit /B
+
+ cmake --build . --config %CONFIGURATION% || exit /B
+
+ if "%CONFIGURATION%" == "Release" (
+ ctest -VV || exit /B
+ )
)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/149db622/cmake_modules/FindArrow.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindArrow.cmake b/cmake_modules/FindArrow.cmake
index ad47513..bd6765a 100644
--- a/cmake_modules/FindArrow.cmake
+++ b/cmake_modules/FindArrow.cmake
@@ -72,11 +72,15 @@ else()
set(ARROW_FOUND TRUE)
set(ARROW_HEADER_NAME arrow/api.h)
set(ARROW_HEADER ${ARROW_INCLUDE_DIR}/${ARROW_HEADER_NAME})
- set(ARROW_LIB_NAME libarrow)
+ set(ARROW_LIB_NAME arrow)
+ if (MSVC AND NOT ARROW_MSVC_STATIC_LIB_SUFFIX)
+ set(ARROW_MSVC_STATIC_LIB_SUFFIX _static)
+ endif()
get_filename_component(ARROW_LIBS ${ARROW_LIB_PATH} DIRECTORY)
- set(ARROW_STATIC_LIB ${ARROW_LIBS}/${ARROW_LIB_NAME}.a)
- set(ARROW_SHARED_LIB ${ARROW_LIBS}/${ARROW_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
+ set(ARROW_STATIC_LIB ${ARROW_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${ARROW_LIB_NAME}${ARROW_MSVC_STATIC_LIB_SUFFIX}${CMAKE_SHARED_LIBRARY_SUFFIX})
+ set(ARROW_SHARED_LIB ${ARROW_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${ARROW_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
+ set(ARROW_SHARED_IMPLIB ${ARROW_LIBS}/${ARROW_LIB_NAME}.lib)
endif ()
endif()
http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/149db622/cmake_modules/FindBrotli.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindBrotli.cmake b/cmake_modules/FindBrotli.cmake
index 40d58ac..669c3f3 100644
--- a/cmake_modules/FindBrotli.cmake
+++ b/cmake_modules/FindBrotli.cmake
@@ -65,15 +65,18 @@ if (BROTLI_INCLUDE_DIR AND (PARQUET_MINIMAL_DEPENDENCY OR BROTLI_LIBRARIES))
get_filename_component( BROTLI_LIBS ${BROTLI_LIBRARY_ENC} PATH )
set(BROTLI_HEADER_NAME brotli.h)
set(BROTLI_HEADER ${BROTLI_INCLUDE_DIR}/${BROTLI_HEADER_NAME})
- set(BROTLI_LIB_NAME libbrotli)
+ set(BROTLI_LIB_NAME brotli)
+ if (MSVC AND NOT BROTLI_MSVC_STATIC_LIB_SUFFIX)
+ set(BROTLI_MSVC_STATIC_LIB_SUFFIX _static)
+ endif()
set(BROTLI_STATIC_LIB
- ${BROTLI_LIBS}/${BROTLI_LIB_NAME}enc.a
- ${BROTLI_LIBS}/${BROTLI_LIB_NAME}dec.a
- ${BROTLI_LIBS}/${BROTLI_LIB_NAME}common.a)
+ ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc${BROTLI_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
+ ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}dec${BROTLI_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
+ ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}common${BROTLI_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
set(BROTLI_SHARED_LIB
- ${BROTLI_LIBS}/${BROTLI_LIB_NAME}enc${CMAKE_SHARED_LIBRARY_SUFFIX}
- ${BROTLI_LIBS}/${BROTLI_LIB_NAME}dec${CMAKE_SHARED_LIBRARY_SUFFIX}
- ${BROTLI_LIBS}/${BROTLI_LIB_NAME}common${CMAKE_SHARED_LIBRARY_SUFFIX})
+ ${BROTLI_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc${CMAKE_SHARED_LIBRARY_SUFFIX}
+ ${BROTLI_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${BROTLI_LIB_NAME}dec${CMAKE_SHARED_LIBRARY_SUFFIX}
+ ${BROTLI_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${BROTLI_LIB_NAME}common${CMAKE_SHARED_LIBRARY_SUFFIX})
else ()
set(BROTLI_FOUND FALSE)
endif ()
http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/149db622/cmake_modules/FindGTest.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindGTest.cmake b/cmake_modules/FindGTest.cmake
index c6a4238..c6ea16b 100644
--- a/cmake_modules/FindGTest.cmake
+++ b/cmake_modules/FindGTest.cmake
@@ -56,10 +56,10 @@ endif ()
if (GTEST_INCLUDE_DIR AND GTEST_LIBRARIES)
set(GTEST_FOUND TRUE)
get_filename_component( GTEST_LIBS ${GTEST_LIBRARIES} PATH )
- set(GTEST_LIB_NAME libgtest)
- set(GTEST_STATIC_LIB ${GTEST_LIBS}/${GTEST_LIB_NAME}.a)
- set(GTEST_MAIN_STATIC_LIB ${GTEST_LIBS}/${GTEST_LIB_NAME}_main.a)
- set(GTEST_SHARED_LIB ${GTEST_LIBS}/${GTEST_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
+ set(GTEST_LIB_NAME gtest)
+ set(GTEST_STATIC_LIB ${GTEST_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${GTEST_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX})
+ set(GTEST_MAIN_STATIC_LIB ${GTEST_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${GTEST_LIB_NAME}_main${CMAKE_STATIC_LIBRARY_SUFFIX})
+ set(GTEST_SHARED_LIB ${GTEST_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${GTEST_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
else ()
set(GTEST_FOUND FALSE)
endif ()
http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/149db622/cmake_modules/FindSnappy.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindSnappy.cmake b/cmake_modules/FindSnappy.cmake
index d2825c0..867963c 100644
--- a/cmake_modules/FindSnappy.cmake
+++ b/cmake_modules/FindSnappy.cmake
@@ -54,9 +54,9 @@ if (SNAPPY_INCLUDE_DIR AND (PARQUET_MINIMAL_DEPENDENCY OR SNAPPY_LIBRARIES))
get_filename_component( SNAPPY_LIBS ${SNAPPY_LIBRARIES} PATH )
set(SNAPPY_HEADER_NAME snappy.h)
set(SNAPPY_HEADER ${SNAPPY_INCLUDE_DIR}/${SNAPPY_HEADER_NAME})
- set(SNAPPY_LIB_NAME libsnappy)
- set(SNAPPY_STATIC_LIB ${SNAPPY_LIBS}/${SNAPPY_LIB_NAME}.a)
- set(SNAPPY_SHARED_LIB ${SNAPPY_LIBS}/${SNAPPY_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
+ set(SNAPPY_LIB_NAME snappy)
+ set(SNAPPY_STATIC_LIB ${SNAPPY_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${SNAPPY_LIB_NAME}${SNAPPY_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
+ set(SNAPPY_SHARED_LIB ${SNAPPY_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${SNAPPY_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
else ()
set(SNAPPY_FOUND FALSE)
endif ()
http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/149db622/cmake_modules/FindThrift.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindThrift.cmake b/cmake_modules/FindThrift.cmake
index 39432e9..6c5d9fe 100644
--- a/cmake_modules/FindThrift.cmake
+++ b/cmake_modules/FindThrift.cmake
@@ -48,8 +48,12 @@ find_path(THRIFT_CONTRIB_DIR share/fb303/if/fb303.thrift HINTS
NO_DEFAULT_PATH
)
+if (MSVC AND NOT THRIFT_MSVC_STATIC_LIB_SUFFIX)
+ set(THRIFT_MSVC_STATIC_LIB_SUFFIX md)
+endif()
+
find_library(THRIFT_STATIC_LIB NAMES
- ${CMAKE_STATIC_LIBRARY_PREFIX}thrift${CMAKE_STATIC_LIBRARY_SUFFIX}
+ ${CMAKE_STATIC_LIBRARY_PREFIX}thrift${THRIFT_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
HINTS ${_thrift_roots}
NO_DEFAULT_PATH
PATH_SUFFIXES "lib/${CMAKE_LIBRARY_ARCHITECTURE}" "lib"
http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/149db622/cmake_modules/FindZLIB.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindZLIB.cmake b/cmake_modules/FindZLIB.cmake
index 1cae74a..78b84f2 100644
--- a/cmake_modules/FindZLIB.cmake
+++ b/cmake_modules/FindZLIB.cmake
@@ -44,13 +44,13 @@ if ( _zlib_roots )
find_path( ZLIB_INCLUDE_DIR NAMES zlib.h
PATHS ${_zlib_roots} NO_DEFAULT_PATH
PATH_SUFFIXES "include" )
- find_library( ZLIB_LIBRARIES NAMES libz.a
+ find_library( ZLIB_LIBRARIES NAMES libz.a zlib
PATHS ${_zlib_roots} NO_DEFAULT_PATH
PATH_SUFFIXES "lib" )
else ()
find_path( ZLIB_INCLUDE_DIR NAMES zlib.h )
# Only look for the static library
- find_library( ZLIB_LIBRARIES NAMES libz.a )
+ find_library( ZLIB_LIBRARIES NAMES libz.a zlib )
endif ()
@@ -59,9 +59,15 @@ if (ZLIB_INCLUDE_DIR AND (PARQUET_MINIMAL_DEPENDENCY OR 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 libz)
- set(ZLIB_STATIC_LIB ${ZLIB_LIBS}/${ZLIB_LIB_NAME}.a)
- set(ZLIB_SHARED_LIB ${ZLIB_LIBS}/${ZLIB_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
+ set(ZLIB_LIB_NAME z)
+ if (MSVC)
+ if (NOT ZLIB_MSVC_STATIC_LIB_SUFFIX)
+ set(ZLIB_MSVC_STATIC_LIB_SUFFIX libstatic)
+ endif()
+ set(ZLIB_MSVC_SHARED_LIB_SUFFIX lib)
+ endif()
+ set(ZLIB_STATIC_LIB ${ZLIB_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${ZLIB_LIB_NAME}${ZLIB_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
+ set(ZLIB_SHARED_LIB ${ZLIB_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${ZLIB_LIB_NAME}${ZLIB_MSVC_SHARED_LIB_SUFFIX}${CMAKE_SHARED_LIBRARY_SUFFIX})
else ()
set(ZLIB_FOUND FALSE)
endif ()
http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/149db622/cmake_modules/ThirdpartyToolchain.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake
index 7b4c941..7be349e 100644
--- a/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cmake_modules/ThirdpartyToolchain.cmake
@@ -240,42 +240,43 @@ if (NOT THRIFT_FOUND)
STEP_TARGETS flex_step libevent_step
DEPENDS ${THRIFT_DEPENDENCIES})
endif()
- set(THRIFT_VENDORED 1)
-else()
- set(THRIFT_VENDORED 0)
-endif()
-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})
+ 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)
endif()
include_directories(SYSTEM ${THRIFT_INCLUDE_DIR} ${THRIFT_INCLUDE_DIR}/thrift)
@@ -412,19 +413,18 @@ if (NOT BROTLI_FOUND)
URL "https://github.com/google/brotli/archive/${BROTLI_VERSION}.tar.gz"
CMAKE_ARGS ${BROTLI_CMAKE_ARGS})
endif()
+ if (MSVC)
+ ExternalProject_Get_Property(brotli_ep SOURCE_DIR)
+
+ ExternalProject_Add_Step(brotli_ep headers_copy
+ COMMAND xcopy /E /I include ..\\..\\..\\brotli_ep\\src\\brotli_ep-install\\include /Y
+ DEPENDEES build
+ WORKING_DIRECTORY ${SOURCE_DIR})
+ endif()
else()
set(BROTLI_VENDORED 0)
endif()
-if (MSVC)
- ExternalProject_Get_Property(brotli_ep SOURCE_DIR)
-
- ExternalProject_Add_Step(brotli_ep headers_copy
- COMMAND xcopy /E /I include ..\\..\\..\\brotli_ep\\src\\brotli_ep-install\\include /Y
- DEPENDEES build
- WORKING_DIRECTORY ${SOURCE_DIR})
-endif()
-
include_directories(SYSTEM ${BROTLI_INCLUDE_DIR})
add_library(brotlistatic_enc STATIC IMPORTED)
set_target_properties(brotlistatic_enc PROPERTIES IMPORTED_LOCATION ${BROTLI_LIBRARY_ENC})
http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/149db622/docs/Windows.md
----------------------------------------------------------------------
diff --git a/docs/Windows.md b/docs/Windows.md
index 8c7d1a3..9659509 100644
--- a/docs/Windows.md
+++ b/docs/Windows.md
@@ -30,9 +30,30 @@ We recommend using packages from [conda-forge][2].
Launch cmd.exe and run following to bootstrap a build environment:
```shell
-conda create -n parquet-dev cmake git boost-cpp curl zlib snappy -c conda-forge
+conda create -n parquet-dev cmake git boost-cpp curl zlib snappy arrow-cpp brotli thrift-cpp -c conda-forge
```
+To allow cmake to pick up 3rd party dependencies, you should set
+`PARQUET_BUILD_TOOLCHAIN` environment variable to contain `Library` folder
+path of new created on previous step `parquet-dev` conda environment.
+For instance, if `Miniconda` was installed to default destination, `Library`
+folder path for `parquet-dev` conda environment will be as following:
+
+```shell
+C:\Users\YOUR_USER_NAME\Miniconda3\envs\parquet-dev\Library
+```
+
+As alternative to `PARQUET_BUILD_TOOLCHAIN`, it's possible to configure path
+to each 3rd party dependency separately by setting appropriate environment
+variable:
+
+`BOOST_ROOT` variable with path to `boost` installation
+`THRIFT_HOME` variable with path to `thrift-cpp` installation
+`SNAPPY_HOME` variable with path to `snappy` installation
+`ZLIB_HOME` variable with path to `zlib` installation
+`BROTLI_HOME` variable with path to `brotli` installation
+`ARROW_HOME` variable with path to `arrow` installation
+
### Visual Studio
Microsoft provides the free Visual Studio Community edition. Once you have
@@ -69,6 +90,25 @@ cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..
nmake
```
+## Building with Visual Studio cmake generator
+
+Activate your conda build environment:
+
+```
+activate parquet-dev
+```
+
+Change working directory in cmd.exe to the root directory of parquet-cpp and
+do an out of source build:
+
+```
+cd %PARQUET_ROOT_SOURCES_DIRECTORY%
+mkdir build
+cd build
+cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=Release ..
+cmake --build . --config Release
+```
+
When using conda, only release builds are currently supported.
[1]: https://conda.io/miniconda.html