mirror of https://github.com/pyodide/pyodide.git
102 lines
3.6 KiB
YAML
102 lines
3.6 KiB
YAML
package:
|
|
name: gdal
|
|
version: 3.5.1
|
|
|
|
source:
|
|
url: https://github.com/OSGeo/gdal/releases/download/v3.5.2/gdal-3.5.2.tar.gz
|
|
sha256: fbd696e1b2a858fbd2eb3718db16b14ed9ba82521d3578770d480c74fe1146d2
|
|
requirements:
|
|
host:
|
|
- libtiff
|
|
- libproj
|
|
- libiconv
|
|
- geos
|
|
run:
|
|
- geos
|
|
|
|
build:
|
|
type: shared_library
|
|
script: |
|
|
export EMSCRIPTEN_SYSROOT=$(em-config CACHE)/sysroot
|
|
export EMSCRIPTEN_INCLUDE=$EMSCRIPTEN_SYSROOT/include
|
|
export EMSCRIPTEN_BIN=$EMSCRIPTEN_SYSROOT/bin
|
|
export EMSCRIPTEN_LIB=$EMSCRIPTEN_SYSROOT/lib/wasm32-emscripten/pic
|
|
|
|
embuilder build zlib --pic
|
|
embuilder build libjpeg --pic
|
|
embuilder build libpng --pic
|
|
embuilder build sqlite3 --pic
|
|
|
|
mkdir -p build
|
|
cd build && emcmake cmake .. \
|
|
-DCMAKE_INSTALL_PREFIX=$WASM_LIBRARY_DIR \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_SHARED_LIBS=True \
|
|
-DBUILD_APPS=OFF \
|
|
-DCMAKE_C_FLAGS="${SIDE_MODULE_CFLAGS} -Wno-deprecated-declarations -Wno-single-bit-bitfield-constant-conversion" \
|
|
-DCMAKE_CXX_FLAGS="${SIDE_MODULE_CFLAGS} -Wno-deprecated-declarations -Wno-single-bit-bitfield-constant-conversion" \
|
|
-DCMAKE_SHARED_LINKER_FLAGS="-sSIDE_MODULE=1 -sWASM_BIGINT" \
|
|
-DGDAL_USE_EXTERNAL_LIBS=OFF \
|
|
-DGDAL_USE_INTERNAL_LIBS=OFF \
|
|
\
|
|
-DPROJ_INCLUDE_DIR=$WASM_LIBRARY_DIR/include \
|
|
-DPROJ_LIBRARY=$WASM_LIBRARY_DIR/lib/libproj.a \
|
|
\
|
|
-DGDAL_USE_ICONV=ON \
|
|
-DIconv_INCLUDE_DIR=$WASM_LIBRARY_DIR/include \
|
|
-DIconv_LIBRARY=$WASM_LIBRARY_DIR/lib/libiconv.a \
|
|
\
|
|
-DGDAL_USE_TIFF=ON \
|
|
-DTIFF_INCLUDE_DIR=$WASM_LIBRARY_DIR/include \
|
|
-DTIFF_LIBRARY=$WASM_LIBRARY_DIR/lib/libtiff.a \
|
|
\
|
|
-DGDAL_USE_GEOS=ON \
|
|
-DGEOS_INCLUDE_DIR=$WASM_LIBRARY_DIR/include \
|
|
-DGEOS_LIBRARY=$WASM_LIBRARY_DIR/lib/libgeos.so \
|
|
\
|
|
-DGDAL_USE_ZLIB=ON \
|
|
-DZLIB_INCLUDE_DIR=$EMSCRIPTEN_INCLUDE \
|
|
-DZLIB_LIBRARY=$EMSCRIPTEN_LIB/libz.a \
|
|
\
|
|
-DGDAL_USE_PNG=ON \
|
|
-DPNG_PNG_INCLUDE_DIR=$EMSCRIPTEN_INCLUDE \
|
|
-DPNG_LIBRARY_RELEASE=$EMSCRIPTEN_LIB/libpng.a \
|
|
\
|
|
-DGDAL_USE_JPEG=ON \
|
|
-DJPEG_INCLUDE_DIR=$EMSCRIPTEN_INCLUDE \
|
|
-DJPEG_LIBRARY_RELEASE=$EMSCRIPTEN_LIB/libjpeg.a \
|
|
\
|
|
-DGDAL_USE_SQLITE3=ON \
|
|
-DSQLite3_INCLUDE_DIR=$EMSCRIPTEN_INCLUDE \
|
|
-DSQLite3_LIBRARY=$EMSCRIPTEN_LIB/libsqlite3.a \
|
|
\
|
|
-DGDAL_USE_GEOTIFF_INTERNAL=ON \
|
|
-DGDAL_USE_QHULL_INTERNAL=ON \
|
|
-DGDAL_USE_LERC_INTERNAL=ON \
|
|
-DGDAL_USE_JSONC_INTERNAL=ON \
|
|
-DGDAL_USE_PCRE2=OFF \
|
|
-DBUILD_TESTING=OFF
|
|
|
|
|
|
# Note:
|
|
# CMake tries to link the same libraries multiple times at the final link time.
|
|
# This is probably because the same libraries are used in multiple submodules.
|
|
# This behavior is okay when those libraries are "shared" libraries,
|
|
# but we often build static libraries and linking static libraries
|
|
# multiple times results in a duplicated symbol error.
|
|
# I wasn't able to find a way to prevent CMake from emitting duplicated libraries.
|
|
# This is a hack which removes all duplicated appearances of static libs at the final link time.
|
|
|
|
export LINKLIBS=$(pwd)/CMakeFiles/GDAL.dir/link.txt
|
|
cat ${LINKLIBS} | grep -o '\S*' | grep "\.a$" | sort | uniq | tr "\n" " " > linked_static_libs.txt
|
|
cat ${LINKLIBS} | grep -o '\S*' | grep -v "\.a$" | tr "\n" " " > link_cmd.txt
|
|
cat link_cmd.txt > ${LINKLIBS}
|
|
cat linked_static_libs.txt >> ${LINKLIBS}
|
|
|
|
emmake make -j ${PYODIDE_JOBS:-3}
|
|
emmake make install
|
|
|
|
cp ${WASM_LIBRARY_DIR}/lib/libgdal.so ${DISTDIR}
|
|
|
|
# Note: this package needs to be manually upgraded to the next version
|