Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generic recipes: rework #161

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions generic/additional-files/projectx.rdef.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@

resource app_flags B_SINGLE_LAUNCH | B_ARGV_ONLY;

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

variety = B_APPV_FINAL,
internal = 0,

short_info = "Project X",
long_info = "@LONG_INFO@"
};

resource app_signature "@APP_SIGNATURE@";

resource file_types message {
"types" = "application/x-asf",
"types" = "audio"
};

resource vector_icon {
$"6E636966020300AAFF05010102044030C34530BC3A30304030BC3A30C3454050"
$"BC3A50C34550504050C34550BC3A020A0101001001158400040A00010000"
};
16 changes: 13 additions & 3 deletions generic/generic_cmd-1.2.3.recipe
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ SOURCE_DIR="$portVersionedName"
PATCHES="projectx-$portVersion.patchset"
ADDITIONAL_FILES="projectx.rdef"

ARCHITECTURES="x86_gcc2 ?x86 ?x86_64"
ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't we remove x86 here (and in other places), there is no primary architecture for that anymore (afaik)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should update to show new use of 'all'


PROVIDES="
projectx = $portVersion
extrowerk marked this conversation as resolved.
Show resolved Hide resolved
Expand All @@ -35,15 +35,25 @@ BUILD_PREREQUIRES="
cmd:gcc
"

GLOBAL_WRITABLE_FILES="
settings/projectx.conf keep-old
"

defineDebugInfoPackage projectx \
extrowerk marked this conversation as resolved.
Show resolved Hide resolved
"$commandBinDir"/projectx

BUILD()
{
runConfigure ./configure
make $jobArgs
}

INSTALL()
{
mkdir -p $binDir
cp -a objects/projectx $binDir
make install
# or
install -d $binDir
install -t $binDir objects/projectx
}

TEST()
Expand Down
73 changes: 73 additions & 0 deletions generic/generic_cmd_secondary_arch-1.2.3.recipe
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
SUMMARY="Short description of ProjectX"
DESCRIPTION="Long ProjectX description.
Spanning several paragraphs, maybe
- containing
- bullet points etc.
You can also have really long lines that do not fit in 80 characters and use \
a backslash to wrap the line."
HOMEPAGE="https://homepage/of/projectx.org"
COPYRIGHT="2014 Developer name
2016 Another developer's name"
LICENSE="MIT
GNU GPL v2"
REVISION="1"
SOURCE_URI="https://github.com/HaikuArchives/ProjectX/archive/projectx-$portVersion.tar.gz"
CHECKSUM_SHA256="000000000000000000000000000000000"
SOURCE_DIR="$portVersionedName"
PATCHES="projectx-$portVersion.patchset"
ADDITIONAL_FILES="projectx.rdef"

ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should update to show new use of 'all'

SECONDARY_ARCHITECTURES="?x86"

# On x86_gcc2 we don't want to install the commands in bin/<arch>/, but in bin/.
commandSuffix=$secondaryArchSuffix
commandBinDir=$binDir
if [ "$targetArchitecture" = x86_gcc2 ]; then
commandSuffix=
commandBinDir=$prefix/bin
fi

PROVIDES="
projectx = $portVersion
cmd:projectx$commandSuffix = $portVersion
"
REQUIRES="
haiku
"

BUILD_REQUIRES="
haiku_devel
"
BUILD_PREREQUIRES="
cmd:make
cmd:gcc
"

GLOBAL_WRITABLE_FILES="
settings/projectx.conf keep-old
"
Comment on lines +47 to +49
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GLOBAL_WRITABLE_FILES should be used before PROVIDES


defineDebugInfoPackage projectx \
"$commandBinDir"/projectx

BUILD()
{
runConfigure --omit-dirs "binDir sbinDir" ./configure \
--bindir="$commandBinDir" \
--sbindir="$commandBinDir"
make $jobArgs
}

INSTALL()
{
make install
# or
install -d $commandBinDir
install -t $commandBinDir objects/projectx
}

TEST()
{
make check
}
19 changes: 11 additions & 8 deletions generic/generic_font-1.2.3.recipe
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,24 @@ DISABLE_SOURCE_PACKAGE=yes
PROVIDES="
generic_font = $portVersion
"
REQUIRES=""
REQUIRES="
"

BUILD_REQUIRES=""
BUILD_PREREQUIRES=""
BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
"

BUILD()
{
true
: # means nothing.
}

INSTALL()
{
FONTDIR=$fontsDir/ttfonts
mkdir -p ${FONTDIR}
cp generic-font1.ttf ${FONTDIR}
cp generic-font2.ttf ${FONTDIR}
cp generic-font-bold.ttf ${FONTDIR}
install -d ${FONTDIR}
install -t ${FONTDIR} generic-font1.ttf
install -t ${FONTDIR} generic-font2.ttf
install -t ${FONTDIR} generic-font-bold.ttf
}
40 changes: 36 additions & 4 deletions generic/generic_haiku_app-1.2.3.recipe
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ SOURCE_DIR="$portVersionedName"
PATCHES="projectx-$portVersion.patchset"
ADDITIONAL_FILES="projectx.rdef"

ARCHITECTURES="x86_gcc2 ?x86 ?x86_64"
ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64"

