Skip to content

Commit

Permalink
QGIS: add recipe
Browse files Browse the repository at this point in the history
  • Loading branch information
threedeyes committed May 13, 2022
1 parent 33befdc commit 616296f
Show file tree
Hide file tree
Showing 3 changed files with 281 additions and 0 deletions.
46 changes: 46 additions & 0 deletions sci-geosciences/qgis/additional-files/qgis.rdef.in
@@ -0,0 +1,46 @@

resource app_flags B_MULTIPLE_LAUNCH;

resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = @MINOR@,

variety = B_APPV_FINAL,
internal = 0,

short_info = "QGIS",
long_info = "@LONG_INFO@"
};

resource app_signature "@APP_SIGNATURE@";

resource vector_icon {
$"6E6369660703EE791302000602000000BA60073A60070000004A80B146624900"
$"589632FF93B02302000602AE4F00BA5F303A5F30AE4F004923FE466C4C005896"
$"32FF93B02303F0E64A04FF2C0500040069060207B772B637B772B637B711B637"
$"B64FB637B6B0B637B64FB695B64FB74FB64FB6F2B6A2B7A1B747B845B6F4B7F3"
$"B747B7E4B747B722B747B783B7A4B722B85FB722B802B722B810B6D4B772B637"
$"B7C1B686B772B637020EB6E420B6E420B4AB2020B6A820B48E20B8C4B6E4BA5B"
$"B4ABBA5BB778BA5BB87CBA0EB801BA40B822B9B5B76FB9022CB95CB743B90CB6"
$"EBB911B717B911B5A5B911B490B6AAB490B805B490B54FB6EBB449B5A2B449B8"
$"33B449B939B6AAB939B54FB939B6E3B925B74CB932B719B98AB7B1BA53B87AB9"
$"EEB815BAA1B7F2BACCB6A8BACCB753BACCB490B6E420B92120B6E420B6E420B6"
$"E420B6E4200207B7BCB797B7BCB797B7BCB7F8B7BCB8BAB7BCB859B85CB95AB9"
$"9BBA98B8FCB9F9BA00BA98BACABA98BA65BA98BACABA3DBACAB986BACAB9E1BA"
$"23B8E1B8D6B797B97DB83CB878B797B7BCB797B81AB797B7BCB7970207B85FB7"
$"22B85FB722B802B722B747B722B7A4B722B747B783B747B845B747B7E4B76EB8"
$"6CB7BCB8BAB795B893B7BCB859B7BCB797B7BCB7F8B81AB797B8D6B797B878B7"
$"97B8AEB770B85FB722B887B749B85FB7220207B64FB637B64FB637B7CEB7ADBA"
$"CABA98B94CB922BACABA3DBACAB986BACAB9E1BA23B8E1B8D6B797B97DB83CB8"
$"AEB770B85FB722B887B749B810B6D4B772B637B7C1B686B711B637B64FB637B6"
$"B0B637B64FB63702044030C34530BC3A30304030BC3A30C3454050BC3A50C345"
$"50504050C34550BC3A0A0A060105024170000000000000003EC000C8500049A0"
$"000A05010012429B8000000000000042A6A842C4A94630CE01178200040A0001"
$"0002429B8000000000000042A6A842C4A94630CE0A00010002429B8000000000"
$"000042A6A842C4A94630CE0A05010112429B8000000000000042A6A842C4A946"
$"30CE01178200040A01010102429B8000000000000042A6A842C4A94630CE0A05"
$"010212429B8000000000000042A6A842C4A94630CE01178200040A0201020242"
$"9B8000000000000042A6A842C4A94630CE0A03010302429B8000000000000042"
$"A6A842C4A94630CE0A04010402429B8000000000000042A6A842C4A94630CE"
};
84 changes: 84 additions & 0 deletions sci-geosciences/qgis/patches/qgis-3.24.2.patchset
@@ -0,0 +1,84 @@
From dde093a597490042e2a7148c180409114d37d5e6 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Fri, 13 May 2022 14:53:30 +1000
Subject: Fixes for Haiku


diff --git a/CMakeLists.txt b/CMakeLists.txt
index a23a601..986a2e7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -333,7 +333,7 @@ if(WITH_CORE)
#############################################################
# search for dependencies

