Skip to content

Commit f33573d

Browse files
committed
Update static gifski
1 parent e424437 commit f33573d

File tree

3 files changed

+27
-20
lines changed

3 files changed

+27
-20
lines changed

.github/workflows/R-CMD-check.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ jobs:
1717
matrix:
1818
config:
1919
- {os: windows-latest, r: '4.1'}
20+
- {os: windows-latest, r: '4.2', FORCE_STATIC_GIFSKI: 'static''}
21+
- {os: windows-latest, r: '4.2'}
2022
- {os: windows-latest, r: 'release'}
2123
- {os: windows-latest, r: 'release', FORCE_STATIC_GIFSKI: 'static'}
2224
- {os: macOS-latest, r: 'release'}

src/Makevars.win

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
1-
VERSION = 1.12.0
2-
RWINLIB = ../windows/gifski-winlibs
1+
RWINLIB = ../windows/libgifski
32
PKG_CPPFLAGS = -I$(RWINLIB)/include
4-
GCC_VERSION = ${subst gcc,,${COMPILED_BY}}
5-
PKG_LIBS = -L$(RWINLIB)/lib$(GCC_VERSION)$(R_ARCH) \
3+
4+
ifneq ($(R_COMPILED_BY),gcc 8.3.0)
5+
NTDLL=-lntdll
6+
endif
7+
8+
PKG_LIBS = -L$(RWINLIB)/lib \
69
-L$(RWINLIB)/lib$(R_ARCH) \
7-
-lgifski -lws2_32 -ladvapi32 -luserenv -ldbghelp -lbcrypt
10+
-lgifski -lws2_32 -ladvapi32 -luserenv -ldbghelp -lbcrypt $(NTDLL)
811

912
all: clean winlibs
1013

1114
winlibs:
12-
"${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" "../tools/winlibs.R" $(VERSION)
15+
"${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" "../tools/winlibs.R"
1316

1417
clean:
1518
rm -f $(SHLIB) $(OBJECTS)

tools/winlibs.R

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1-
# Build against gifski libs compiled with the Rtools
2-
VERSION <- commandArgs(TRUE)
3-
4-
# Hack: latest gifski does not work on Windows Vista
5-
if(grepl('Windows (Vista|Server 2008)', osVersion)){
6-
VERSION <- '1.4.3'
7-
}
8-
9-
if(!file.exists(sprintf("../windows/gifski-%s/include/gifski.h", VERSION))){
10-
if(getRversion() < "3.3.0") setInternet2()
11-
download.file(sprintf("https://github.com/rwinlib/gifski/archive/v%s.zip", VERSION), "lib.zip", quiet = TRUE)
1+
if(!file.exists("../windows/libgifski/lib")){
2+
unlink("../windows", recursive = TRUE)
3+
url <- if(grepl("aarch", R.version$platform)){
4+
"https://github.com/r-windows/bundles/releases/download/gifski-1.12.2/gifski-1.12.2-clang-aarch64.tar.xz"
5+
} else if(grepl("clang", Sys.getenv('R_COMPILED_BY'))){
6+
"https://github.com/r-windows/bundles/releases/download/gifski-1.12.2/gifski-1.12.2-clang-x86_64.tar.xz"
7+
} else if(getRversion() >= "4.2") {
8+
"https://github.com/r-windows/bundles/releases/download/gifski-1.12.2/gifski-1.12.2-ucrt-x86_64.tar.xz"
9+
} else {
10+
"https://github.com/r-windows/bundles/releases/download/gifski-1.12.2/gifski-1.12.0-msvcrt.tar.xz"
11+
}
12+
download.file(url, basename(url), quiet = TRUE)
1213
dir.create("../windows", showWarnings = FALSE)
13-
unzip("lib.zip", exdir = "../windows")
14-
unlink("lib.zip")
15-
file.rename(sprintf("../windows/gifski-%s", VERSION), '../windows/gifski-winlibs')
14+
untar(basename(url), exdir = "../windows", tar = 'internal')
15+
unlink(basename(url))
16+
setwd("../windows")
17+
file.rename(list.files(), 'libgifski')
1618
}

0 commit comments

Comments
 (0)