summaryrefslogtreecommitdiffstats
path: root/src/arrow/dev/tasks/conda-recipes/r-arrow
diff options
context:
space:
mode:
Diffstat (limited to 'src/arrow/dev/tasks/conda-recipes/r-arrow')
-rw-r--r--src/arrow/dev/tasks/conda-recipes/r-arrow/bld.bat9
-rw-r--r--src/arrow/dev/tasks/conda-recipes/r-arrow/build.sh3
-rwxr-xr-xsrc/arrow/dev/tasks/conda-recipes/r-arrow/build_win.sh8
-rwxr-xr-xsrc/arrow/dev/tasks/conda-recipes/r-arrow/configure.win9
-rw-r--r--src/arrow/dev/tasks/conda-recipes/r-arrow/install.libs.R5
-rw-r--r--src/arrow/dev/tasks/conda-recipes/r-arrow/meta.yaml66
6 files changed, 100 insertions, 0 deletions
diff --git a/src/arrow/dev/tasks/conda-recipes/r-arrow/bld.bat b/src/arrow/dev/tasks/conda-recipes/r-arrow/bld.bat
new file mode 100644
index 000000000..a193ddc0a
--- /dev/null
+++ b/src/arrow/dev/tasks/conda-recipes/r-arrow/bld.bat
@@ -0,0 +1,9 @@
+bash %RECIPE_DIR%/build_win.sh
+IF %ERRORLEVEL% NEQ 0 exit 1
+cp %RECIPE_DIR%/configure.win r
+IF %ERRORLEVEL% NEQ 0 exit 1
+cp %RECIPE_DIR%/install.libs.R r/src
+IF %ERRORLEVEL% NEQ 0 exit 1
+set "MAKEFLAGS=-j%CPU_COUNT%"
+"%R%" CMD INSTALL --build r
+IF %ERRORLEVEL% NEQ 0 exit 1
diff --git a/src/arrow/dev/tasks/conda-recipes/r-arrow/build.sh b/src/arrow/dev/tasks/conda-recipes/r-arrow/build.sh
new file mode 100644
index 000000000..e868189a2
--- /dev/null
+++ b/src/arrow/dev/tasks/conda-recipes/r-arrow/build.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+export DISABLE_AUTOBREW=1
+$R CMD INSTALL --build r/.
diff --git a/src/arrow/dev/tasks/conda-recipes/r-arrow/build_win.sh b/src/arrow/dev/tasks/conda-recipes/r-arrow/build_win.sh
new file mode 100755
index 000000000..22c07d6e0
--- /dev/null
+++ b/src/arrow/dev/tasks/conda-recipes/r-arrow/build_win.sh
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+
+set -exuo pipefail
+
+
+# Rename arrow.dll to lib_arrow.dll to avoid conflicts with the arrow-cpp arrow.dll
+sed -i -e 's/void R_init_arrow/__declspec(dllexport) void R_init_lib_arrow/g' r/src/arrowExports.cpp
+sed -i -e 's/useDynLib(arrow/useDynLib(lib_arrow/g' r/NAMESPACE
diff --git a/src/arrow/dev/tasks/conda-recipes/r-arrow/configure.win b/src/arrow/dev/tasks/conda-recipes/r-arrow/configure.win
new file mode 100755
index 000000000..0b11d1335
--- /dev/null
+++ b/src/arrow/dev/tasks/conda-recipes/r-arrow/configure.win
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+set -euxo pipefail
+
+# Remove the -I../inst/include/ when unvendoring cpp11 in ARROW-13610
+echo "PKG_CPPFLAGS=-DNDEBUG -I\"${LIBRARY_PREFIX}/include\" -I\"${PREFIX}/include\" -DARROW_R_WITH_ARROW -DARROW_R_WITH_PARQUET -DARROW_R_WITH_DATASET -DARROW_R_WITH_S3 -DARROW_R_WITH_JSON -I../inst/include/" > src/Makevars.win
+echo "PKG_CXXFLAGS=\$(CXX_VISIBILITY)" >> src/Makevars.win
+echo 'CXX_STD=CXX11' >> src/Makevars.win
+echo "PKG_LIBS=-L\"${LIBRARY_PREFIX}/lib\" -larrow_dataset -lparquet -larrow" >> src/Makevars.win
diff --git a/src/arrow/dev/tasks/conda-recipes/r-arrow/install.libs.R b/src/arrow/dev/tasks/conda-recipes/r-arrow/install.libs.R
new file mode 100644
index 000000000..005bbe16b
--- /dev/null
+++ b/src/arrow/dev/tasks/conda-recipes/r-arrow/install.libs.R
@@ -0,0 +1,5 @@
+src_dir <- file.path(R_PACKAGE_SOURCE, "src", fsep = "/")
+dest_dir <- file.path(R_PACKAGE_DIR, paste0("libs", R_ARCH), fsep="/")
+
+dir.create(file.path(R_PACKAGE_DIR, paste0("libs", R_ARCH), fsep="/"), recursive = TRUE, showWarnings = FALSE)
+file.copy(file.path(src_dir, "arrow.dll", fsep = "/"), file.path(dest_dir, "lib_arrow.dll", fsep = "/"))
diff --git a/src/arrow/dev/tasks/conda-recipes/r-arrow/meta.yaml b/src/arrow/dev/tasks/conda-recipes/r-arrow/meta.yaml
new file mode 100644
index 000000000..5f0643bef
--- /dev/null
+++ b/src/arrow/dev/tasks/conda-recipes/r-arrow/meta.yaml
@@ -0,0 +1,66 @@
+{% set version = ARROW_VERSION %}
+{% set posix = 'm2-' if win else '' %}
+{% set native = 'm2w64-' if win else '' %}
+
+package:
+ name: r-arrow
+ version: {{ version|replace("-", "_") }}
+
+source:
+ path: ../../../../
+
+build:
+ merge_build_host: true # [win]
+ number: 0
+ rpaths:
+ - lib/R/lib/
+ - lib/
+
+requirements:
+ build:
+ - {{ compiler('c') }} # [not win]
+ - {{ compiler('cxx') }} # [not win]
+ - {{ compiler('r_clang') }} # [win]
+ - pkg-config # [not win]
+ - {{ posix }}make
+ - {{ posix }}sed # [win]
+ - {{ posix }}coreutils # [win]
+ - {{ posix }}filesystem # [win]
+ - {{ posix }}zip # [win]
+ host:
+ # Needs to be here, otherwise merge_build_host runs into issues
+ - pkg-config # [win]
+ - r-base
+ - arrow-cpp {{ version }}
+ - r-cpp11
+ - r-r6
+ - r-assertthat
+ - r-bit64
+ - r-purrr
+ - r-rlang
+ - r-tidyselect
+ run:
+ - r-base
+ - r-r6
+ - r-assertthat
+ - r-bit64
+ - r-purrr
+ - r-rlang
+ - r-tidyselect
+
+test:
+ commands:
+ - $R -e "library('arrow')" # [not win]
+ - "\"%R%\" -e \"library('arrow'); data(mtcars); write_parquet(mtcars, 'test.parquet')\"" # [win]
+
+about:
+ home: https://github.com/apache/arrow
+ license: Apache-2.0
+ license_file: LICENSE.txt
+ summary: R Integration to 'Apache' 'Arrow'.
+ license_family: APACHE
+
+extra:
+ recipe-maintainers:
+ - conda-forge/r
+ - conda-forge/arrow-cpp