- if(NOT WIN32 AND NOT ANDROID)
+ if(NOT WIN32 AND NOT ANDROID AND NOT HAIKU)
include(CheckFunctionExists)
CHECK_FUNCTION_EXISTS(openpty OPENPTY_IN_LIBC)
if(NOT OPENPTY_IN_LIBC)
diff --git a/external/laz-perf/portable_endian.hpp b/external/laz-perf/portable_endian.hpp
index af2598a..deca17a 100644
--- a/external/laz-perf/portable_endian.hpp
+++ b/external/laz-perf/portable_endian.hpp
@@ -12,7 +12,7 @@

// use standard posix style headers for apple emscripten builds as well since emscripten sdk now ships its own
// libc headers
-#if defined(__linux__) || defined(__CYGWIN__) || defined(__EMSCRIPTEN__)
+#if defined(__linux__) || defined(__HAIKU__) || defined(__CYGWIN__) || defined(__EMSCRIPTEN__)

# include <endian.h>

@@ -43,7 +43,7 @@
# define __PDP_ENDIAN PDP_ENDIAN
**/

-#elif defined(__OpenBSD__)|| defined(__FreeBSD__)
+#elif defined(__OpenBSD__)|| defined(__FreeBSD__)

# include <sys/endian.h>

diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt
index 0571d10..00193e5 100644
--- a/src/app/CMakeLists.txt
+++ b/src/app/CMakeLists.txt
@@ -622,6 +622,10 @@ if (WITH_PDAL)
target_link_libraries(qgis_app ${PDAL_LIBRARIES})
endif()

+if (HAIKU)
+ target_link_libraries(qgis_app network)
+endif()
+
if(MSVC)
install(FILES qgis.ico qgis-mime.ico qgis-qgs.ico qgis-qlr.ico qgis-qml.ico qgis-qpt.ico DESTINATION ${CMAKE_INSTALL_PREFIX}/icons)
endif()
diff --git a/src/app/main.cpp b/src/app/main.cpp
index 1faeae8..5cfb75a 100644
--- a/src/app/main.cpp
+++ b/src/app/main.cpp
@@ -887,7 +887,7 @@ int main( int argc, char *argv[] )
// Initialize the application and the translation stuff
/////////////////////////////////////////////////////////////////////

-#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(ANDROID)
+#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(ANDROID) && !defined(Q_OS_HAIKU)
bool myUseGuiFlag = nullptr != getenv( "DISPLAY" );
#else
bool myUseGuiFlag = true;
diff --git a/src/process/CMakeLists.txt b/src/process/CMakeLists.txt
index c4691d8..cccccb2 100644
--- a/src/process/CMakeLists.txt
+++ b/src/process/CMakeLists.txt
@@ -45,6 +45,7 @@ target_link_libraries(qgis_process
${PROJ_LIBRARY}
${GEOS_LIBRARY}
${GDAL_LIBRARY}
+ network
)

if (WITH_3D)
--
2.30.2

151 changes: 151 additions & 0 deletions sci-geosciences/qgis/qgis-3.24.2.recipe
@@ -0,0 +1,151 @@
SUMMARY="A Free and Open Source Geographic Information System"
DESCRIPTION="QGIS functions as geographic information system (GIS) software, \
allowing users to analyze and edit spatial information, in addition to composing \
and exporting graphical maps.[3] QGIS supports raster, vector and mesh layers. \
Vector data is stored as either point, line, or polygon features. Multiple \
formats of raster images are supported, and the software can georeference images.
QGIS supports shapefiles, personal geodatabases, dxf, MapInfo, PostGIS, and other \
industry-standard formats. Web services, including Web Map Service and Web Feature \
Service, are also supported to allow use of data from external sources.
QGIS integrates with other open-source GIS packages, including PostGIS, GRASS GIS, \
and MapServer. Plugins written in Python or C++ extend QGIS's capabilities. \
Plugins can geocode using the Google Geocoding API, perform geoprocessing \
functions similar to those of the standard tools found in ArcGIS, and interface \
with PostgreSQL/PostGIS, SpatiaLite and MySQL databases."
HOMEPAGE="https://www.qgis.org/"
COPYRIGHT="QGIS Development Team"
LICENSE="GNU GPL v2
GNU GPL v3"
REVISION="1"
SOURCE_URI="https://download.qgis.org/downloads/qgis-$portVersion.tar.bz2"
CHECKSUM_SHA256="898b148ab83e751c8c5de936929438315dec4cc449307cb405b156cd02b8d127"
PATCHES="qgis-$portVersion.patchset"
ADDITIONAL_FILES="qgis.rdef.in"

ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"

