MMVII: Use GDAL to read/write image files #235
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build MMVII Linux/Windows | |
on: | |
push: | |
branches: | |
- 'master' | |
jobs: | |
build_linux: | |
if: true | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Qt and clang | |
run: | | |
sudo apt update | |
sudo apt install qtbase5-dev clang-14 libgdal-dev | |
- name: Install libproj | |
run: sudo apt install libproj-dev proj-data | |
- name: Install pdflatex | |
run: sudo apt install texlive-latex-base texlive-latex-extra texlive-fonts-recommended texlive-fonts-extra texlive-science | |
- name: Build MMVII documentation | |
run: make -C MMVII/Doc a4 | |
- name: Remove previous MMVII documentation release | |
env: | |
GH_TOKEN: ${{ github.token }} | |
continue-on-error: true | |
run: gh release delete MMVII_Documentation -y --cleanup-tag | |
- name: Upload MMVII documentaion | |
uses: softprops/action-gh-release@v2 | |
with: | |
name: 'MMVII Documentation - Latest' | |
tag_name: MMVII_Documentation | |
make_latest: false | |
token: ${{ secrets.GITHUB_TOKEN }} | |
files: MMVII/Doc/Doc2007_a4.pdf | |
- name: Configure CMake for mm3d | |
run: cmake -B build -DWITH_CCACHE=OFF -DCMAKE_BUILD_TYPE=Release -DWITH_QT5=ON | |
- name: Cache mm3d build | |
id: cache-mm3d-linux | |
uses: actions/cache@v4 | |
with: | |
path: | | |
lib/libelise.a | |
lib/libANN.a | |
bin/mm3d | |
key: ${{ runner.os }}-build-mm3d-${{ hashFiles('src/**/*.cpp','src/**/*.h','include/**/*.h','!src/util/GIT_defines.cpp') }} | |
- if: ${{ steps.cache-mm3d-linux.outputs.cache-hit != 'true' }} | |
name: Build elise.lib and mm3d | |
run: make -C build install -j 4 | |
- name: Configure CMake for MMVII | |
run: cmake -S MMVII -B MMVII/build -DCMAKE_BUILD_TYPE=Release | |
env: | |
CXX: clang++-14 | |
CC: clang-14 | |
- name: Build MMVII | |
run: cmake --build MMVII/build -j 4 --target full -- -k | |
- name: Run MMVII Tests | |
working-directory: ./MMVII/bin | |
run: ./MMVII Bench 1 | |
build_win: | |
if: true | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Miniconda | |
uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
- name: Install GDAL,PROJ with miniconda | |
run: conda install -y proj gdal | |
if: steps.cache-conda-gdal.outputs.cache-hit != 'true' | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
cache: true | |
- name: Configure CMake for mm3d | |
run: cmake -B build -DWITH_CCACHE=OFF -DCMAKE_BUILD_TYPE=Release -DWITH_QT5=ON -DCMAKE_INSTALL_PREFIX=${{github.workspace}} | |
- name: Cache mm3d build | |
id: cache-mm3d-windows | |
uses: actions/cache@v4 | |
with: | |
path: | | |
lib/elise.lib | |
lib/ANN.lib | |
bin/* | |
key: ${{ runner.os }}-build-mm3d-${{ hashFiles('src/**/*.cpp','src/**/*.h','include/**/*.h','!src/util/GIT_defines.cpp') }} | |
- if: ${{ steps.cache-mm3d-windows.outputs.cache-hit != 'true' }} | |
name: Build elise.lib and mm3d | |
run: cmake --build build --config Release --target INSTALL -j 4 | |
- name: Force save mm3d build cache | |
uses: actions/cache/save@v3 | |
if: always() | |
with: | |
path: | | |
lib/elise.lib | |
lib/ANN.lib | |
bin/* | |
key: ${{ runner.os }}-build-mm3d-${{ hashFiles('src/**/*.cpp','src/**/*.h','include/**/*.h','!src/util/GIT_defines.cpp') }} | |
- name: Configure CMake for MMVII | |
run: cmake -S MMVII -B MMVII/build -DCMAKE_PREFIX_PATH=C:/Miniconda/envs/test/Library | |
- name: Build MMVII | |
run: cmake --build MMVII/build --config Release -j 4 --target full | |
- name: Run MMVII Tests | |
working-directory: ./MMVII/bin | |
run: ./MMVII Bench 1 | |
- name: Package | |
shell: bash | |
run: | | |
rm -fr MMVII/bin/Makefile* MMVII/bin/*.makefile MMVII/bin/MMVII-* MMVII/bin/P2007.lib MMVII/MMVII-TestDir/Tmp/ | |
mkdir -p micmac/include micmac/MMVII | |
cp -a bin/ binaire-aux/ micmac/ | |
cp -a include/XML_MicMac include/XML_GEN/ include/qt micmac/include/ | |
cp -a MMVII/MMVII-LocalParameters/ MMVII/MMVII-RessourceDir/ MMVII/MMVII-TestDir/ MMVII/bin/ MMVII/share/ micmac/MMVII/ | |
mkdir -p micmac/bin/platforms micmac/bin/imageformats micmac/MMVII/bin/platforms | |
MMVII_BINDIR=$(pwd)/micmac/MMVII/bin | |
MM3D_BINDIR=$(pwd)/micmac/bin | |
cp ${Qt5_Dir}/plugins/platforms/qwindows.dll ${MMVII_BINDIR}/platforms/ | |
cd /C/Miniconda/envs/test/Library/bin/ | |
# dll for PROJ | |
cp deflate.dll Lerc.dll libcrypto-3-x64.dll libcurl.dll liblzma.dll libssh2.dll proj_9_3.dll sqlite3.dll tiff.dll zlib.dll zstd.dll ${MMVII_BINDIR}/ | |
# dll for GDAL (CGDAL require PROJ too) | |
cp blosc.dll cfitsio.dll charset.dll comerr64.dll freetype.dll freexl.dll gdal.dll geos.dll geos_c.dll geotiff.dll gssapi64.dll ${MMVII_BINDIR}/ | |
cp hdf.dll hdf5.dll hdf5_cpp.dll hdf5_hl.dll ${MMVII_BINDIR}/ | |
cp iconv.dll k5sprt64.dll krb5_64.dll lcms2.dll libbz2.dll libexpat.dll libkea.dll liblz4.dll libminizip.dll libpng16.dll ${MMVII_BINDIR}/ | |
cp libpq.dll libsharpyuv.dll libssl-3-x64.dll libwebp.dll libxml2.dll ${MMVII_BINDIR}/ | |
cp mfhdf.dll netcdf.dll openjp2.dll pcre2-8.dll poppler.dll spatialite.dll tiledb.dll xdr.dll xerces-c_3_2.dll zip.dll ${MMVII_BINDIR}/ | |
cd $Qt5_Dir/bin | |
cp Qt5Core.dll Qt5Gui.dll Qt5Xml.dll Qt5OpenGL.dll Qt5Widgets.dll ${MM3D_BINDIR}/ | |
cd $Qt5_Dir/plugins | |
cp platforms/qwindows.dll ${MM3D_BINDIR}/platforms/ | |
cp imageformats/*.dll ${MM3D_BINDIR}/imageformats/ | |
cd $GITHUB_WORKSPACE | |
- name: Create Zip | |
run: 7z a mmvii_windows.zip micmac | |
- name: Remove previous Windows MMVII build release | |
env: | |
GH_TOKEN: ${{ github.token }} | |
continue-on-error: true | |
run: gh release delete Windows_MMVII_build -y --cleanup-tag | |
- name: Upload binaries to release | |
uses: softprops/action-gh-release@v2 | |
with: | |
name: 'Windows MMVII build - Latest' | |
tag_name: Windows_MMVII_build | |
make_latest: false | |
token: ${{ secrets.GITHUB_TOKEN }} | |
files: mmvii_windows.zip |