PROVIDES="
projectx = $portVersion
Expand All @@ -36,16 +36,48 @@ BUILD_PREREQUIRES="
cmd:gcc
"

defineDebugInfoPackage projectx \
"$appsDir"/ProjectX
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really need to quote $appsDir?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better safe than sorry...


GLOBAL_WRITABLE_FILES="
settings/projectx.rc keep-old # If there is any
"
Comment on lines +42 to +44
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here, needs to be declared before PROVIDES


BUILD()
{
make $jobArgs OBJ_DIR=objects
}

INSTALL()
{
mkdir -p $appsDir
cp -a objects/ProjectX $appsDir
addAppDeskbarSymlink $appsDir/ProjectX
install -d "$appsDir"
install -t "$appsDir" objects/ProjectX

# Create the extra attributes
local APP_SIGNATURE="application/x-vnd.ProjectX"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
# local MINOR="`echo "$portVersion" | cut -d. -f3`"
local MINOR="0"
local LONG_INFO="$SUMMARY"

# Add them to the rdef file
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/projectx.rdef.in > projectx.rdef

# Add the resources to the application
addResourcesToBinaries projectx.rdef "$appsDir"/ProjectX

# Set the acceptable mimetypes
mimeset -f "$appsDir"/ProjectX

# Create a Deskbar icon
addAppDeskbarSymlink "$appsDir"/ProjectX
}

TEST()
Expand Down
86 changes: 86 additions & 0 deletions generic/generic_haiku_app_secondary_arch-1.2.3.recipe
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
SUMMARY="Short description of ProjectX"
DESCRIPTION="Long ProjectX description.
Spanning several paragraphs, maybe
- containing
- bullet points etc.
You can also have really long lines that do not fit in 80 characters and use \
a backslash to wrap the line."
HOMEPAGE="https://homepage/of/projectx.org"
COPYRIGHT="2014 Developer name
2016 Another developer's name"
LICENSE="MIT
GNU GPL v2"
REVISION="1"
SOURCE_URI="https://github.com/HaikuArchives/ProjectX/archive/projectx-$portVersion.tar.gz"
CHECKSUM_SHA256="000000000000000000000000000000000"
SOURCE_DIR="$portVersionedName"
PATCHES="projectx-$portVersion.patchset"
ADDITIONAL_FILES="projectx.rdef"

ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should update to show new use of 'all'


PROVIDES="
projectx = $portVersion
app:projectx = $portVersion
"
REQUIRES="
haiku
"

BUILD_REQUIRES="
haiku_devel
"
BUILD_PREREQUIRES="
makefile_engine
cmd:make
cmd:gcc
"

defineDebugInfoPackage projectx$secondaryArchSuffix \
"$appsDir"/ProjectX

GLOBAL_WRITABLE_FILES="
settings/projectx.rc keep-old # If there is any
"
Comment on lines +42 to +44
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here, should be declared before PROVIDES


BUILD()
{
make $jobArgs OBJ_DIR=objects
}

INSTALL()
{
install -d "$appsDir"
install -t "$appsDir" objects/ProjectX

# Create the extra attributes
local APP_SIGNATURE="application/x-vnd.ProjectX"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
# local MINOR="`echo "$portVersion" | cut -d. -f3`"
local MINOR="0"
local LONG_INFO="$SUMMARY"

# Add them to the rdef file
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/projectx.rdef.in > projectx.rdef

# Add the resources to the application
addResourcesToBinaries projectx.rdef "$appsDir"/ProjectX

# Set the acceptable mimetypes
mimeset -f "$appsDir"/ProjectX

# Create a Deskbar icon
addAppDeskbarSymlink "$appsDir"/ProjectX
}

TEST()
{
make check
}
26 changes: 14 additions & 12 deletions generic/generic_lib-1.2.3.recipe
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,23 @@ SOURCE_DIR="$portVersionedName"
PATCHES="projectx-$portVersion.patchset"
ADDITIONAL_FILES="projectx.rdef"

ARCHITECTURES="x86_gcc2 ?x86 ?x86_64"
SECONDARY_ARCHITECTURES="x86"
ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64"
SECONDARY_ARCHITECTURES="?x86"

libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"

PROVIDES="
projectx$secondaryArchSuffix = $portVersion
lib:libprojectx$secondaryArchSuffix = $portVersion
lib:libprojectx$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
"

PROVIDES_devel="
projectx${secondaryArchSuffix}_devel = $portVersion
devel:libprojectx$secondaryArchSuffix = $portVersion
devel:libprojectx$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
projectx$secondaryArchSuffix == $portVersion base
Expand All @@ -40,28 +43,27 @@ BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
"
BUILD_PREREQUIRES="
makefile_engine
cmd:make
cmd:gcc$secondaryArchSuffix
"

defineDebugInfoPackage projectx$secondaryArchSuffix \
"$libDir"/libprojectx.so.$libVersion

BUILD()
{
make $jobArgs OBJ_DIR=objects
runConfigure ./configure
make $jobArgs
}

INSTALL()
{
mkdir -p $libDir
mkdir -p $includeDir

cp -a objects/libprojectx.so $libDir
cp -R include/. $includeDir
make install

prepareInstalledDevelLibs \
libprojectx
packageEntries devel \
$developDir
"$developDir"
}

TEST()
Expand Down
Loading