PROVIDES="
qgis$secondaryArchSuffix = $portVersion
app:QGIS$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libcrypto$secondaryArchSuffix
lib:libexpat$secondaryArchSuffix
lib:libexiv2$secondaryArchSuffix
lib:libgdal$secondaryArchSuffix
lib:libgeos$secondaryArchSuffix
lib:libgeos_c$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libgsl$secondaryArchSuffix
lib:libhdf5$secondaryArchSuffix
lib:libnetcdf$secondaryArchSuffix
lib:libpq$secondaryArchSuffix
lib:libproj$secondaryArchSuffix
lib:libprotobuf$secondaryArchSuffix
lib:libqca$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libqt5keychain$secondaryArchSuffix
lib:libQt5WebKit$secondaryArchSuffix
lib:libQt5WebKitWidgets$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
lib:libqwt$secondaryArchSuffix
lib:libqscintilla2_qt5$secondaryArchSuffix
lib:libspatialindex$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libsqlite3$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
lib:libz$secondaryArchSuffix
lib:libzip$secondaryArchSuffix
lib:libzstd$secondaryArchSuffix
"

BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libcrypto$secondaryArchSuffix
devel:libexpat$secondaryArchSuffix
devel:libexiv2$secondaryArchSuffix
devel:libgdal$secondaryArchSuffix
devel:libgeos$secondaryArchSuffix
devel:libGL$secondaryArchSuffix
devel:libgsl$secondaryArchSuffix
devel:libhdf5$secondaryArchSuffix
devel:libnetcdf$secondaryArchSuffix
devel:libopencl_headers$secondaryArchSuffix
devel:libpq$secondaryArchSuffix
devel:libproj$secondaryArchSuffix
devel:libprotobuf$secondaryArchSuffix
devel:libqca$secondaryArchSuffix >= 2
devel:libQt5Core$secondaryArchSuffix
devel:libqt5keychain$secondaryArchSuffix
devel:libQt5WebKit$secondaryArchSuffix
devel:libqwt$secondaryArchSuffix
devel:libqscintilla2_qt5$secondaryArchSuffix
devel:libspatialindex$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
devel:libsqlite3$secondaryArchSuffix
devel:libxml2$secondaryArchSuffix
devel:libz$secondaryArchSuffix
devel:libzip$secondaryArchSuffix
devel:libzstd$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:bison
cmd:cmake
cmd:flex
cmd:g++$secondaryArchSuffix
cmd:lrelease$secondaryArchSuffix >= 5
cmd:make
cmd:pkg_config$secondaryArchSuffix
cmd:python3.7
"

BUILD()
{
mkdir -p build
cd build

cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$appsDir \
-DQGIS_BIN_SUBDIR="QGIS" \
-DQGIS_LIB_SUBDIR="QGIS/lib" \
-DQGIS_PLUGIN_SUBDIR="QGIS/plugins" \
-DQGIS_DATA_SUBDIR="QGIS/data" \
-DQGIS_QML_SUBDIR="QGIS" \
-DWITH_BINDINGS=FALSE \
-DWITH_SPATIALITE=FALSE \
-DWITH_3D=TRUE \
-DENABLE_TESTS=FALSE

make $jobArgs
}

INSTALL()
{
cd build
make install

mv $appsDir/QGIS/qgis $appsDir/QGIS/QGIS
rm -rf $appsDir/{man,lib,include,share}

local APP_SIGNATURE="application/x-vnd.qgis"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/qgis.rdef.in > qgis.rdef

addResourcesToBinaries qgis.rdef $appsDir/QGIS/QGIS
addAppDeskbarSymlink $appsDir/QGIS/QGIS
}

0 comments on commit 616296f

Please sign in to comment.