| #!/bin/bash |
| |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| |
| # generate code |
| if [ "$ARROW_R_DEV" == "TRUE" ]; then |
| echo "*** Generating code with data-raw/codegen.R" |
| "${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" data-raw/codegen.R |
| fi |
| |
| VERSION=$(grep ^Version DESCRIPTION | sed s/Version:\ //) |
| # Try to find/download a C++ Arrow binary, |
| # including possibly a local .zip file if RWINLIB_LOCAL is set |
| "${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" "tools/winlibs.R" $VERSION $RWINLIB_LOCAL |
| # If binary not found, script exits nonzero |
| if [ $? -ne 0 ]; then |
| echo "Arrow C++ library was not found" |
| fi |
| |
| # Set the right flags to point to and enable arrow/parquet |
| # It's possible that the version of the libarrow binary is not identical to the |
| # R version, e.g. if the R build is a patch release, so find what the dir is |
| # actually called: |
| RWINLIB="../windows/$(ls windows/ | grep ^arrow-)" |
| OPENSSL_LIBS="-lcrypto -lcrypt32" |
| |
| PKG_CFLAGS="-I${RWINLIB}/include -DARROW_STATIC -DPARQUET_STATIC -DARROW_DS_STATIC -DARROW_R_WITH_ARROW" |
| PKG_LIBS="-L${RWINLIB}/lib"'$(subst gcc,,$(COMPILED_BY))$(R_ARCH) '"-L${RWINLIB}/lib"'$(R_ARCH) '"-lparquet -larrow_dataset -larrow -lthrift -lsnappy -lz -lzstd -llz4 ${OPENSSL_LIBS} -lws2_32" |
| |
| # Set any user-defined CXXFLAGS |
| if [ "$ARROW_R_CXXFLAGS" ]; then |
| PKG_CFLAGS="$PKG_CFLAGS $ARROW_R_CXXFLAGS" |
| fi |
| |
| echo "*** Writing Makevars.win" |
| sed -e "s|@cflags@|$PKG_CFLAGS|" -e "s|@libs@|$PKG_LIBS|" src/Makevars.in > src/Makevars.win |
| # Success |
| exit 0 |